OXYGENHUB

Benchmarks: the first flow-casfs measurements (refs #41) cd19603782bf

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-10-01 01:58 UTC
Signature
✔ signed by Andy McCall
Hash
cd19603782bf31822efb1f3cf2bf965f8ce71daef9d317a2a9091ac27559990f
Depends on
1d360c91a289 e82591ec33a4
Depended on by
3604179679eb
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified docs/benchmarks.md +21 −0
…
699 unchanged lines
700 700
state index for the first time. Most of what remains in status is listing
701 701
the tree (about 135 ms), loading the index (about 60 ms) and starting up;
702 702
commit adds storing and recording with fsync (about 100 ms).
703 +
704 +
### P5a: flow-casfs, a read-only FUSE mount of a state (2026-10-01, oxygenflow#21)
705 +
706 +
The first flow-casfs (single-threaded, fuser 0.16, no read-ahead) on the
707 +
Linux repository on Earth, with the H4 import and Flow jobs running (load
708 +
average 10 to 11), so the times are high:
709 +
710 +
| | |
711 +
|---|---:|
712 +
| mount (state from the index 284 ms, tree of 102 327 entries 40 ms) | 0.52 s |
713 +
| first read of MAINTAINERS (rendered) | 0.10 s |
714 +
| `ls -lR`, rendering every file one at a time | 201 s |
715 +
| full read afterwards (bytes in memory) | 0.77 s |
716 +
| full read, new mount, renderings cached on disk | 20.8 s |
717 +
| render cache on disk | 1.8 GB |
718 +
719 +
`diff -r` between the mount and the working copy finds no difference. To
720 +
reach the spec's targets: render in parallel and ahead of reads, take a
721 +
file added once and never edited straight from its text blob, keep sizes
722 +
in the render cache so a stat does not render, serve FUSE on several
723 +
threads, and read the state index lazily for a mount under 100 ms.