Skip to content

refactor!: move pane construction out of the physical layer - #483

Open
zzylol wants to merge 2 commits into
split/462-f-physical-plannerfrom
refactor/physical-layer-no-panes
Open

zzylol wants to merge 2 commits into
split/462-f-physical-plannerfrom
refactor/physical-layer-no-panes

Conversation

@zzylol

@zzylol zzylol commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #475.

Why

Agreed layering: the Planner physical layer compiles computation over typed
input contracts; raw ingestion, pane construction and geometry, storage formats
and stored-state decoding belong to the deployment. The #462 split already moved
stored-state decoding out (#474/#475 have no stored_state), but pane
construction is still in the physical layer: compile_temporal_pane_candidate
decides pane width, count, offsets and entity guards, and the PaneInput
operator checks pane geometry at run time.

What

  • Remove physical_planner::temporal_panes (compile_temporal_pane_candidate,
    TemporalPaneMaintenance, TemporalEntityIdentity) and the PaneInput
    operator. ScopeTimestamp stays, moved to operators/scope_timestamp.rs.
  • Remove the e2e test that exercised the pane compiler
    (selected_temporal_lifecycle_compiles_panes_and_executes) and its helpers.
  • Design doc: one paragraph on what the physical layer does not own.

Computation stays: summary build, pane-state merge (e.g. KLL merge), sketch
estimates and exact finalization. The generic precompute/query split by timing
(#482, #479) is unchanged.

Before this PR

Planner physical layer: lifecycle + window → pane width/count/offsets → PaneInput guards → merge → quantile

After this PR

Deployment: builds panes, binds typed KLL states to input slots
Planner physical layer:                         merge → quantile

Assumptions for review

  • Pane merges and sketch estimates are computation and stay in Planner.
  • Compiled physical plans keep their own serialized form (plan handoff, not storage).
  • The backend takes over pane construction; the removed code and test are saved
    for that follow-up.

Validation

cargo fmt --check, cargo clippy --workspace --all-targets -- -D warnings pass;
cargo test --workspace --no-fail-fast: 1355 passed, 0 failed.

🤖 Generated with Claude Code

zzylol and others added 2 commits September 30, 2026 18:04
Pane geometry, pane population checks and per-pane scheduling are deployment
concerns. The physical layer keeps the computation the deployment binds:
per-input summary build, union, shared merge and readout.

- Remove `physical_planner::compile_temporal_pane_candidate` and its
  `TemporalPaneMaintenance`/`TemporalPaneCandidate`/`TemporalEntityIdentity`
  contract.
- Remove the `PaneInput` operator; `ScopeTimestamp` remains as a general
  operator in `operators/scope_timestamp`.
- Drop the `selected_temporal_lifecycle_compiles_panes_and_executes` E2E test
  and update the crate README and design doc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zzylol
zzylol force-pushed the split/462-f-physical-planner branch from bb1abdd to 0ced125 Compare September 30, 2026 18:26
@zzylol
zzylol force-pushed the refactor/physical-layer-no-panes branch from a4c82cc to fb92998 Compare September 30, 2026 18:27
zzylol added a commit that referenced this pull request Sep 30, 2026
Rebase note: #483 removed the pane test this test was appended after; the
new test is appended to the #483 version of the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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