Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
9b8886e
feat(planner): #509 Stage 2 physical candidates and Stage 3 plan sele…
zzylol Oct 3, 2026
d2924f4
feat(devtools): stage_pipeline emits all four stages for Example 1
zzylol Oct 3, 2026
616ad8a
refactor(planner): read Operator<NodeId> payloads in Stage 2/3 after …
zzylol Oct 8, 2026
e6669ed
fix(planner): Stage 2/3 on #575's composed candidates, query roots an…
zzylol Oct 13, 2026
0ab87ec
test(devtools): regenerate the four-stage Example 1 fixture on the ne…
zzylol Oct 13, 2026
b1792b3
docs(planner): name Stage 2/3 by the planner-layering stage terms
zzylol Oct 13, 2026
2a83ea7
fix(devtools): prune a logical candidate Stage 2 cannot implement, wi…
zzylol Oct 13, 2026
7fcd2af
fix(planner): read empirical output accuracy from deployment evidence…
zzylol Oct 13, 2026
0608e33
refactor(planner): name Stage 2/3 code and pipeline keys after the st…
zzylol Oct 13, 2026
fa26db9
test(planner): plan selection tests after Top-K estimates lost their …
zzylol Oct 13, 2026
251c746
fix(planner): exact top-k sorts by the ranked measure in physical opt…
zzylol Oct 13, 2026
754136c
fix(devtools): stage_pipeline emits plan_selection when selection fails
zzylol Oct 13, 2026
eed8693
docs(planner): plan selection checks Count-Min only under a target; n…
zzylol Oct 13, 2026
03b07e6
fix(planner): exact top-k ranks by the measure of a composed Stage 1 …
zzylol Oct 13, 2026
60197da
fix(planner): exact top-k roots output the logical [keys.., topk_k] c…
zzylol Oct 13, 2026
434717a
fix(planner): charge a NotMaterialized shared node once per consuming…
zzylol Oct 13, 2026
1ad70f9
docs(planner): nodes below a materialized node are charged once for it
zzylol Oct 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions crates/asap-aware-mapping/src/accuracy/evidence.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! Scoped source contracts and evidence required by accuracy rules.
use super::*;
use asap_types::ir::QueryRoot;

/// A trusted source assertion scoped by `AccuracyEvidenceProvider` to one
/// complete evaluation. Choosing this variant asserts the estimator and hash
Expand Down Expand Up @@ -106,6 +107,17 @@ pub trait AccuracyEvidenceProvider {
None
}

/// The deployment's empirical accuracy for one candidate's whole query
/// output, as a guarantee. Plan selection (#509 Stage 3) accepts a
/// candidate whose output has no theoretical guarantee that meets the
/// target (e.g. a difference of two quantile estimates) only when this
/// shows the output meets it. Stage 1 composition never reads it: root
/// guarantees there come from the built-in theoretical model. `None`
/// means no evidence.
fn output_guarantee(&self, _output: &QueryRoot) -> Option<ResultGuarantee> {
None
}

fn propagation_stats(
&self,
_op: &CompositionOperator,
Expand Down
10 changes: 10 additions & 0 deletions crates/asap-aware-mapping/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,3 +215,13 @@ pub mod maintained_population;
/// Stage 1, Pass 1: per-computation candidate generation. No execution timing is
/// assigned: that is a Stage 2 materialization decision.
pub mod per_computation_candidates;

/// #509 Stage 2, physical ASAP-aware optimization (MVP): materialization
/// (every sub-DAG `NotMaterialized`) and physical operator implementation,
/// producing the CandidatePhysicalASAPDAGs.
pub mod physical_asap_optimization;

/// #509 Stage 3, plan selection (MVP): accuracy check, analytical pricing
/// (a `NotMaterialized` node once per query that reads it, a materialized
/// one once), cheapest valid plan.
pub mod plan_selection;
Loading
Loading