Overview
| Comment: | Serve warm reads from a materialized column image instead of re-deriving RepoState, cutting a warm leaves load 178.6us to 2.12us (84x). At cache write, dense integer-addressed columns for the mtime index, leaf image, and symbolic-name table are appended to the versioned .zit-cache; on a fast_read open the freed queries (mtimeOf/isLeaf/isOpenLeaf/leaves/branchOf/resolveName per repostate 7.1/7.4/7.5/8.2) answer from those columns with zero derivation. Load-time span validation range-checks every column, CSR span, and stored id and returns a miss (fall back to derive) on any violation or CRC/layout/log-tail mismatch, so a corrupt or stale image is never a wrong answer. RepoState's public API is unchanged; only leaves opts in, cold verbs keep the derive path. Technique: on-disk zero-parse caching after Richard Feldman's Roc and Andrew Kelley's Zig compiler (common in game engines per Casey Muratori); typed enum(u32) index families after the compact_arena crate. |
|---|---|
| Timelines: | family | ancestors | descendants | both | zerocache |
| Files: | files | file ages | folders |
| SHA3-256: |
ae242f5563664ca16cc989de7ab4c8ec |
| User & Date: | dmestas on 2026-07-17 01:54:14.213 |
| Other Links: | branch diff | manifest | tags |
Context
|
2026-07-17
| ||
| 01:57 | Merge zerocache: materialized-image warm reads (84x faster leaves load) with load-time-validated fallback, closing the read-path perf gap. Phase B (full SoA image) not warranted — the image load is under 1% of the derivation it replaced. check-in: 13cfa27494 user: dmestas tags: trunk | |
| 01:54 | Serve warm reads from a materialized column image instead of re-deriving RepoState, cutting a warm leaves load 178.6us to 2.12us (84x). At cache write, dense integer-addressed columns for the mtime index, leaf image, and symbolic-name table are appended to the versioned .zit-cache; on a fast_read open the freed queries (mtimeOf/isLeaf/isOpenLeaf/leaves/branchOf/resolveName per repostate 7.1/7.4/7.5/8.2) answer from those columns with zero derivation. Load-time span validation range-checks every column, CSR span, and stored id and returns a miss (fall back to derive) on any violation or CRC/layout/log-tail mismatch, so a corrupt or stale image is never a wrong answer. RepoState's public API is unchanged; only leaves opts in, cold verbs keep the derive path. Technique: on-disk zero-parse caching after Richard Feldman's Roc and Andrew Kelley's Zig compiler (common in game engines per Casey Muratori); typed enum(u32) index families after the compact_arena crate. closed check-in: ae242f5563 user: dmestas tags: zerocache | |
| 00:54 | Create new branch named "zerocache" check-in: 6542332151 user: dmestas tags: zerocache | |
Changes
Modified src/dst.zig
from [5b26811ae2]
to [f013a0330c].
[diff]
Modified src/main.zig
from [5b2210bf17]
to [5ddbb6cdd5].
[diff]
Modified src/repocache.zig
from [d45df0aa7f]
to [aae232a6b1].
[diff]
Added src/repoimage.zig version [7d2dc2f3c1].
Modified src/repository.zig
from [e447f92ba4]
to [83be1678bb].
[diff]
Modified src/repostate.zig
from [7c79ab5ec4]
to [7f77c7239e].
[diff]
Modified src/repoview.zig
from [420d6f2f6d]
to [ec2958e1e8].
[diff]
Modified src/root.zig
from [649bc930c1]
to [5af382196a].
[diff]
Modified src/warmread_benchmark.zig
from [7656638cd9]
to [9421986d49].
[diff]