Repository navigation
feat(control-plane): compile Planner lifecycle guarantees - #453
Merged
Merged
Conversation
This was referenced Sep 2, 2026
# Conflicts: # control_plane/src/sketch_algebra/cost_model.rs
zzylol
changed the base branch from
feat/opamp-physical-plan-publication
to
main
September 2, 2026 17:53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The latest ASAPPlanner selects not only a sketch primitive but also a summary-maintenance lifecycle. The MVP must compile and transmit that guarantee rather than silently assuming runtime behavior.
What
Pins merged ASAPPlanner#324 at
5d0b6f6edcac65edc89a72051f37977ab0c83031, supplies recurrence/ingestion/horizon/capability/cost evidence, fails closed on stale or non-executable choices, and carries the selected lifecycle in Collector and backend plans.How
Translate runtime evidence into the Planner lifecycle request, accept only an executable selection, encode it in target-specific JSON and typed protobuf, and reject unsupported backend values during decoding.
Before this PR
The compiler omitted lifecycle selection, so continuous incremental maintenance could be assumed without an explicit Planner commitment.
After this PR
Every accepted physical plan includes the lifecycle selected from current evidence, and both Collector and backend validate that commitment.
Evidence
Execution example: compiler and backend-plan tests cover lifecycle propagation and unsupported lifecycle rejection. Visual and performance evidence are not applicable.
Verification
cargo test -p control_plane— 717 library tests and 28 binary tests passed.cargo check -p data_planeandgit diff --check— passed.Architectural decisions
Planner remains authoritative for lifecycle selection; runtime components validate and execute the selected guarantee rather than selecting locally.
Limitations and follow-up
Stacked on #452. ASAPPlanner#324 is merged; this PR pins its
mainmerge commit5d0b6f6edcac65edc89a72051f37977ab0c83031. The MVP runtime currently supports continuous, incremental, per-update maintenance only.Human review — do not complete with an agent