aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-01 01:47:23 +0100
committereunhhu <[email protected]>2026-10-01 01:47:23 +0100
commit3be6f4d31cdb3d6d4c65e0387215c96f0d7345f8 (patch)
treee55c59dfa2fd788f5ec631266c5c4f781b3db328 /core
parent2168466cc9302ce95a5f3381f6c663ca4c180a28 (diff)
downloadpure-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 'core')
0 files changed, 0 insertions, 0 deletions