gnunet-svn
[Top][All Lists]
Advanced

[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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]