8000 Bench: qualify the #841 shape-sweep nightly candidates · Issue #863 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

Bench: qualify the #841 shape-sweep nightly candidates #863

Open

Description

@adityamukho

Follow-up of #841. The manual shape sweeps (report, merged in #860) proposed six small representatives. Each guards one behavior the sweep found, at a cost that looks compatible with a nightly route. None was added to nightly CI by #841, and none is qualified yet.

Candidates

Candidate Behavior it guards Bench-host warmed median
100k facts, 90%-skewed running sum, committed Partition-at-a-time window retention follows the largest partition 718.680 ms
10k entities, K=256 skewed set membership, committed Set membership over large value-page sets 1,124.625 ms
100k facts, descending half offset + 1,000, committed Sort heap of offset + limit rows, paired with ascending input-order Sort omission 62.810 ms
1,110-node tree ancestors, k=1, pending Small in-memory ancestor alternative (5.2× slower without it) 0.205 ms
1,110-node tree ancestors, k=16, committed Bound-value AVET probes (16× slower with attribute scans) 54.969 ms
10k facts, one held cursor across the churn schedule Quarantine of freed pages, release and reuse 0.86–0.94 s of checkpoints per run

Work

For each candidate:

  1. Qualify it on CI hardware. Measure fixture construction, warm-up, process start-up and run-to-run variance on the nightly runner. The figures above come from an idle bench host and don't transfer.
  2. Pin more than time. Assert the answer (row count and checksum) and the relevant path counters (e.g. bound_value_avet_range, ancestor_alternative_selected, entity_probe_cache_hit), plus charged query memory where that is the behavior guarded (window retention, Sort heap). A path regression must fail distinctly from a slower runner.
  3. Choose the route. Decide between Criterion and the envelope profile (profile.envelope, opt 3; the bench profile is opt-level z). Follow the alternating main/v3 schedule and per-suite alerting.
  4. Reject candidates that fail. Record why for any candidate that doesn't qualify (cost, variance, or a fixture too large for the runner).

Keep conclusions distinct from #841: a nightly route detects regressions in one representative, and it doesn't re-establish the sweep's envelope.

Acceptance criteria

  • Each candidate is qualified with a recorded cost and variance on the nightly runner, or rejected with a reason.
  • Qualified candidates run nightly, asserting answers, path counters and (where relevant) charged memory as well as time.
  • docs/bench-coverage-v3.md lists the new routes and marks the Bench: large-scale shape sweeps and recursive optimization isolation #841 proposals as resolved.

Activity

  1. added this to the v3.next milestone on Nov 6, 2026
  2. modified the milestones: v3.next, v3.0.0 on Nov 6, 2026
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

    performanceBenchmark performance regressions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0