···392392blockstore, eventlog, full repo export behavior, an official-PDS benchmark
393393harness, and an explicit ZDS index-only list probe that matches Tranquil's
394394`list_records`.
395395+396396+## June 18, 2026 write-path check
397397+398398+ZDS now uses `zat.mst.Mst.loadLazy` for repo authoring, backed by SQLite
399399+`repo_blocks`, instead of reading every repo block into an in-memory CAR before
400400+each write. This completes the earlier `zat` lazy-MST adoption for the hot write
401401+path.
402402+403403+Fresh local 10-caller metastore-shaped rows. The ZDS write row was repeated
404404+three times after the change and stayed in the same band: 2312.8-2525.2 ops/s,
405405+p95 11.2-12.2 ms.
406406+407407+| operation | zds | tranquil |
408408+|---|---:|---:|
409409+| apply one record commit | 2312.8-2525.2 ops/s, p95 11.2-12.2 ms | 503 ops/s, p95 26.1 ms |
410410+| current record CID lookup | 319.7k ops/s, p95 8 us | 294.6k ops/s, p95 54 us |
411411+| list records, limit 50 | 21.5k ops/s, p95 53 us | 35.8k ops/s, p95 382 us |
412412+413413+Two `just bench write-profile 10 1000` runs after the lazy-MST change reported
414414+2527.1-2698.4 ops/s, p95 9.3-9.8 ms. Average write time was split roughly
415415+across lock wait 23-24%, lazy repo loading 9-10%, staging 10%, commit build 7%,
416416+and SQLite/event persistence 50%.
+12-7
docs/benchmarking.md
···313110/100 caller concurrency curves. Official-PDS batch probes stay outside the
3232main matrix until they are measured through the same unit of work.
33333434-Current local Tranquil comparison, measured May 31, 2026:
3434+Current local comparison. The Tranquil rows are from a fresh local metastore
3535+run on June 18, 2026. The ZDS write row was remeasured after completing the
3636+lazy-MST adoption in the repo write path.
35373638| operation | callers | zds | tranquil | note |
3739|---|---:|---:|---:|---|
3838-| apply one record commit | 1 | 281 ops/s, p95 8.1 ms | 289 ops/s, p95 4.9 ms | close throughput; Tranquil tighter tail |
3939-| apply one record commit | 10 | 289 ops/s, p95 86.1 ms | 744 ops/s, p95 15.9 ms | Tranquil clearly ahead |
4040-| apply one record commit | 100 | 1423 ops/s, p95 65.0 ms, p99 806 ms | 1051 ops/s, p95 100 ms | ZDS higher throughput; ugly ZDS tail |
4141-| current CID lookup | 1 | 509k ops/s, p95 2 us | 111k ops/s, p95 12.6 us | ZDS ahead |
4242-| current CID lookup | 10 | 345k ops/s, p95 18 us | 610k ops/s, p95 27 us | Tranquil ahead |
4343-| current CID lookup | 100 | 302k ops/s, p95 273 us | 630k ops/s, p95 212 us | Tranquil ahead |
4040+| apply one record commit | 1 | 1598 ops/s, p95 0.65 ms | 267 ops/s, p95 4.13 ms | ZDS no longer eagerly loads the whole repo CAR |
4141+| apply one record commit | 10 | 2313-2525 ops/s, p95 11.2-12.2 ms | 503 ops/s, p95 26.1 ms | ZDS row is repeated-run range |
4242+| current CID lookup | 1 | 523k ops/s, p95 2 us | 116k ops/s, p95 12.6 us | ZDS ahead |
4343+| current CID lookup | 10 | 319.7k ops/s, p95 8 us | 294.6k ops/s, p95 54 us | both use record-index lookup |
44444545Tranquil's built-in 1000-caller metastore row currently trips handler
4646backpressure in the benchmark harness. Keep it out of the table until the
4747harness handles backpressure as a measured result.
4848+4949+ZDS write authoring uses `zat.mst.Mst.loadLazy` with a SQLite-backed
5050+`repo_blocks` reader. This avoids reading every stored repo block into a CAR
5151+before each write while preserving the signed commit, MST update, record index,
5252+and sync event behavior.
48534954## read path
5055