|
|
Reporter | Christian Grothoff | Assigned To | Sree Harsha Totakura | |
---|
Priority | high | Severity | feature | Reproducibility | N/A |
---|
Status | closed | Resolution | fixed | |
---|
Product Version | Git master | |
---|
Target Version | 0.10.0 | Fixed in Version | 0.10.0 | |
---|
|
|
Summary | 0002687: need API for terminating the experiment |
---|
Description | Right 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 Reproduce | Right 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 Information | What 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. |
---|
Tags | No tags attached. |
---|
|
|