Conversation
…oposal The per-node timing slot is filled by applying a summary maintenance lifecycle assignment instead of a derive_timings pass over the IR. Validity checks become validation of the applied assignment; the stage plan copies current timing as the initial assignment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
On the open question about |
Replace the largest-non-ASAP-subtree fragment export with one Relational node per operator, so physical compilation corresponds node by node. Name the timing source as physical design (summary materialization) and point the open LifecycleAssignment question at SummaryMaintenanceLifecyclePlan (#482). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
zzylol
added a commit
that referenced
this pull request
Sep 30, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 owner-approved planner layering (#480, "Output layers") makes the summary maintenance lifecycle layer the only source of execution timing: logical Post-ASAP / PlanSpace decides what to compute, the lifecycle layer decides placement, physical compilation splits by timing, and the deployment prices lifecycle assignments. The flattening proposal merged in #469 instead derived timing from operator kinds with
derive_timings.What
Docs only,
docs/design_docs/proposals/operator-sharing.md:derive_timings/derive_timings_at→apply_lifecycle_timings(root, &LifecycleAssignment, memo). Thetimingslot stays;Unsetmeans no assignment applied, and export rejects it.Validity checks (e.g. ingestion work cannot depend on a query-time result) become validation of the applied assignment (§2.3, §4, §5).
Notes that some logical candidates hard-code timing today (exact-composition placements, maintained populations, feat: expose physical-ready logical candidates in Planner selection #472's
Rate→Sumpair); they become lifecycle choices.Stage table: stage 4 applies current timing as the initial assignment; stage 5 switches to lifecycle-applied timing; stage 6 removes the fallbacks. Tests and open questions updated.
derive_guaranteesis unchanged.decoupling_op_and_expr.mddoes not mention timing, so it is not changed.§6 export: replace "largest connected non-ASAP subtree as one
Relationalfragment (withDagInputleaves)" with one post-ASAP node per non-ASAP operator; children become edges. Physical compilation then corresponds node by node (a node may expand to helper operators numbered from it). Tests and consumer table updated accordingly.Wording: the timing source is "physical design (summary materialization)", matching docs: define the Planner and deployment layering contract #509; the
LifecycleAssignmentopen question now points toSummaryMaintenanceLifecyclePlan/execution_timed_dag()from feat: derive execution timing from a summary lifecycle plan #482.Before this PR
After this PR
Related
#469 (original proposal), #480 (output layers), #476
🤖 Generated with Claude Code