Commit 19161cf
Completes #404 (the concurrency half already shipped as concurrency-gate).
Adds five #[ignore] perf_gate_* harness tests in src/db.rs (release-only,
run via the workflow) and a perf-gate.yml workflow that builds lean release
and runs them with budgets/corpus sizes pinned as env vars:
- recall FTS rare-term @100k p50 < 30ms (post-#401: ~0.09ms local)
- recall browse @100k p50 < 5ms
- get_entity @100k p50 < 1ms
- as_of @50k history versions on one key p50 < 1ms
- decay_tick @100k wall < 10s, plus the #399 regression signature:
second-consecutive-tick rewritten rows < 1% and WAL growth < 2x DB size
- cohere @100k wall < 5s and post-#400 longest single writer-lock hold
< 1s, via the #400 BEGIN IMMEDIATE probe (extracted from
cohere_lock_window_measurement into spawn_lock_hold_probe and shared)
- history bytes per superseded version @1kb body < 2KB (dbstat when
available, checkpointed file delta otherwise)
Latency metrics are medians of 5 after one warmup; every metric prints a
PERF-GATE table row so the job log shows the numbers, and failures are
collected per test so the full table prints even when one budget blows.
Seeding uses the fastest direct-SQL path (batched transactions, FTS kept
in sync, no dedup/embed side effects) — 100k rows seed in ~1s, whole
harness ~10s local release.
Closes #404
Co-authored-by: tcconnally <hermes@perseus.observer>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent a0557d4 commit 19161cf
3 files changed
Lines changed: 564 additions & 38 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
38 | 51 | | |
39 | 52 | | |
40 | 53 | | |
| |||
0 commit comments