Repository navigation
Description
Follow-up of #776: X06 in the remaining exclusions and follow-ups table, finalized in #834.
Disposition: MANUAL / ENVELOPE scaling and isolation.
Milestone: v3.next — These are broader future shape/isolation sweeps beyond fixed nightly representatives; release-critical bounded-memory acceptance remains X02.
Remaining scope recorded by the audit:
Large 10m sorting/window/envelope sweeps, wider set cardinalities, sustained pin/quarantine/log-reader churn and sparse/repeated-ref UUID projection are outside V's fixed shortlists. Dedicated isolation of each recursive-probe optimization is unverified; representative queries do not establish per-optimization timings.
Expand C02/C03/C13/C14/C23/C25/C29/C31 beyond the validation run's fixed shortlist:
- Large 10m-fact sorting, top-k/offset and window/envelope sweeps. C25 currently has eight 100k pending/committed offset/descending controls (offset zero/half, k=10/1000), compound ties at 10k/100k, and prepared limit/offset slots. Ordered/partition representatives reach 1m, mostly singleton groups; C23 also has 100x100 rows with incompatible window orders. These do not substitute for larger/varied shapes.
- Wider set cardinalities and distributions. C29 currently uses 10k storage facts with four-element inline or 32-element long repeated/unique sets, plus 10k-entity pending/committed membership and collection cases. Sweep cardinality, repeated/unique values and skew without assuming those fixed representatives bound all costs.
- Sustained cursor/snapshot generation pins, COW quarantine/free-page growth/reuse, checkpoints and long-held FactLog readers. C13 only holds an old 10k snapshot across two untimed setup checkpoints; checkpoint fixtures with incremental writes and C31's 10k/100k history readers with default/4096 windows do not establish long-run churn bounds.
- Sparse/repeated-reference UUID projection: committed scans and existing dense/batched projection representatives do not isolate IdSpace/DICT/cache behavior under these distributions.
- Dedicated isolation of recursive-probe optimizations: cached probes, delta ordering, bound-value AVET joins, and the small in-memory ancestor alternative. Existing chain/tree and selective committed ancestor queries measure combined paths, not a per-optimization contribution.
Why outside the nightly shortlist: these are expensive multi-dimensional or sustained runs, and controlled optimization attribution needs dedicated matched experiments. Coordinate finite-cap/RSS/transaction acceptance with X02, browser migration with X03 and host churn with X04; keep scope and conclusions distinct.
Acceptance criteria:
- Publish a reproducible sweep plan covering 10m sorting/window/envelope shapes, wider set cardinalities, sparse/repeated-ref UUID projection and sustained cursor/FactLog/checkpoint churn.
- Retain exact revisions, build/options/cache state, fixture cardinalities/skew, query shapes, raw latency and RSS/retained-state/file/quarantine high-water observations with correctness checks.
- For sustained pins/churn, record growth during pinning and reclamation after release across enough checkpoint generations to assess the claimed behavior.
- Use matched controls to isolate each named recursive optimization where feasible; otherwise state the confounder and limit the conclusion to end-to-end representative performance.
- Publish the measured envelope and remaining limitations; recommend any small new nightly representative separately without claiming the sweep itself is nightly coverage.
Run heavy builds, enumeration, measurements and comparisons on idle hardware; retain reproducible evidence and clean temporary scratch afterward. This is benchmark/verification work aligned with PHILOSOPHY.md's reliability, portability and simplicity principles; any production change needs its own review.
Evidence: docs/bench-coverage-v3.md; validation run 41642356471. The validation run establishes only its recorded representative latency coverage; it does not complete this follow-up.
Activity
Merge pull request #860 from project-minigraf/bench/841-shape-sweeps
adityamukho commentedon Nov 6, 2026
Done: the manual shape sweeps, recursive controls, churn runs and memory series are published in docs/benchmarks/841-shape-sweeps (#860, merge 5d85c36), with the evidence archive and hashes. The docs site was updated in project-minigraf/minigraf-docs#90. Recorded limits: the ancestor 128-row cutoff was not isolated, and chain-1000 is blocked by the round limit. Follow-ups: #861 (configurable max_iterations), #862 (query-level override audit and allow_overrides), #863 (qualify the nightly candidates).