docs: refresh 10% MBrainz numbers post-retraction-fix
ober
0f599a14bffcdc9689bc5ce0fe033d6616de9284
--- a/jerboa-db.md +++ b/jerboa-db.md @@ -2877,7 +2877,7 @@ Open items (not blocking parity): |---|---|---| | `defquery` macro for compile-time specialization | Q1/Q2/Q6/Q7 sub-µs hot path | Deferred — auto-routing already covers the headline gap | | Real MBrainz EDN loader | Full-scale validation | Synthetic data tracks the shape; real EDN would eliminate any "synthetic shortcut" doubt | -| Q4 row-count divergence at 10% scale | Translator parity | Datalog 4.27M vs DuckDB 8.27M at 10%; 1% and 5% match bit-for-bit | +| Faster `analytics-sync!` at scale | Throughput | 126s for 6.4M datoms (10%); could go to APPEND/COPY API + incremental delta | ### Comparison vs Datahike (published numbers, full scale) --- a/plan.md +++ b/plan.md @@ -46,13 +46,13 @@ compile-time query specialization no longer moved the needle on the bench. | Q1 | 0 ms | — | parity holds | | Q2 | 8 ms | — | parity holds | | Q3 | 9 ms | — | parity holds | -| Q4 (4.27M result rows) | 20451 ms | **6476 ms** | bit-for-bit identical after retraction-aware sync fix | -| Q5 | 35 ms | — | parity holds | +| Q4 (4.27M result rows) | 21191 ms | **3826 ms** (auto: 3702) | 5.5× — bit-for-bit identical | +| Q5 | 36 ms | — | parity holds | | Q6 | 0 ms | — | parity holds | | Q7 | 0 ms | — | parity holds | -| Q8 | 15800 ms | **45 ms** | 351× — bit-for-bit identical (3 rows) | -| Loading | 25.6 s | | | -| Analytics-sync (one-time) | 126 s | | | +| Q8 | 15260 ms | **41 ms** (auto: 42) | 372× — bit-for-bit identical (3 rows) | +| Loading | 27.6 s | | | +| Analytics-sync (one-time) | 127 s | | one-time, amortized across many queries | Q4 result counts match bit-for-bit between Datalog and DuckDB at 1%, 5%, and 10% scale (428,096 / 2,138,115 / 4,270,990 rows respectively). The