View Issue Details

IDProjectCategoryView StatusLast Update
0002687GNUnettestbed servicepublic2013-12-24 20:54
ReporterChristian Grothoff Assigned ToSree Harsha Totakura  
PriorityhighSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.10.0Fixed in Version0.10.0 
Summary0002687: need API for terminating the experiment
DescriptionRight now, it is easy to start up a distributed testbed, but it would be very nice if there was also an easy way to stop a distributed experiment. Here is the basic problem: for really large-scale experiments, we effectively split up the 'driver' into two parts: the "central" component, and a per-peer driver which locally simulates the desired interactions. We first did that with mesh-regex (gnunet-daemon-regexprofiler), and now also with fs (gnunet-daemon-fsprofiler). In the later case *all* of the P2P interactions are driven by the 'gnunet-daemon-fsprofiler'. This creates the problem that the "central" driver no longer knows when the experiment is over.

Thus, what we need is a way for the individual peers to signal to the central driver "hey, I'm done over here". If the central driver has then collected a sufficient number of these "I'm done" replies, it can initiate the global shutdown.
Steps To ReproduceRight now, the driver terminates via CTRL-C (abort, no statisitcs!) or timeout -- which may then cause the experiment to run much longer than necessary.
Additional InformationWhat I'm thinking about here is a simple TCP server that might be started via a Testbed-API extension by the driver. Each peer would then be able to connect to that server to signal that it is finished; I recently added the peerid to each peer's configuration, so the testbed can easily filter out duplicates (i.e. due to communication errors). We need this to be reliable, and as the central driver might (hopefully rarely) be swamped with 'ready to terminate' requests, we need a full handshake (peer: I'm done; driver: I heard you, thanks). Starting such a server to collect termination signals as well as sending termination signals to the server can be done with some simple extension to the testbed API.
TagsNo tags attached.

Relationships

child of 0001929 confirmed have comprehensive performance tests 
child of 0002943 closedChristian Grothoff Implement FS profiler 

Activities

Sree Harsha Totakura

2013-09-10 15:50

developer   ~0007430

implemented as barriers in testbed API

Issue History

Date Modified Username Field Change
2012-12-08 16:20 Christian Grothoff New Issue
2012-12-08 16:20 Christian Grothoff Status new => assigned
2012-12-08 16:20 Christian Grothoff Assigned To => Sree Harsha Totakura
2012-12-08 16:23 Christian Grothoff Steps to Reproduce Updated
2012-12-08 16:23 Christian Grothoff Additional Information Updated
2012-12-08 16:24 Christian Grothoff Relationship added child of 0001929
2013-07-13 21:18 Christian Grothoff Target Version => 0.10.1
2013-07-15 14:49 Sree Harsha Totakura Relationship added child of 0002943
2013-09-10 15:50 Sree Harsha Totakura Note Added: 0007430
2013-09-10 15:50 Sree Harsha Totakura Status assigned => resolved
2013-09-10 15:50 Sree Harsha Totakura Fixed in Version => 0.10.0
2013-09-10 15:50 Sree Harsha Totakura Resolution open => fixed
2013-09-14 18:15 Christian Grothoff Target Version 0.10.1 => 0.10.0
2013-12-24 20:54 Christian Grothoff Status resolved => closed