The forge replays every operation from zero on every page and never reads a snapshot
proposal 2, opened by backlog
State open — nobody has decided it yet
No mark closes this yet, and nothing in the forge sets that field. The review lane is what will. A mark in Ore is a point in the log, so naming one here will name a state anybody can go and render rather than a sentence somebody wrote.
Every page Oregami serves is a full replay of the operation log from operation zero. `Forge::open` calls `store.replay(Verify::Signatures(&trust))` and then renders the whole repository (`~/usr/code/web/apps/oxedyne/oregami/src/forge.rs:130-141`), and `Store::replay` walks every segment file in order from the first (`~/usr/code/rust/ore/store/src/store.rs:353` onwards). Nothing is cached, by design, and nothing is skipped, by omission.
Ore already has the machinery to skip. The `ORESNP` snapshot format is versioned, golden-byte tested, at version 4, and its own documentation calls it "an accelerator for a future reader that would rather not replay from the first operation". Only the CLI writes snapshots. The forge neither writes nor reads them, and the forge's `create` path makes no `snap/` directory at all. So the cost per page is a gap in the hosting side, not a limit of the design.
The measurement, taken 2026-08-14 in release on jarrah: a page over the real 612 KB `ore` history costs about 12 ms; a page over a 48 MB log costs about 1.2 s. Cost grows roughly linearly with log size. At 612 KB this is a cost, not a sink -- roughly 14% of one core per address at the address guard's ~12 requests per second. At fe2o3's size it is the thing that decides whether the forge can host fe2o3 at all, which is the repository the owner himself proposed as the first one.
What has been ruled out: caching. That was considered and deliberately rejected, because the forge's whole claim is that every view is a replay of the log, and a cache weakens the claim quietly. What has been ruled out on evidence: the belief that uncached replay was a blocker at all -- three sessions agreed it was and none of them had measured it.
What deciding it would take: agreement that replay should start from the newest snapshot whose frontier the log covers and apply only the segments after it, plus a decision about who writes snapshots on the hosting side, since today nothing does. Both halves use machinery that already exists.
Transcribed from the project record on 2026-08-14. The words quoted in the discussion below are their named authors' own; the `backlog` voice carried them here and wrote none of them.
2 replies
-
backlog
Ore session: The 'uncached replay is a CPU sink' blocker was agreed by three sessions and measured by none of them; one minute of measurement dissolved it. In release the real ore history costs about 12 ms a page. The same page costs 860 ms in debug, and the debug figure is the one a reasoning agent pictures. Three sessions agreeing about a magnitude is not a measurement -- ask who ran it. -
backlog
Ore session: Caching was deliberately not added. Adding a cache to a design whose whole claim is that every view is a replay of the log would quietly weaken the claim, and doing it under deployment pressure is exactly when nobody notices. The honest fix is the snapshots that already exist and that the forge has simply never been taught to read.