Skip to content

Share installed executable DAG contracts with the data plane - #608

Merged
zzylol merged 4 commits into
mainfrom
refactor/shared-executable-plan-contract
Sep 11, 2026
Merged

zzylol merged 4 commits into
mainfrom
refactor/shared-executable-plan-contract

Conversation

@zzylol

@zzylol zzylol commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The data plane consumes installed semantic DAGs, but their DTOs and query-node IDs were defined by the control-plane compiler. This gave runtime consumers a compiler-owned contract and used the same PostAsapDagDocument name for a different structure than Planner's transport envelope.

Move the owned DAG, physical bindings, and QueryNodeId into asap_types::executable_plan. Name the installed representation OwnedPostAsapDag to distinguish it from Planner's envelope. Its serialization remains unchanged; Planner payloads are decoded on demand because the in-memory Planner IR contains Rc. QueryPlan cross-checking stays in the control plane.

Before: precompute imported compiler-owned installation DTOs. After: compiler and precompute share the same Send/Sync contract; the compiler retains placement decisions and query-plan validation.

Verification: 68 physical-compiler tests passed, including installed DAG serialization/bindings; the shared contract's Send/Sync and wire-identity test and both data-plane subDAG scheduler tests passed. Performance and visual evidence are not applicable to this ownership refactor.

Scope: QueryPlan and PrecomputePlan definitions still live in the control plane and need a separate extraction. This change does not expand maintenance operators or alter execution behavior.

@zzylol
zzylol merged commit e15e2c2 into main Sep 11, 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