···1212just bench read
1313just bench repo
1414just bench blob
1515+just bench metastore 10 1000
1516just bench run --scenario write --records 10000
1617```
1718···2425- `read`: repeated `listRecords` queries against one seeded repo.
2526- `repo`: full repo CAR materialization through `writeRepoCar`.
2627- `blob`: blob write/read against disk blobstore plus SQLite metadata.
2828+- `metastore`: Tranquil-shaped apply/get/list benchmark with caller counts and
2929+ latency percentiles.
27302831Each run uses temporary SQLite and blobstore state.
2932···4750SQLX_OFFLINE=true cargo bench -p tranquil-store --bench metastore --features tranquil-store/test-harness
4851```
49525050-The `metastore` bench is not an exact mirror of ZDS's current `write` scenario:
5151-it measures Tranquil's storage commit path with generated commits and explicit
5252-concurrency tiers, while ZDS currently measures sequential `applyWrites` through
5353-the local store API. Treat this as an orientation pass, not a scoreboard.
5353+ZDS now has a matching `metastore` scenario:
54545555-| operation | zds sequential | tranquil single caller |
5656-|---|---:|---:|
5757-| write/apply commit | 294 ops/s | 268 ops/s, p95 4.1 ms |
5858-| list records | 30k ops/s | 27k ops/s, p95 53 us |
5555+```sh
5656+just bench metastore 1 1000
5757+just bench metastore 10 1000
5858+just bench metastore 100 200
5959+just bench metastore 1000 50
6060+```
59616060-Tranquil's same bench also reports concurrent storage pressure:
6262+The operation classes match Tranquil's `metastore` bench: apply/write one
6363+record, get one record CID/record, and list records from a seeded repo. The
6464+implementations are not identical internally. Tranquil measures its metastore
6565+handler pool and eventlog path; ZDS measures the local store API, including repo
6666+commit construction and the current process-wide store mutex.
61676262-| operation | callers | tranquil |
6363-|---|---:|---:|
6464-| apply commit | 10 | 738 ops/s, p95 16.0 ms |
6565-| apply commit | 100 | 888 ops/s, p95 123.9 ms |
6666-| apply commit | 1000 | 1169 ops/s, then handler backpressure during reads |
6767-| list records | 10 | 33k ops/s, p95 411 us |
6868-| list records | 100 | 33k ops/s, p95 3.6 ms |
6868+| operation | callers | ops | zds | tranquil |
6969+|---|---:|---:|---:|---:|
7070+| apply/write | 1 | 1000 | 259 ops/s, p95 8.7 ms | not measured at this count |
7171+| apply/write | 1 | 5000 | did not finish in 150 s | 268 ops/s, p95 4.1 ms |
7272+| apply/write | 10 | 10000 | 172 ops/s, p95 48.3 ms | 738 ops/s, p95 16.0 ms |
7373+| apply/write | 100 | 20000 | 1531 ops/s, p95 32.1 ms | 888 ops/s, p95 123.9 ms |
7474+| apply/write | 1000 | 50000 | did not finish in 150 s | 1169 ops/s, then read backpressure |
7575+| get record | 1 | 1000 | 94k ops/s, p95 15 us | not measured at this count |
7676+| get record | 10 | 10000 | 88k ops/s, p95 14 us | 339k ops/s, p95 49 us |
7777+| get record | 100 | 20000 | 82k ops/s, p95 849 us | 425k ops/s, p95 349 us |
7878+| list records | 1 | 1000 | 58k ops/s, p95 18 us | not measured at this count |
7979+| list records | 10 | 10000 | 53k ops/s, p95 22 us | 33k ops/s, p95 411 us |
8080+| list records | 100 | 20000 | 44k ops/s, p95 941 us | 33k ops/s, p95 3.6 ms |
69817070-The 1000-caller Tranquil run reached 1169 apply commits/sec, then the next read
7171-phase failed with `metastore handler backpressure` on this machine. That is a
7272-useful data point, not a completed clean run.
8282+The ZDS 1-caller/5000-write tier and 1000-caller/50000-write tier were stopped
8383+after roughly 150 seconds. The 1000-caller Tranquil run reached 1169 apply
8484+commits/sec, then the next read phase failed with `metastore handler
8585+backpressure` on this machine.
73867487## comparison work
7588