writeonce/bench/baseline.json
shoney.arickathil 40d56c4664 perf(wal): checkpoint measured — 2.16x space, 1.78x boot, 2.7ms pause — T5
databasev2 3, task 5.

Full campaign, same workload twice, differing only in whether
checkpointing may fire:

- WAL used 1962358 -> 907094 bytes (2.16x reclaimed)
- boot 114 -> 64 ms (1.78x), median of 3
- stop-the-world pause max 2651us against a STATED 50ms budget

The budget is asserted, not assumed: 50ms is a stall a serving process
can absorb without a client seeing a timeout, and the leg fails if it is
exceeded. The pause is O(live rows) — at ~181 MB/s a 1GB live set implies
~5.5s, which is the number an incremental design must be bought against.
The spec deliberately did not buy it in advance.

FOUND BY MEASURING: the dump was 8x slower than it needed to be. It
flushed through wo_wal_commit, which fdatasyncs, so it paid one barrier
per 256 records. Intermediate durability there is worthless — the temp is
not authoritative until the rename and is fsynced once immediately before
it. With a single final barrier:

- ~107KB live: 23948us -> 2903us
- ~500KB live: 36361us -> 7526us
- ~1.98MB live: 107649us -> 13212us
- marginal ~22 MB/s -> ~181 MB/s, sync-bound to bandwidth-bound

Correctness re-proven after that change: wovm-test 36 suites 0 fail,
test_wal 760 pass including the 40-round kill-during-compaction battery.

Two measurement defects of my own, fixed rather than reported:

- boot measured through the driver's run() helper reported 251ms both
  with and without checkpointing — run() samples RSS on a 250ms poll, so
  every timing floors at the quantum. Measured directly instead, median
  of 3
- ckpt.reclaim_x was recorded as lower-is-better by the default detector,
  which would have PASSED "reclaimed nothing" and FAILED an improvement:
  the feature's central claim, gated backwards. Now higher-is-better,
  gated at 15% while the wall-clock metrics stay wide — waiving them all
  would have left the leg ungated, part A's task 4 mistake

- sample gains a `boot` mode that does nothing, so boot time is boot time
- walstats now reports compactions, pause max/total and compacted bytes
- baseline refreshed from the FULL campaign (N=20000, crash_reps=3), and
  a fresh full run passes 116 checks 0 failures
- gate bites: reclaim_x doctored to 1.0 -> FAIL on exactly that metric

One flake seen and checked, not papered over: durable.sN.query.ops_sec
failed once at 53% below baseline. It is a read-only metric that touches
no WAL code, and a re-run passed 116/0 with the box at load 1.85.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 06:20:13 +02:00

567 lines
No EOL
9.8 KiB
JSON

{
"_config": {
"N": 20000,
"crash_reps": 3,
"msg_n": 200000,
"note": "refresh only with a commit that says why; tolerances come from tolerance_for() in the driver",
"wal_n": 4000
},
"ckpt.boot_off_ms": {
"dir": "lower",
"floor": 456,
"tolerance_pct": 100,
"value": 114
},
"ckpt.boot_on_ms": {
"dir": "lower",
"floor": 260,
"tolerance_pct": 100,
"value": 65
},
"ckpt.bytes_off": {
"dir": "lower",
"floor": 7843356,
"tolerance_pct": 100,
"value": 1960839
},
"ckpt.bytes_on": {
"dir": "lower",
"floor": 3770868,
"tolerance_pct": 100,
"value": 942717
},
"ckpt.compactions": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 100,
"value": 6
},
"ckpt.pause_us_max": {
"dir": "lower",
"floor": 10368,
"tolerance_pct": 100,
"value": 2592
},
"ckpt.reclaim_x": {
"dir": "higher",
"floor": 0.0,
"tolerance_pct": 15,
"value": 2.08
},
"durable.s1.mixread.ops_sec": {
"dir": "higher",
"floor": 2185,
"tolerance_pct": 50,
"value": 8740
},
"durable.s1.mixread.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 2
},
"durable.s1.mixread.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 13
},
"durable.s1.mixwrite.ops_sec": {
"dir": "higher",
"floor": 242,
"tolerance_pct": 50,
"value": 971
},
"durable.s1.mixwrite.p50us": {
"dir": "lower",
"floor": 1744,
"tolerance_pct": 50,
"value": 436
},
"durable.s1.mixwrite.p99us": {
"dir": "lower",
"floor": 2768,
"tolerance_pct": 50,
"value": 692
},
"durable.s1.query.ops_sec": {
"dir": "higher",
"floor": 236183,
"tolerance_pct": 50,
"value": 944733
},
"durable.s1.query.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"durable.s1.query.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 2
},
"durable.s1.read.ops_sec": {
"dir": "higher",
"floor": 221317,
"tolerance_pct": 50,
"value": 885269
},
"durable.s1.read.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"durable.s1.read.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 2
},
"durable.s1.seed.ops_sec": {
"dir": "higher",
"floor": 1091,
"tolerance_pct": 15,
"value": 4366
},
"durable.s1.seed.p50us": {
"dir": "lower",
"floor": 856,
"tolerance_pct": 15,
"value": 214
},
"durable.s1.seed.p99us": {
"dir": "lower",
"floor": 2108,
"tolerance_pct": 15,
"value": 527
},
"durable.s1.wmix.mean_batch": {
"dir": "higher",
"floor": 0.0,
"tolerance_pct": 100,
"value": 1.0
},
"durable.s1.wmix.ops_sec": {
"dir": "higher",
"floor": 386,
"tolerance_pct": 15,
"value": 1545
},
"durable.s1.wmix.p50us": {
"dir": "lower",
"floor": 1784,
"tolerance_pct": 15,
"value": 446
},
"durable.s1.wmix.p99us": {
"dir": "lower",
"floor": 2844,
"tolerance_pct": 15,
"value": 711
},
"durable.s1.wmix.peak_batch": {
"dir": "higher",
"floor": 0,
"tolerance_pct": 100,
"value": 1
},
"durable.s1.wmix.peak_staged": {
"dir": "lower",
"floor": 196,
"tolerance_pct": 100,
"value": 49
},
"durable.s1.write.ops_sec": {
"dir": "higher",
"floor": 565,
"tolerance_pct": 15,
"value": 2261
},
"durable.s1.write.p50us": {
"dir": "lower",
"floor": 1776,
"tolerance_pct": 15,
"value": 444
},
"durable.s1.write.p99us": {
"dir": "lower",
"floor": 2852,
"tolerance_pct": 15,
"value": 713
},
"durable.sN.mixread.ops_sec": {
"dir": "higher",
"floor": 1124,
"tolerance_pct": 50,
"value": 4496
},
"durable.sN.mixread.p50us": {
"dir": "lower",
"floor": 268,
"tolerance_pct": 50,
"value": 67
},
"durable.sN.mixread.p99us": {
"dir": "lower",
"floor": 14280,
"tolerance_pct": 100,
"value": 3570
},
"durable.sN.mixwrite.ops_sec": {
"dir": "higher",
"floor": 124,
"tolerance_pct": 50,
"value": 499
},
"durable.sN.mixwrite.p50us": {
"dir": "lower",
"floor": 2220,
"tolerance_pct": 50,
"value": 555
},
"durable.sN.mixwrite.p99us": {
"dir": "lower",
"floor": 15744,
"tolerance_pct": 100,
"value": 3936
},
"durable.sN.query.ops_sec": {
"dir": "higher",
"floor": 316055,
"tolerance_pct": 50,
"value": 1264222
},
"durable.sN.query.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"durable.sN.query.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 100,
"value": 1
},
"durable.sN.read.ops_sec": {
"dir": "higher",
"floor": 271385,
"tolerance_pct": 50,
"value": 1085540
},
"durable.sN.read.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"durable.sN.read.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 100,
"value": 2
},
"durable.sN.seed.ops_sec": {
"dir": "higher",
"floor": 1100,
"tolerance_pct": 50,
"value": 4403
},
"durable.sN.seed.p50us": {
"dir": "lower",
"floor": 852,
"tolerance_pct": 50,
"value": 213
},
"durable.sN.seed.p99us": {
"dir": "lower",
"floor": 2076,
"tolerance_pct": 100,
"value": 519
},
"durable.sN.wmix.mean_batch": {
"dir": "higher",
"floor": 1.0,
"tolerance_pct": 100,
"value": 6.5
},
"durable.sN.wmix.ops_sec": {
"dir": "higher",
"floor": 1587,
"tolerance_pct": 50,
"value": 6351
},
"durable.sN.wmix.p50us": {
"dir": "lower",
"floor": 25584,
"tolerance_pct": 50,
"value": 6396
},
"durable.sN.wmix.p99us": {
"dir": "lower",
"floor": 36608,
"tolerance_pct": 100,
"value": 9152
},
"durable.sN.wmix.peak_batch": {
"dir": "higher",
"floor": 15,
"tolerance_pct": 100,
"value": 60
},
"durable.sN.wmix.peak_staged": {
"dir": "lower",
"floor": 11760,
"tolerance_pct": 100,
"value": 2940
},
"durable.sN.write.ops_sec": {
"dir": "higher",
"floor": 559,
"tolerance_pct": 50,
"value": 2239
},
"durable.sN.write.p50us": {
"dir": "lower",
"floor": 1792,
"tolerance_pct": 50,
"value": 448
},
"durable.sN.write.p99us": {
"dir": "lower",
"floor": 3128,
"tolerance_pct": 100,
"value": 782
},
"ram.s1.mixread.ops_sec": {
"dir": "higher",
"floor": 22256,
"tolerance_pct": 50,
"value": 89025
},
"ram.s1.mixread.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.mixread.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 2
},
"ram.s1.mixwrite.ops_sec": {
"dir": "higher",
"floor": 2472,
"tolerance_pct": 50,
"value": 9891
},
"ram.s1.mixwrite.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.mixwrite.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 2
},
"ram.s1.msgrate.msgs_sec": {
"dir": "higher",
"floor": 1737438,
"tolerance_pct": 15,
"value": 13899506
},
"ram.s1.query.ops_sec": {
"dir": "higher",
"floor": 238891,
"tolerance_pct": 50,
"value": 955566
},
"ram.s1.query.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.query.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.read.ops_sec": {
"dir": "higher",
"floor": 257042,
"tolerance_pct": 50,
"value": 1028171
},
"ram.s1.read.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.read.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.s1.seed.ops_sec": {
"dir": "higher",
"floor": 58306,
"tolerance_pct": 15,
"value": 233225
},
"ram.s1.seed.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 15,
"value": 4
},
"ram.s1.seed.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 15,
"value": 10
},
"ram.s1.write.ops_sec": {
"dir": "higher",
"floor": 44816,
"tolerance_pct": 15,
"value": 179266
},
"ram.s1.write.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 15,
"value": 8
},
"ram.s1.write.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 15,
"value": 16
},
"ram.sN.mixread.ops_sec": {
"dir": "higher",
"floor": 11233,
"tolerance_pct": 50,
"value": 44933
},
"ram.sN.mixread.p50us": {
"dir": "lower",
"floor": 248,
"tolerance_pct": 50,
"value": 62
},
"ram.sN.mixread.p99us": {
"dir": "lower",
"floor": 376,
"tolerance_pct": 50,
"value": 94
},
"ram.sN.mixwrite.ops_sec": {
"dir": "higher",
"floor": 1248,
"tolerance_pct": 50,
"value": 4992
},
"ram.sN.mixwrite.p50us": {
"dir": "lower",
"floor": 268,
"tolerance_pct": 50,
"value": 67
},
"ram.sN.mixwrite.p99us": {
"dir": "lower",
"floor": 388,
"tolerance_pct": 50,
"value": 97
},
"ram.sN.msgrate.msgs_sec": {
"dir": "higher",
"floor": 309065,
"tolerance_pct": 50,
"value": 2472524
},
"ram.sN.query.ops_sec": {
"dir": "higher",
"floor": 257201,
"tolerance_pct": 50,
"value": 1028806
},
"ram.sN.query.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.sN.query.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 3
},
"ram.sN.read.ops_sec": {
"dir": "higher",
"floor": 293565,
"tolerance_pct": 50,
"value": 1174260
},
"ram.sN.read.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.sN.read.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 1
},
"ram.sN.seed.ops_sec": {
"dir": "higher",
"floor": 65093,
"tolerance_pct": 50,
"value": 260375
},
"ram.sN.seed.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 4
},
"ram.sN.seed.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 10
},
"ram.sN.write.ops_sec": {
"dir": "higher",
"floor": 53619,
"tolerance_pct": 50,
"value": 214477
},
"ram.sN.write.p50us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 7
},
"ram.sN.write.p99us": {
"dir": "lower",
"floor": 100,
"tolerance_pct": 50,
"value": 11
}
}