diff options
| author | eunhhu <[email protected]> | 2026-10-01 02:19:04 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-01 02:19:04 +0100 |
| commit | 2a0f601cbd3ea6af1bb031b29a07d5facb0a4579 (patch) | |
| tree | 70b134543c91bb3e2b0e3b344e91896bad1d9973 /docs/research/059-immutable-file-copy-path.md | |
| parent | a09ef095623c3b3f951edff2eb0c013708159f70 (diff) | |
| download | pure-2a0f601cbd3ea6af1bb031b29a07d5facb0a4579.tar.gz pure-2a0f601cbd3ea6af1bb031b29a07d5facb0a4579.zip | |
Bound what an event or a view may run: a work budget (017)
An event's run was bounded only by its lists: a walk or a fold is its
block's length for each item, and a list holds up to 16 million. One
event could hold the owner for seconds, one view a connection thread.
pure_app_work(app, n) budgets one unit of work: an event, or one
evaluation of a view, a cell or a table's filter. It is counted as
written, as each part begins: a block's length, and a fold's or walk's
block length for every item of its list (or slice), whatever the plan
runs (lanes, a group or rank pass, a range). Nothing is counted inside
the interpreter's loop. Past the budget an event fails with the new
fault work and changes nothing (PURE_LIMIT, so 422 work over HTTP); a
view, a cell or a table's rows have no value and pure_app_view_fault
says work, which pure-serve answers 422 work, for a whole table when
a cell of it ran past. pure-serve --work N sets it (0: none).
test-module counts exact amounts on the shop's walk, the tasks' fold
view and a filtered table, and lane_folds now checks that a planned
fold counts what the same fold run item by item counts (3,600 folds,
every view, cell, filter and handler). server_work grows a list over
HTTP until the walk, the table and the fold each pass a budget of 400.
Diffstat (limited to 'docs/research/059-immutable-file-copy-path.md')
0 files changed, 0 insertions, 0 deletions
