8000 Bench: large-scale shape sweeps and recursive optimization isolation · Issue #841 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

Bench: large-scale shape sweeps and recursive optimization isolation #841

Closed

Description

@adityamukho

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

  1. added this to the v3.next milestone on Nov 4, 2026
  2. added a commit that references this issue on Nov 5, 2026
  3. adityamukho commented on Nov 6, 2026

    @adityamukho
    CollaboratorAuthor

    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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestperformanceBenchmark performance regressions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0