View Issue Details

IDProjectCategoryView StatusLast Update
0002687GNUnettestbed servicepublic2013-12-24 19:54
ReporterChristian Grothoff Assigned ToSree Harsha Totakura Due Date
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 13:50

updater   ~0007430

implemented as barriers in testbed API

Issue History

Date ModifiedUsernameFieldChange
2012-12-08 15:20Christian GrothoffNew Issue
2012-12-08 15:20Christian GrothoffStatusnew => assigned
2012-12-08 15:20Christian GrothoffAssigned To => Sree Harsha Totakura
2012-12-08 15:23Christian GrothoffSteps to Reproduce Updated
2012-12-08 15:23Christian GrothoffAdditional Information Updated
2012-12-08 15:24Christian GrothoffRelationship addedchild of 0001929
2013-07-13 19:18Christian GrothoffTarget Version => 0.10.1
2013-07-15 12:49Sree Harsha TotakuraRelationship addedchild of 0002943
2013-09-10 13:50Sree Harsha TotakuraNote Added: 0007430
2013-09-10 13:50Sree Harsha TotakuraStatusassigned => resolved
2013-09-10 13:50Sree Harsha TotakuraFixed in Version => 0.10.0
2013-09-10 13:50Sree Harsha TotakuraResolutionopen => fixed
2013-09-14 16:15Christian GrothoffTarget Version0.10.1 => 0.10.0
2013-12-24 19:54Christian GrothoffStatusresolved => closed