docs: refine Q4 finding — residual cost is intermediate bindings, not output relation
ober
a6ed135de17f5c0267938dd2c824da6def43b5b0
--- a/docs/datomic-comparison.md +++ b/docs/datomic-comparison.md @@ -72,10 +72,13 @@ alist bindings with O(1) extension. Before that work Q4 was 1885 ms and Q8 jerboa-db is **competitive with Datomic across the board at this scale**: faster on load and OLTP/index queries, **faster on the Q8 join+aggregate** after the join-engine work, and within ~2.2× on the one remaining query (Q4, a wide -428k-row result — a materialization cost, not a join-algorithm one). Its DuckDB -columnar fallback still leads on the analytical shapes, the same way Datomic -leans on Presto. The remaining lever is Q4-style result materialization -(tuple/columnar result relations); the join algorithm and analytics are handled. +428k-row result). Its DuckDB columnar fallback still leads on the analytical +shapes, the same way Datomic leans on Presto. A dedup-disabled probe pins Q4's +residual cost: the output relation is only ~15% (~126 ms), and the rest (~685 ms) +is the join materializing ~435k **intermediate per-row bindings**. The single +remaining lever is therefore tuple/column **intermediate** join relations (a +relational-engine rewrite) — weighed against Q4 already being covered by the +DuckDB fallback. ## Reproduce