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>
Selvomega
requested changes
Oct 1, 2026
Selvomega
left a comment
Collaborator
There was a problem hiding this comment.
Please don't merge this PR. I will update my design doc based on this PR as well as recent updates in main
Contributor
Author
|
@Selvomega given the new planner architecture design and #511, this PR can be closed. |
zzylol
added a commit
that referenced
this pull request
Oct 2, 2026
…ation (#509) * docs: define the Planner and deployment layering contract Add the layering proposal, its proposals-index entry, and an Output layers section in the input/output/workflow design. Every Planner layer outputs all legal candidates; the deployment keeps every summary-family candidate and selects with its own costs. Design DAG names are marked as the target API with the current main type alongside. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: treat source binding as a PhysicalDAG execution step Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: place summary materialization under physical planning Split physical planning into physical design (summary materialization, workload-level, like materialized-view selection) and physical implementation (per-node lowering and cutting). The annotated graph stays a Post-ASAP DAG; materialization is decided in design and realized by the cut. State node-by-node correspondence and the Fallback exception that the operator-flattening proposal removes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: point per-operator export at #481 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: state family retention and timing-sensitive lowering plainly Describe current Planner behaviour (no family pruning) and the backend gap, and replace the Binary 'exception' with the general rule that a timing- sensitive node needs one compilation per distinct timing, with an example. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: drop Binary lowering detail from the layering proposal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: drop mixed-placement and compatibility sections from the layering proposal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: drop the implementation-status section from the layering proposal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: leave input-output-workflow unchanged in the layering PR Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: move selection into ASAPPlanner; deployment supplies prices Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: address review of layering proposal Planner takes the query and data workloads plus the deployment's cost model, accuracy requirements and capabilities, and returns one optimal PhysicalDAG; candidate sets stay internal. Name the annotated stage MaterializedPostASAPDAG, tabulate what each DAG encodes, fold timing and selection into the layer descriptions, rename physical design to summary materialization, and make the example trace one query through every DAG. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: name layer 2 summary lifecycle planning; drop deployment ranking row A lifecycle fixes materialization, timing, maintenance, retention and window framework together, so the stage and its DAG are named after the lifecycle (LifecyclePostASAPDAG) rather than one of those aspects. The deployment row no longer mentions ranking or selection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: rename layering proposal to planner-layering.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: name the DAG stages LogicalPostASAPDAG and PhysicalPostASAPDAG Every stage after the frontend is a Post-ASAP DAG; the prefix says how far planning has gone: Logical, Lifecycle, Physical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Update planner-layering.md * Update README.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * Update planner-layering.md * docs: clarify planning contracts and simplify examples * docs: restore detailed planning stages diagram * docs: align stage diagram with planning contracts * docs: restore planner layering proposal to 8c29c2e * Update planner-layering.md * Update planner-layering.md * docs: address remaining planner-layering review comments Replace "executable", "lower", "price" and "costed" wording, note that materialized output may live on disk or in memory, keep Hydra's per-job heap explicit, mark SQL entropy/L2 recognition as frontend TODO, and fill in the sliding-window merge citation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- 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: propose workload-wide planning, summary sharing, and materialization #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