Repository navigation
Conversation
638270b to
8f1f647
Compare
8f1f647 to
b137fa1
Compare
b137fa1 to
bfcf64b
Compare
bfcf64b to
844936b
Compare
640573a to
94ecbc8
Compare
94ecbc8 to
4ada910
Compare
4ada910 to
b0e1cf3
Compare
b0e1cf3 to
69f4b04
Compare
QA LLM Review1. MEDIUM --
|
69f4b04 to
9afbb53
Compare
9afbb53 to
2c091be
Compare
2c091be to
5b0dc02
Compare
7c4baf2 to
1b85ac0
Compare
b82401a to
da7c699
Compare
da7c699 to
93e39ea
Compare
93e39ea to
64cedaf
Compare
64cedaf to
a92ed2a
Compare
a92ed2a to
a4c0f3c
Compare
a4c0f3c to
d397674
Compare
d397674 to
65a9bcd
Compare
65a9bcd to
6f92859
Compare
6f92859 to
d77cfd2
Compare
d77cfd2 to
41f45d5
Compare
bosconi
left a comment
There was a problem hiding this comment.
Adds three feature-benchmark scenarios for the resident cost of 200 publications and one parallel-benchmark scenario that measures maintenance under a saturating peek load. I re-checked the wiring at this head: ManyIndexes is still a group parent so only its three leaves run, MaintenanceUnderPeekSaturation is picked up by all_subclasses(Scenario) in both parallel-benchmark steps, and the derived worker count always lands on a size cluster_replica_size_map defines (scale=1,workers=2^i for i in 0..5, matching the min(32, ...) cap).
Reviewed at cc05e9c.
Addressed since f63ecbb: the worker count is now derived from the host's cores, which fixes the 8-core long-parallel-benchmark agent oversubscribing the single-runtime side, and it is one local feeding both the size and the rate. ManyIndexesIdle's docstring now says it times a count rather than a lookup. The PeekIsolationUnderExpensivePeeks retune moved down into #38676, so my version comment moved with it.
Nits
- The description has fallen behind the code in two places. It says
MaintenanceUnderPeekSaturationruns "one join peek in flight per worker", but the joins are now an open loop at one per worker per second, for the reason the docstring gives. And it saysManyIndexesIdle"measures one lookup", where the scenario now says, correctly, that it times a count over one index, which is a peek dataflow and not a fast-path lookup.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
12 of 14 in the interactive-runtime stack. Stacks on #38676, followed by #38736. Tracked by CPU-216. The design document is
doc/developer/design/20261107_interactive_runtime.mdin #40559.Two questions #38676's benchmarks do not ask.
What a saturated interactive runtime does to maintenance. Two runtimes are twice the worker threads on the same cores.
MaintenanceUnderPeekSaturationloads a replica with join peeks issued open-loop at one per worker per second and two hydration churn loops, while a writer advances a small materialized view. The replica takes the largest power of two of workers up to the host's core count, capped at 32, because that is what the size map offers. mzcompose sets no CPU limit, so the host is fully oversubscribed only when its core count is a power of two of at most 32. On other hosts the second runtime gets idle cores of its own and can only report two runtimes as equal or better. The measured query reads the view strict serializable from a separate one-worker cluster, so it cannot answer before the view's write frontier passes the write and nothing else competes with it: its latency is the view's maintenance lag under the peek load. Read on the loaded replica it would queue behind the joins on the runtime that serves peeks instead, which is what the join loops' own latency reports.What publishing costs at scale with nobody reading.
ManyIndexesIdleandManyIndexesRestartpublish two hundred indexed views over one table, each a distinct arrangement. The first times a count over one index, a peek dataflow rather than a fast-path lookup, and reports, through the clusterd memory column, the resident cost of two hundred publications. The second restarts the replica and waits for a read that imports every index, so every publication is rendered and bound again on the way up.ManyReexportsIdleis the other shape: two hundred indexes on one relation and key share one arrangement, and each publishes it under a publication point of its own.Benchmarks only, no product code changes. A reviewer should check that each scenario measures what its docstring claims, in particular the worker-count rounding.
Posted by Claude Code.
🤖 Generated with Claude Code