You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#771 was re-scoped to ingestion benchmarks; this issue carries the query half. Rewire the rpc-hack read benches onto the production store readers as a bench-query subcommand next to bench-ingest, reusing #771's CSV sink and reporting format. Together with #771 this completes the original scope (and #730's).
Scope
The eight read benches from the prototype: {hot,cold} × {ledgers, txpage, txhash, events}.
Measure the production read paths in internal/fullhistory/storage/stores/ — e.g. eventstore/query.go + cold_reader.go, ledger/cold_reader.go + hot_store.go, txhash/read_assembly.go + cold_reader.go — not the prototype's own reader implementations (same rewiring principle as Full-history benchmark commands — ingest across all data types #771).
Cold event/txhash benches must measure the complete correct read, including the MPHF post-filter — an index probe alone benchmarks a correctness bug, not a query.
--query-concurrency sweeps and the grid runner (concurrency × data type matrix).
Events query-corpus auto-generation: derive realistic contract-ID/topic terms from the ingested data rather than hand-picked constants.
XDR-views only (the decided path; no views-vs-decode comparison).
Land on feature/full-history at mergeable quality.
Source
rpc-hack scripts/bench-fullhistory/: bench_{cold,hot}_*.go, bench_grid.go, bench_concurrent_runner.go, corpus.go, and the cache-eviction helpers (cold read numbers are meaningless against a warm page cache). Carry the harness and methodology; leave the prototype's reader code behind.
internal/fullhistory/bench/ — the cobra subcommand pattern, the CSV/percentile sink, and the fixture/source plumbing. Benchmark inputs (a populated hot DB / frozen cold chunks) can be produced by bench-ingest itself.
TL;DR
#771 was re-scoped to ingestion benchmarks; this issue carries the query half. Rewire the rpc-hack read benches onto the production store readers as a
bench-querysubcommand next tobench-ingest, reusing #771's CSV sink and reporting format. Together with #771 this completes the original scope (and #730's).Scope
internal/fullhistory/storage/stores/— e.g.eventstore/query.go+cold_reader.go,ledger/cold_reader.go+hot_store.go,txhash/read_assembly.go+cold_reader.go— not the prototype's own reader implementations (same rewiring principle as Full-history benchmark commands — ingest across all data types #771).--query-concurrencysweeps and the grid runner (concurrency × data type matrix).stage,n,n_items,total_ns,p50_ns,p90_ns,p99_ns,max_ns) so Run full-history benchmark commands in CI to catch perf regressions #775 can consume ingest and query reports uniformly.feature/full-historyat mergeable quality.Source
rpc-hack
scripts/bench-fullhistory/:bench_{cold,hot}_*.go,bench_grid.go,bench_concurrent_runner.go,corpus.go, and the cache-eviction helpers (cold read numbers are meaningless against a warm page cache). Carry the harness and methodology; leave the prototype's reader code behind.Reuses from #771
internal/fullhistory/bench/— the cobra subcommand pattern, the CSV/percentile sink, and the fixture/source plumbing. Benchmark inputs (a populated hot DB / frozen cold chunks) can be produced bybench-ingestitself.Out of scope
Dependencies
storage/stores/(landed).