Skip to content

refactor(query): name post-ASAP runtime boundary - #462

Merged
zzylol merged 1 commit into
mainfrom
refactor/post-asap-query-runtime
Sep 3, 2026
Merged

zzylol merged 1 commit into
mainfrom
refactor/post-asap-query-runtime

Conversation

@zzylol

@zzylol zzylol commented Sep 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • rename the warm query planning bridge from L4 terminology to post-ASAP terminology
  • make the runtime API explicitly consume ASAPPlanner's post-ASAP SummaryNode
  • update readout and storage references without changing execution behavior

Why

ASAPPlanner no longer defines an L4 IR. The query runtime should describe the actual boundary before BackendPlan-driven routing is layered on top.

Validation

  • cargo test -p data_plane query_engines::asap_query_engine --lib (89 passed)
  • git diff --check

Stack

  1. this PR — post-ASAP query-runtime terminology
  2. BackendPlan-driven warm eligibility and materialization routing
  3. validated BackendPlan installation and lifecycle
  4. BackendPlan-driven ingest/SID reconciliation
  5. coordinated publication/activation and end-to-end cutover

@zzylol
zzylol merged commit 4497f30 into main Sep 3, 2026
1 check passed
@zzylol
zzylol deleted the refactor/post-asap-query-runtime branch September 12, 2026 14:48
zzylol added a commit that referenced this pull request Sep 29, 2026
A plan is cut once, into what runs ahead of the query and what runs at query
time. The backend had four names for the first half and a different word
entirely for the second, and neither matched the field names in
PhysicalCandidate that Planner hands it.

The query half was called `residual`. That word is also Planner's, for
something else: ExactWindowEdgeResidual is the exact computation covering the
partial panes at a window's two edges, which has nothing to do with this cut.
Call it query-time, which is what it is.

The precompute half answered to `executable_dags`, InstalledPostAsapDag,
`maintenance` in its own validator and schema constant, and RawDagProgram in
the engine, while its own binding type already said `precompute_sinks`. Use
precompute throughout, matching PhysicalCandidate::precompute.

Identifiers and prose only; no serialized value changes. Verified `residual`
never appears in a serde rename. Three sites keep the word because they mean
something else entirely: `residuals` on a KLL sketch is the sketch's own array,
`let residual = a - b - c` in the diagnostic example is arithmetic, and
"typed-local-residual-v3-counter-index" in compiler.rs is a hash seed whose
bytes feed a stored identity, so renaming it would silently invalidate
persisted fingerprints.

Lifecycle vocabulary is untouched. "Summary Maintenance Lifecycle" names how
state is built, retained, reused and scheduled; a precompute DAG is the
physical object a lifecycle compiles to. ASAPPlanner #462 draws the same line
upstream, and its design doc and physical-layer comments now say precompute for
this half.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zzylol added a commit that referenced this pull request Sep 29, 2026
A plan is cut once, into what runs ahead of the query and what runs at query
time. The backend had four names for the first half and a different word
entirely for the second, and neither matched the field names in
PhysicalCandidate that Planner hands it.

The query half was called `residual`. That word is also Planner's, for
something else: ExactWindowEdgeResidual is the exact computation covering the
partial panes at a window's two edges, which has nothing to do with this cut.
Call it query-time, which is what it is.

The precompute half answered to `executable_dags`, InstalledPostAsapDag,
`maintenance` in its own validator and schema constant, and RawDagProgram in
the engine, while its own binding type already said `precompute_sinks`. Use
precompute throughout, matching PhysicalCandidate::precompute.

Identifiers and prose only; no serialized value changes. Verified `residual`
never appears in a serde rename. Three sites keep the word because they mean
something else entirely: `residuals` on a KLL sketch is the sketch's own array,
`let residual = a - b - c` in the diagnostic example is arithmetic, and
"typed-local-residual-v3-counter-index" in compiler.rs is a hash seed whose
bytes feed a stored identity, so renaming it would silently invalidate
persisted fingerprints.

Lifecycle vocabulary is untouched. "Summary Maintenance Lifecycle" names how
state is built, retained, reused and scheduled; a precompute DAG is the
physical object a lifecycle compiles to. ASAPPlanner #462 draws the same line
upstream, and its design doc and physical-layer comments now say precompute for
this half.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
zzylol added a commit that referenced this pull request Sep 29, 2026
ASAPPlanner #470 renamed ExecutableDag to PostAsapDag, and #462 was
rebased onto it. Pin Planner to the rebased #462 head (76fbbf1) and
apply the rename, including OwnedPostAsapDag::from_post_asap_dag.
No serialized field or tag changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
zzylol added a commit that referenced this pull request Sep 29, 2026
ASAPPlanner #470 renamed ExecutableDag to PostAsapDag, and #462 was
rebased onto it. Pin Planner to the rebased #462 head (76fbbf1) and
apply the rename, including OwnedPostAsapDag::from_post_asap_dag.
No serialized field or tag changes.

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