Skip to content

Select dashboard tumbling pane sizes and enforce window correctness - #527

Merged
zzylol merged 8 commits into
mainfrom
feat/repeated-dashboard-evaluation
Sep 8, 2026
Merged

zzylol merged 8 commits into
mainfrom
feat/repeated-dashboard-evaluation

Conversation

@zzylol

@zzylol zzylol commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Stacked on #526. Planning and execution guards land together because accepting smaller panes without validating the read interval can return incomplete warm results.

Before this PR

Backend-local compilation accepted only lookback-sized Tumbling states, discarded concrete IDs during framework costing, and replaced the original lifecycle time scope with Unknown. Raw pane membership also used [start,end) although PromQL requires (start,end]. A production regression returned 10230 instead of 230 after wrongly including a left-boundary sample.

After this PR

  • Accept separately quoted Tumbling pane sizes dividing the lookback. Preserve implementation IDs through Planner's complete-candidate estimate and install its selected pane width in state identity, precompute configuration and query bindings. Preserve original repeated QueryWorkload demand and time scope. Update Planner to current main abb2f20e27091ac0c60715dc42b9b59c75b3447c.
  • Preserve legacy cadence compatibility; check actual evaluation alignment at serving time. Multi-pane reads reject partial, missing/open and interior missing panes before merging. Advancing lookbacks exclude old stored panes.
  • Encode PromQL right-closed membership in raw state parameters/fingerprints. Shift only pane assignment and closure timestamps, preserving original accumulator sample timestamps.
  • Exercise production RemoteWrite → control-plane planning/install → SUM/COUNT/ratio DAG → instant/range reads with selected 5s panes and advancing 10s lookbacks, including samples exactly at both boundaries. No min/max-specific implementation.

Verification

  • cargo test -p control_plane --lib: 660 passed.
  • cargo test -p data_plane --lib -- --test-threads=1: 982 passed.
  • cargo test -p data_plane --test asapquery_compatibility_process_e2e -- --test-threads=1: 3 passed.
  • Regression tests first reproduced partial-pane acceptance and the boundary overcount, then passed with the fixes. Candidate cost changes select different installed sizes while preserving lookback.
  • Updated an inherited stale summary-update assertion to test expressions outside the now-supported column/unit-weight contract.

Sparse panes without explicit completion evidence conservatively fall back. Logical window expiration does not imply immediate physical reclamation. Candidate costs remain provider supplied; this PR does not invent a measured cost formula. Collector deployments retain lookback-sized panes. This is correctness/conformance coverage, not the real o11ybench benefit report.

Developer contract and reproduction: docs/developer_docs/planning/repeated-dashboard-panes.md.

…g-review

# Conflicts:
#	control_plane/src/physical/compiler.rs
#	control_plane/src/physical/post_asap/tests.rs
#	control_plane/src/query_plan.rs
#	data_plane/src/query_engines/asap_query_engine/summary_exec.rs
…:ProjectASAP/ASAPQuery-backend into codex/pr527-accounting-review
@zzylol
zzylol changed the base branch from feat/o11ybench-comparison to main September 8, 2026 21:02
@zzylol
zzylol merged commit d15b2b7 into main Sep 8, 2026
1 check passed
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