[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25002 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25002 - gnunet/src/testbed |
Date: |
Fri, 16 Nov 2012 15:36:41 +0100 |
Author: harsha
Date: 2012-11-16 15:36:40 +0100 (Fri, 16 Nov 2012)
New Revision: 25002
Modified:
gnunet/src/testbed/test_testbed_api.conf
gnunet/src/testbed/testbed.conf.in
gnunet/src/testbed/testbed_api.c
gnunet/src/testbed/testbed_api.h
gnunet/src/testbed/testbed_api_peers.c
Log:
adaptive parallel overlay connects
Modified: gnunet/src/testbed/test_testbed_api.conf
===================================================================
--- gnunet/src/testbed/test_testbed_api.conf 2012-11-16 14:11:07 UTC (rev
25001)
+++ gnunet/src/testbed/test_testbed_api.conf 2012-11-16 14:36:40 UTC (rev
25002)
@@ -4,7 +4,7 @@
ACCEPT_FROM = 127.0.0.1;
HOSTNAME = localhost
NEIGHBOUR_LIMIT = 100
-MAX_PARALLEL_OVERLAY_CONNECT_OPERATIONS = 3
+PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2
TOPOLOGY = RANDOM
#PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args
Modified: gnunet/src/testbed/testbed.conf.in
===================================================================
--- gnunet/src/testbed/testbed.conf.in 2012-11-16 14:11:07 UTC (rev 25001)
+++ gnunet/src/testbed/testbed.conf.in 2012-11-16 14:36:40 UTC (rev 25002)
@@ -14,4 +14,4 @@
MAX_PARALLEL_OPERATIONS = 1000
MAX_PARALLEL_SERVICE_CONNECTIONS = 1000
MAX_PARALLEL_TOPOLOGY_CONFIG_OPERATIONS = 5
-MAX_PARALLEL_OVERLAY_CONNECT_OPERATIONS = 30
+PARALLEL_OVERLAY_CONNECT_THRESHOLD = 16
Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c 2012-11-16 14:11:07 UTC (rev 25001)
+++ gnunet/src/testbed/testbed_api.c 2012-11-16 14:36:40 UTC (rev 25002)
@@ -605,6 +605,13 @@
GNUNET_CONTAINER_DLL_remove (opc->c->ocq_head, opc->c->ocq_tail, opc);
opc->state = OPC_STATE_FINISHED;
GNUNET_free (data);
+ /* Increase parallel overlay connects */
+ if (c->num_parallel_connects < c->num_parallel_connects_threshold)
+ c->num_parallel_connects *= 2;
+ else
+ c->num_parallel_connects++;
+ GNUNET_TESTBED_operation_queue_reset_max_active_
+ (c->opq_parallel_overlay_connect_operations, c->num_parallel_connects);
if (0 !=
((GNUNET_TESTBED_ET_CONNECT | GNUNET_TESTBED_ET_DISCONNECT) &
c->event_mask))
@@ -732,6 +739,16 @@
GNUNET_free (data);
return GNUNET_YES; /* We do not call controller callback for peer info */
}
+ if (OP_OVERLAY_CONNECT == opc->type)
+ {
+ /* Decrease the number of parallel overlay connects */
+ c->num_parallel_connects /= 2;
+ c->num_parallel_connects_threshold = c->num_parallel_connects;
+ if (0 == c->num_parallel_connects)
+ c->num_parallel_connects++;
+ GNUNET_TESTBED_operation_queue_reset_max_active_
+ (c->opq_parallel_overlay_connect_operations, c->num_parallel_connects);
+ }
if ((0 != (GNUNET_TESTBED_ET_OPERATION_FINISHED & c->event_mask)) &&
(NULL != c->cc))
{
@@ -1499,7 +1516,7 @@
unsigned long long max_parallel_operations;
unsigned long long max_parallel_service_connections;
unsigned long long max_parallel_topology_config_operations;
- unsigned long long max_parallel_overlay_connect_operations;
+ unsigned long long num_parallel_connects_threshold;
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_number (cfg, "testbed",
@@ -1527,12 +1544,9 @@
}
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_number (cfg, "testbed",
-
"MAX_PARALLEL_OVERLAY_CONNECT_OPERATIONS",
-
&max_parallel_overlay_connect_operations))
- {
- GNUNET_break (0);
- return NULL;
- }
+
"PARALLEL_OVERLAY_CONNECTS_THRESHOLD",
+ &num_parallel_connects_threshold))
+ num_parallel_connects_threshold = 16;
controller = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Controller));
controller->cc = cc;
controller->cc_cls = cc_cls;
@@ -1571,9 +1585,11 @@
controller->opq_parallel_topology_config_operations=
GNUNET_TESTBED_operation_queue_create_ ((unsigned int)
max_parallel_topology_config_operations);
+ controller->num_parallel_connects = 1;
controller->opq_parallel_overlay_connect_operations=
- GNUNET_TESTBED_operation_queue_create_ ((unsigned int)
-
max_parallel_overlay_connect_operations);
+ GNUNET_TESTBED_operation_queue_create_
+ (controller->num_parallel_connects);
+ controller->num_parallel_connects_threshold =
num_parallel_connects_threshold;
controller_hostname = GNUNET_TESTBED_host_get_hostname_ (host);
if (NULL == controller_hostname)
controller_hostname = "127.0.0.1";
Modified: gnunet/src/testbed/testbed_api.h
===================================================================
--- gnunet/src/testbed/testbed_api.h 2012-11-16 14:11:07 UTC (rev 25001)
+++ gnunet/src/testbed/testbed_api.h 2012-11-16 14:36:40 UTC (rev 25002)
@@ -277,11 +277,6 @@
struct OperationQueue *opq_parallel_overlay_connect_operations;
/**
- * The operation id counter. use current value and increment
- */
- uint32_t operation_counter;
-
- /**
* The controller event mask
*/
uint64_t event_mask;
@@ -295,6 +290,22 @@
* Did we create the host for this?
*/
int aux_host;
+
+ /**
+ * The number of parallel overlay connects we do currently
+ */
+ unsigned int num_parallel_connects;
+
+ /**
+ * The threshold for the number of parallel overlay connects we do
+ */
+ unsigned int num_parallel_connects_threshold;
+
+ /**
+ * The operation id counter. use current value and increment
+ */
+ uint32_t operation_counter;
+
};
Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c 2012-11-16 14:11:07 UTC (rev
25001)
+++ gnunet/src/testbed/testbed_api_peers.c 2012-11-16 14:36:40 UTC (rev
25002)
@@ -731,8 +731,6 @@
opc->op =
GNUNET_TESTBED_operation_create_ (opc, &opstart_overlay_connect,
&oprelease_overlay_connect);
- /* GNUNET_TESTBED_operation_queue_insert_ (opc->c->opq_parallel_operations,
*/
- /* opc->op); */
GNUNET_TESTBED_operation_queue_insert_
(opc->c->opq_parallel_overlay_connect_operations, opc->op);
GNUNET_TESTBED_operation_begin_wait_ (opc->op);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25002 - gnunet/src/testbed,
gnunet <=