diff options
| author | eunhhu <[email protected]> | 2026-10-04 10:23:44 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-04 10:23:44 +0100 |
| commit | 71e319b63edfbe7e0c54f75e4cafa849d9ced28d (patch) | |
| tree | b2d8c2d78c7eb10099d44c8dc7e2e84e18e375f3 /research/experiments/002-buffer-retention | |
| parent | 578d0ab47f22e0185987ed3f8c091129985cec6e (diff) | |
| download | pure-71e319b63edfbe7e0c54f75e4cafa849d9ced28d.tar.gz pure-71e319b63edfbe7e0c54f75e4cafa849d9ced28d.zip | |
Start, stop and change apps on a running host on SIGHUP (017, stage 3)
A host of apps reads its --apps file again on SIGHUP, on a thread of its
own (pure-apps, the one that takes the signal): a file with a wrong line
changes nothing; the apps of lines gone stop and their routes go (404
no_app); those of changed lines, and those not running (they could not
start, or a save of theirs is uncertain), start again from their stores,
states carried by name; new ones take places of their own; a line out
says what was done. An app stops by taking nothing more (503 stopped),
applying, saving and answering what it took, waiting for its batches at
other apps, then closing its outlets (what they did not deliver stays in
the outbox) and its store. Its link streams find their inputs again as it
starts. Owners' locks are made with their places; counts are kept over
an app's runs; workers grow with the apps that run, a CPU each at most.
server_apps_lifecycle adds, removes and changes apps, and changes the
receivers (a local outlet's and a link's, their inputs at other numbers,
taken by name) and the senders while 600 sends each and writes go: every
send arrives once and in order, a write answered 200 is applied once and
one answered 503 stopped not at all, the app left alone fails no request;
an app whose store cannot be made starts at the next reading once it
can; kill -9 and the host starts as the file says. It passed 10 times
alone, 5 under load, 6 with an ASan pure-serve.
Diffstat (limited to 'research/experiments/002-buffer-retention')
0 files changed, 0 insertions, 0 deletions
