diff options
| author | eunhhu <[email protected]> | 2026-10-01 01:47:23 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-01 01:47:23 +0100 |
| commit | 3be6f4d31cdb3d6d4c65e0387215c96f0d7345f8 (patch) | |
| tree | e55c59dfa2fd788f5ec631266c5c4f781b3db328 /prototypes/workbench/qa-layout.js | |
| parent | 2168466cc9302ce95a5f3381f6c663ca4c180a28 (diff) | |
| download | pure-3be6f4d31cdb3d6d4c65e0387215c96f0d7345f8.tar.gz pure-3be6f4d31cdb3d6d4c65e0387215c96f0d7345f8.zip | |
Say how one host will run many apps, and what it must show (017)
pure-serve runs one app a process: a module, a store, its own threads,
port and key, scheduled by Linux. Within one process nothing bounds an
event's run (it grows with its lists), the requests waiting for the
owner, or one store's sync, which holds every other store's commit
since the tree store has one writer's turn per process.
017 makes an app an execution domain (007): a host of many apps
(--apps FILE, routes /APP/...) runs them by turns on a fixed number of
worker threads, none per app; budgets per app in deterministic units
(memory in stored bytes as before, work in instructions counted per
block and per item visited, queue in requests: 422 work, 503 busy);
writer turns per store; and an app that cannot start or whose save
became uncertain stops alone. Stage 1 is all that; links, sends between
apps and an app's lifetime come after.
Before building: it goes in if an app B's p99 under app A's flood is
within 1.5 times what two processes give, an app costs under a quarter
of an idle process's own memory with no thread of its own, the pair's
throughput is within 10% of two processes', and a one-app host keeps
its speed (3% in time, 1% in instructions).
Diffstat (limited to 'prototypes/workbench/qa-layout.js')
0 files changed, 0 insertions, 0 deletions
