Skip to content

workload-replay: Confirm performance regressions with paired reruns - #38712

Open
aljoscha wants to merge 2 commits into
MaterializeInc:mainfrom
aljoscha:qar-153-confirm-workload-regressions
Open

workload-replay: Confirm performance regressions with paired reruns#38712
aljoscha wants to merge 2 commits into
MaterializeInc:mainfrom
aljoscha:qar-153-confirm-workload-regressions

Conversation

@aljoscha

@aljoscha aljoscha commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Motivation

Workload replay gates performance on a single reference/current pair. Short object-creation timings and variable CPU averages can cross the 20% threshold on unchanged code. A single outlier should trigger confirmation, not fail the workload outright.

Changes

Keep all existing thresholds. When a pair reports performance regressions, run one additional fresh reference/current pair with the same seed and workload settings. Fail only for metrics that exceed their thresholds in both pairs. Rerun the reference too, since an unusually fast baseline can produce a false regression just as an unusually slow current run can.

Passing comparisons and runs without a reference do not incur extra work. Query-error failures and replay exceptions are not retried. A requested reference that cannot be resolved fails explicitly rather than silently bypassing comparison.

Both comparison tables remain in the log and in confirmed failure details. Comparison plots have attempt-specific names. The cost is at most one extra pair per regressing workload, including setup and hydration. This filters one-off noise, but does not establish statistical significance or eliminate correlated measurement noise.

Coverage

Add executor-level tests using real metric comparisons and controlled replay results. They cover transient and persistent regressions, an anomalously fast baseline, mismatched metrics across attempts, query errors in either pair, no-reference execution, unresolved references, cleanup counts, and retained comparison evidence.

The full benchmark remains unverified locally because workload repository cloning stalled. Full repository checks are also blocked by missing tools and a Rust toolchain older than the workspace requires. CI confirmation is still needed.

Closes: QAR-153

Release notes

None.

Require the same metric to exceed its existing threshold in two fresh reference/current pairs. Rerun the baseline as well so an unusually fast reference does not poison confirmation. Preserve both comparison tables and plots, and keep query errors fatal without retrying them.

Closes: QAR-153
@aljoscha
aljoscha marked this pull request as ready for review September 8, 2026 12:27
@aljoscha
aljoscha requested a review from bosconi September 8, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant