From 370ee25e88b6a88f21141662c7c3ccc41c50d95a Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 03:12:51 +0000 Subject: [PATCH 01/80] test: place level-one acceptance after required physical implementation --- .github/workflows/mvp-ci.yml | 9 + control_plane/tests/issue754_level1.rs | 522 ++++++++++++++++++++++ promql-compliance/datasets/issue-754.yaml | 26 ++ promql-compliance/suites/issue-754.yaml | 46 ++ 4 files changed, 603 insertions(+) create mode 100644 control_plane/tests/issue754_level1.rs create mode 100644 promql-compliance/datasets/issue-754.yaml create mode 100644 promql-compliance/suites/issue-754.yaml diff --git a/.github/workflows/mvp-ci.yml b/.github/workflows/mvp-ci.yml index 8cfc1d22e..925b83a98 100644 --- a/.github/workflows/mvp-ci.yml +++ b/.github/workflows/mvp-ci.yml @@ -85,9 +85,18 @@ jobs: CARGO_NET_GIT_FETCH_WITH_CLI: "true" # Give background flusher/sealer waits headroom on hosted runners. ASAP_TEST_TIMEOUT_SCALE: "4" + ASAP_LEVEL1_ARTIFACT_DIR: ${{ github.workspace }}/artifacts/issue754-level1 working-directory: ASAPQuery-backend # Persistence tests wait on background flushers with bounded deadlines. # Match scripts/e2e.sh to avoid competing flushers exhausting those waits. run: | export ASAP_E2E_CONTROL_PLANE_BIN="$PWD/target/debug/control_plane" cargo test --workspace --locked -- --test-threads=1 + + - name: Upload issue 754 level-1 plans + if: always() + uses: actions/upload-artifact@v4 + with: + name: issue754-level1-plans + path: artifacts/issue754-level1 + if-no-files-found: ignore diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs new file mode 100644 index 000000000..17c9b607f --- /dev/null +++ b/control_plane/tests/issue754_level1.rs @@ -0,0 +1,522 @@ +//! Issue #754 level 1: every shared workload query has a valid physical plan. +use asap_types::sds::SummaryOperator; +use control_plane::physical::compiler::{ + BackendLocalPlanningInput, CompiledPhysicalPlan, DeploymentPlanCompiler, BACKEND_REVISION, + PLANNER_REVISION, +}; +use control_plane::physical::executable_binding::validate_query_plan; +use control_plane::physical::workload_cost::{ + enumerate_exact_and_materialized_candidates, manifest, WorkloadCostEvidence, WorkloadQuote, +}; +use control_plane::query_plan::QueryPlanNode; +use planner_types::post_asap::{ExactKind, SketchAlgorithm, SummaryFamilyType}; +use serde::Deserialize; +use serde_json::{json, Value}; + +#[derive(Deserialize)] +struct Suite { + queries: Vec, +} + +#[derive(Deserialize)] +struct Case { + name: String, + expr: String, +} + +struct ExpectedPlan { + family: Option, + partitioning: &'static str, + readout: &'static str, + root_operation: Option<&'static str>, +} + +enum ExpectedFamily { + Exact(ExactKind), + QuantileSketch, +} + +// These are semantic contracts for the installed query DAG, not a snapshot of +// generated node IDs or cost-dependent summary IDs. +fn expected_plan(name: &str) -> ExpectedPlan { + match name { + "spatial-sum" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Sum)), + partitioning: "grouped", + readout: "sum", + root_operation: None, + }, + "spatial-topk" => ExpectedPlan { + family: None, + partitioning: "", + readout: "", + root_operation: None, + }, + "spatial-quantile" => ExpectedPlan { + family: Some(ExpectedFamily::QuantileSketch), + partitioning: "grouped", + readout: "quantile", + root_operation: None, + }, + "temporal-sum" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Sum)), + partitioning: "per_entity", + readout: "sum", + root_operation: None, + }, + "temporal-quantile" => ExpectedPlan { + family: Some(ExpectedFamily::QuantileSketch), + partitioning: "per_entity", + readout: "quantile", + root_operation: None, + }, + "temporal-rate" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Rate)), + partitioning: "per_entity", + readout: "rate", + root_operation: None, + }, + "grouped-rate" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Rate)), + partitioning: "per_entity", + readout: "rate", + root_operation: Some("aggregate"), + }, + "grouped-temporal-sum" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Sum)), + partitioning: "grouped", + readout: "sum", + root_operation: None, + }, + "topk-rate" => ExpectedPlan { + family: Some(ExpectedFamily::Exact(ExactKind::Rate)), + partitioning: "per_entity", + readout: "rate", + root_operation: Some("limit"), + }, + "quantile-ratio" => ExpectedPlan { + family: None, + partitioning: "", + readout: "", + root_operation: None, + }, + other => panic!("no level-1 plan expectation for {other}"), + } +} + +fn family_matches(expected: &ExpectedFamily, actual: &SummaryFamilyType) -> bool { + match (expected, actual) { + (ExpectedFamily::Exact(expected), SummaryFamilyType::ExactAggregate(actual, _)) => { + expected == actual + } + (ExpectedFamily::QuantileSketch, SummaryFamilyType::Sketch(kind, _)) => { + matches!( + kind.algorithm(), + SketchAlgorithm::DDSketch | SketchAlgorithm::Kll + ) + } + _ => false, + } +} + +fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { + for materialization in &plan.precompute_plan.materializations { + let definition = plan + .summary_catalog + .definitions + .get(&materialization.policy_fingerprint().into()) + .expect("precompute producer has no catalog definition"); + let descriptor = + &plan.summary_catalog.summary_descriptors[&definition.summary_descriptor_id]; + let SummaryOperator::Configured { family, .. } = &descriptor.operator else { + panic!("{name}: producer catalog descriptor lacks Planner family"); + }; + assert_eq!( + family, + &materialization.accumulator_spec().unwrap().family, + "{name}: precompute producer and catalog disagree about Planner family" + ); + } + let expected = expected_plan(name); + let artifact = serde_json::to_value(plan).unwrap(); + let entries = artifact["query_plan"]["entries"].as_object().unwrap(); + assert_eq!(entries.len(), 1, "{name}: expected one query plan"); + let entry = entries.values().next().unwrap(); + let nodes = entry["nodes"].as_object().unwrap(); + let mut node = &nodes[&entry["root"].as_u64().unwrap().to_string()]; + let materializations = artifact["precompute_plan"]["materializations"] + .as_array() + .unwrap(); + if name == "spatial-topk" { + assert_eq!(nodes.len(), 1, "{name}: unexpected query nodes"); + assert_eq!(node["op"], "logical", "{name}: expected a local readout"); + assert_eq!(node["operator"]["kind"], "current_series"); + assert_eq!(node["operator"]["population"]["metric"], "data"); + assert_eq!( + node["operator"]["population"]["grouping"], + json!({"labels":["label_0"],"without":false}) + ); + assert_eq!(node["operator"]["population"]["max_k"], 3); + assert_eq!(node["operator"]["readout"], json!({"kind":"top_k","k":3})); + assert!( + materializations.is_empty(), + "{name}: current-series readout has no summary producer" + ); + return None; + } + if name == "grouped-temporal-sum" && node["op"] == "logical" { + return Some("grouped-temporal-sum: Planner left a per-series temporal Sum and an outer exact grouped Sum; expected one time-and-label grouped Sum producer".into()); + } + if name == "quantile-ratio" { + if node["op"] == "exact_fallback" { + return Some("quantile-ratio: expected two q=0.9/q=0.5 quantile sketch readouts followed by local division; Planner emitted exact fallback".into()); + } + assert_eq!(node["op"], "binary", "{name}: expected local division"); + assert!( + matches!(node["operator"].as_str(), Some("div" | "Div")), + "{name}: wrong binary operator" + ); + let inputs = node["inputs"].as_array().unwrap(); + assert_eq!(inputs.len(), 2); + for (input, q) in inputs.iter().zip([0.9, 0.5]) { + let readout = &nodes[&input.to_string()]; + assert_eq!(readout["op"], "summary_estimate"); + assert_eq!(readout["query"], json!({"kind":"quantile","q":q})); + let leaf = &nodes[&readout["input"].to_string()]; + assert_eq!(leaf["op"], "read_materialization"); + assert_eq!(leaf["binding"]["output_grouping"]["mode"], "per_entity"); + assert_eq!(leaf["binding"]["readout_lookback_ms"], 60_000); + } + assert!(!materializations.is_empty()); + assert!(plan.precompute_plan.materializations.iter().all(|summary| { + family_matches( + &ExpectedFamily::QuantileSketch, + &summary.accumulator_spec().unwrap().family, + ) && summary.metric == "data" + && summary.window_size == 60 + })); + return None; + } + let Some(family) = expected.family.as_ref() else { + panic!("{name}: no physical plan contract"); + }; + if let Some(operation) = expected.root_operation { + assert_eq!(node["op"], "logical", "{name}: missing root operator"); + assert_eq!( + node["operator"]["kind"], operation, + "{name}: wrong root operator" + ); + if operation == "aggregate" { + assert_eq!(node["operator"]["operation"], "sum"); + } else { + assert_eq!(node["operator"]["n"], 3, "{name}: wrong grouped limit"); + assert_eq!(node["operator"]["offset"], 0); + } + assert_eq!( + node["operator"]["grouping"], + json!({"labels":["label_0"],"without":false}), + "{name}: wrong grouping" + ); + let inputs = node["inputs"].as_array().unwrap(); + assert_eq!(inputs.len(), 1, "{name}: root must have one input"); + node = &nodes[&inputs[0].to_string()]; + if operation == "limit" { + assert_eq!(node["op"], "logical"); + assert_eq!(node["operator"]["kind"], "sort"); + assert_eq!(node["operator"]["descending"], true); + assert_eq!( + node["operator"]["grouping"], + json!({"labels":["label_0"],"without":false}) + ); + let inputs = node["inputs"].as_array().unwrap(); + assert_eq!(inputs.len(), 1); + node = &nodes[&inputs[0].to_string()]; + } + } + assert_eq!( + nodes.len(), + if expected.root_operation == Some("limit") { + 4 + } else if expected.root_operation.is_some() { + 3 + } else { + 2 + }, + "{name}: unexpected DAG nodes" + ); + if expected.readout == "quantile" { + assert_eq!( + node["op"], "summary_estimate", + "{name}: missing sketch readout" + ); + assert_eq!( + node["query"], + json!({"kind":"quantile","q":0.9}), + "{name}: wrong quantile" + ); + } else { + assert_eq!(node["op"], "exact_readout", "{name}: wrong readout node"); + assert_eq!(node["readout"], expected.readout, "{name}: wrong readout"); + } + let leaf = &nodes[&node["input"].to_string()]; + assert_eq!( + leaf["op"], "read_materialization", + "{name}: missing summary read" + ); + assert_eq!( + materializations.len(), + 1, + "{name}: expected one summary producer" + ); + let summary = &materializations[0]; + let actual_family = plan.precompute_plan.materializations[0] + .accumulator_spec() + .unwrap() + .family; + assert!( + family_matches(family, &actual_family), + "{name}: wrong Planner family: {actual_family:?}" + ); + assert_eq!(summary["metric"], "data", "{name}: wrong source metric"); + assert_eq!( + summary["partitioning"], expected.partitioning, + "{name}: wrong population partitioning" + ); + let spatial = expected.partitioning == "grouped"; + // Grouping does not shorten a temporal range. window_size is the semantic + // window; the selected window_layout independently specifies stored panes. + if name == "grouped-temporal-sum" { + assert_eq!(leaf["binding"]["readout_lookback_ms"], 60_000); + assert_eq!( + leaf["binding"]["window_ms"], + plan.precompute_plan.materializations[0].stored_window_ms() + ); + } + assert_eq!( + summary["window_size"], + if spatial && name != "grouped-temporal-sum" { + 5 + } else { + 60 + }, + "{name}: wrong summary window" + ); + assert_eq!( + leaf["binding"]["output_grouping"]["mode"], + if spatial { "reduce" } else { "per_entity" }, + "{name}: wrong read grouping" + ); + if spatial { + assert_eq!(summary["grouping_labels"]["labels"], json!(["label_0"])); + assert_eq!( + leaf["binding"]["output_grouping"]["keys"], + json!(["label_0"]) + ); + } else { + assert_eq!( + leaf["binding"]["readout_lookback_ms"], 60_000, + "{name}: wrong PromQL range" + ); + } + None +} + +/// The same ten expressions used by level 2 must compile to typed, connected plans. +#[test] +fn issue754_queries_have_valid_physical_plans() { + let suite: Suite = serde_yaml::from_str(include_str!( + "../../promql-compliance/suites/issue-754.yaml" + )) + .unwrap(); + assert_eq!(suite.queries.len(), 10, "the issue-754 contract changed"); + let mut missing_local_plans = Vec::new(); + for case in suite.queries { + let expected = expected_plan(&case.name); + let mut snapshot: Value = serde_json::from_str(include_str!( + "../../docs/examples/asapquery-planning-snapshot.json" + )) + .unwrap(); + snapshot["query_workload"]["repeating_queries"][0]["query"] = case.expr.clone().into(); + if case.name == "quantile-ratio" { + // The issue-754 generator defines the entire positive finite input + // population. Supply its domain contract rather than certifying a + // ratio from sample observations or weakening the admission rule. + let fixture: Value = serde_yaml::from_str(include_str!( + "../../promql-compliance/datasets/issue-754.yaml" + )) + .unwrap(); + let mut lower = f64::INFINITY; + let mut upper = f64::NEG_INFINITY; + let mut count = 0u64; + for series in fixture["series"].as_array().unwrap() { + let g = &series["generated_samples"]; + let n = |k: &str| g[k].as_f64().unwrap(); + assert!(n("multiplier") > 0.0 && n("modulo") > 0.0 && n("base") > 0.0); + lower = lower.min(n("multiplier") * n("base")); + upper = upper.max(n("multiplier") * (n("base") + n("modulo"))); + count += ((n("end_offset_seconds") - n("start_offset_seconds")) / n("step_seconds")) + .round() as u64 + + 1; + } + let root = control_plane::query_parser::parse_query_expr_canonical( + &case.expr, + planner_types::types::AccuracyTarget::EpsilonDelta { + epsilon: 0.01, + delta: 0.01, + }, + ) + .unwrap(); + let planner_types::pre_asap::QueryExpr::BinaryOp { lhs, rhs, .. } = root else { + panic!("ratio fixture"); + }; + snapshot["implementation"]["data_snapshot_id"] = json!("issue-754-level1"); + snapshot["implementation"]["accuracy_evidence"][&case.expr] = json!({ + "query_string":case.expr,"data_snapshot_id":"issue-754-level1", + "data_workload":snapshot["data_workload"],"source":"issue-754-finite-generator", + "observed_at_unix_ms":9500,"valid_for_ms":60000, + "quantile_operand_domains":([lhs,rhs].into_iter().map(|operand| json!({ + "operand":operand,"lower":lower,"upper":upper,"max_samples":count, + "contract":"complete finite issue-754 generator population"})).collect::>()) + }); + } + let mut input: BackendLocalPlanningInput = serde_json::from_value(snapshot).unwrap(); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let mut valid_plans = Vec::new(); + let mut quotes = Vec::new(); + let mut errors = Vec::new(); + for (candidate_index, candidate) in candidates.into_iter().enumerate() { + match DeploymentPlanCompiler.compile_promql(candidate.clone(), environment.clone()) { + Ok(plan) => { + let entry = plan.query_plan.lookup(&case.expr).unwrap(); + assert_eq!(entry.canonical_query, case.expr); + assert!( + entry.nodes.contains_key(&entry.root), + "query root must exist" + ); + if let Some(installed) = + plan.precompute_plan.executable_dags.get(&entry.query_id) + { + installed.validate().expect("typed DAG is valid"); + validate_query_plan(installed, entry).expect("DAG/query bindings agree"); + } else { + assert!( + plan.precompute_plan.materializations.is_empty(), + "summary plan must retain its Planner DAG" + ); + } + let dot = control_plane::physical::plan_dot::render(&plan); + assert!(dot.contains("PrecomputePlan") && dot.contains("QueryPlan:")); + if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { + let base = std::path::Path::new(&directory) + .join("candidates") + .join(format!("{}-{candidate_index}", case.name)); + std::fs::create_dir_all(base.parent().unwrap()).unwrap(); + std::fs::write( + base.with_extension("json"), + serde_json::to_vec_pretty(&plan).unwrap(), + ) + .unwrap(); + std::fs::write(base.with_extension("dot"), &dot).unwrap(); + } + // The level-1 acceptance target is a backend-local plan. + // Price explicit exact fallbacks above every local candidate. + let cost = if plan.query_plan.entries.values().any(|entry| { + entry + .nodes + .values() + .any(|node| matches!(node, QueryPlanNode::ExactFallback { .. })) + }) { + 1e12 + } else if plan.precompute_plan.materializations.is_empty() { + 2.0 + } else { + 1.0 + }; + let manifest = manifest(&plan, &candidate.queries).unwrap(); + quotes.push(WorkloadQuote { + unit_costs: manifest + .components + .keys() + .map(|key| (key.clone(), cost)) + .collect(), + manifest, + executable: true, + }); + valid_plans.push(plan); + } + Err(error) => errors.push(error.to_string()), + } + } + assert!( + !valid_plans.is_empty(), + "{} has no valid physical plan: {errors:?}", + case.name + ); + if let Some(family) = expected.family.as_ref() { + assert!( + valid_plans.iter().any(|plan| { + plan.precompute_plan + .materializations + .iter() + .any(|m| family_matches(family, &m.accumulator_spec().unwrap().family)) + && plan.query_plan.entries.values().all(|entry| { + entry.nodes.values().any(|node| { + matches!(node, QueryPlanNode::ReadMaterialization { .. }) + }) && !entry + .nodes + .values() + .any(|node| matches!(node, QueryPlanNode::ExactFallback { .. })) + }) + }), + "{} lacks a readable summary candidate: {errors:?}", + case.name + ); + } + input.workload_cost_evidence = Some(WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "issue-754-level1".into(), + model_version: "deterministic-test-costs".into(), + observed_at_unix_ms: environment.observed_at_unix_ms, + valid_for_ms: environment.max_evidence_age_ms, + quotes, + }); + let selected = input + .compile_promql() + .unwrap_or_else(|error| panic!("{} selected plan failed: {error}", case.name)); + let selected_entry = selected.query_plan.lookup(&case.expr).unwrap(); + assert!(selected_entry.nodes.contains_key(&selected_entry.root)); + if let Some(error) = assert_selected_plan(&case.name, &selected) { + missing_local_plans.push(error); + } + if let Some(installed) = selected + .precompute_plan + .executable_dags + .get(&selected_entry.query_id) + { + installed.validate().unwrap(); + validate_query_plan(installed, selected_entry).unwrap(); + } + if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { + let plan = &selected; + std::fs::create_dir_all(&directory).unwrap(); + let base = std::path::Path::new(&directory).join(&case.name); + std::fs::write( + base.with_extension("json"), + serde_json::to_vec_pretty(plan).unwrap(), + ) + .unwrap(); + std::fs::write( + base.with_extension("dot"), + control_plane::physical::plan_dot::render(plan), + ) + .unwrap(); + } + } + assert!( + missing_local_plans.is_empty(), + "{}", + missing_local_plans.join("\n") + ); +} diff --git a/promql-compliance/datasets/issue-754.yaml b/promql-compliance/datasets/issue-754.yaml new file mode 100644 index 000000000..d84b1e283 --- /dev/null +++ b/promql-compliance/datasets/issue-754.yaml @@ -0,0 +1,26 @@ +name: issue-754 +series: + - metric: data + labels: {label_0: a, instance: a1} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 10, modulo: 120} + - metric: data + labels: {label_0: a, instance: a2} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 2, base: 20, modulo: 120} + - metric: data + labels: {label_0: a, instance: a3} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 3, base: 30, modulo: 120} + - metric: data + labels: {label_0: a, instance: a4} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 4, base: 40, modulo: 120} + - metric: data + labels: {label_0: b, instance: b1} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 5, base: 50, modulo: 120} + - metric: data + labels: {label_0: b, instance: b2} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 6, base: 60, modulo: 120} + - metric: data + labels: {label_0: b, instance: b3} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 7, base: 70, modulo: 120} + - metric: data + labels: {label_0: b, instance: b4} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 8, base: 80, modulo: 120} diff --git a/promql-compliance/suites/issue-754.yaml b/promql-compliance/suites/issue-754.yaml new file mode 100644 index 000000000..cb04ecf19 --- /dev/null +++ b/promql-compliance/suites/issue-754.yaml @@ -0,0 +1,46 @@ +name: issue-754 +comparison_defaults: + value_tolerance: + relative: 0.01 + absolute: 0.000001 +queries: + - name: spatial-sum + expr: 'sum by (label_0) (data)' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: spatial-topk + expr: 'topk by (label_0) (3, data)' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: spatial-quantile + expr: 'quantile by (label_0) (0.9, data)' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: temporal-sum + expr: 'sum_over_time(data[1m])' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: temporal-quantile + expr: 'quantile_over_time(0.9, data[1m])' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: temporal-rate + expr: 'rate(data[1m])' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: grouped-rate + expr: 'sum by (label_0) (rate(data[1m]))' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: grouped-temporal-sum + expr: 'sum by (label_0) (sum_over_time(data[1m]))' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: topk-rate + expr: 'topk by (label_0) (3, rate(data[1m]))' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} + - name: quantile-ratio + expr: 'quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])' + instant_offsets_seconds: [120, 180] + range: {start_offset_seconds: 120, end_offset_seconds: 180, step_seconds: 60} From 3aba47c1f92e1bd0d1e7e04188a22baf8860d3a6 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 03:12:51 +0000 Subject: [PATCH 02/80] Restack PR #761 with implementation before standalone acceptance --- README.md | 17 +- control_plane/src/main.rs | 77 +- control_plane/src/physical/compiler.rs | 815 +++++++++++++++--- .../src/physical/compiler/windows.rs | 4 +- control_plane/src/physical/erp.rs | 175 +++- .../src/physical/post_asap/cost_model.rs | 251 +++++- control_plane/src/physical/workload_cost.rs | 226 ++++- .../src/physical/workload_cost/automatic.rs | 667 ++++++++++++++ control_plane/src/planner_selection.rs | 8 +- control_plane/tests/discovery_snapshot.rs | 2 +- .../support/distinct_planning_process.rs | 179 ++++ docs/design_docs/README.md | 1 + docs/design_docs/asapplanner-integration.md | 10 + .../evidence-dependent-candidates.md | 319 +++++++ docs/design_docs/shape-aware-erp-v1.md | 8 +- docs/evaluation/e2e-physical-dag.md | 18 +- docs/examples/workload-cost-evidence.md | 18 +- 17 files changed, 2629 insertions(+), 166 deletions(-) create mode 100644 control_plane/src/physical/workload_cost/automatic.rs create mode 100644 docs/design_docs/evidence-dependent-candidates.md diff --git a/README.md b/README.md index f9391cbc1..ae06b77f7 100644 --- a/README.md +++ b/README.md @@ -302,13 +302,16 @@ dot -Tsvg target/readme-evidence/selected.dot \ -o target/readme-evidence/selected.svg ``` -Candidate discovery accepts the checked-in unquoted templates. Deployment and -selected-plan inspection require `ASAPQUERY_PLANNING_SNAPSHOT` to point to a -snapshot with complete, valid workload cost evidence. Prepare that input using -the [cost evidence workflow](docs/examples/workload-cost-evidence.md). -There is one snapshot compiler: it compares complete executable alternatives, -including exact fallback. Materialization IDs are definitions, not physical SIDs. -For `--metricsql`, collect quotes for the MetricsQL frontend. +Candidate discovery and deployment accept snapshots without external workload +quotes. The backend combines applicable ERP resources or analytical estimates +with data size, query frequency and physical-plan structure, then compares +complete candidate costs, including exact fallback. The selected plan includes +the resource breakdown and assumptions in `cost_comparison`. + +Point `ASAPQUERY_PLANNING_SNAPSHOT` to your workload snapshot with current data +and capability inputs. Optional calibrated provider quotes can override automatic +costing through the [cost evidence workflow](docs/examples/workload-cost-evidence.md). +Materialization IDs are definitions, not physical SIDs. ## Prometheus runbook diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index 41dd15050..303caaef3 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -203,8 +203,12 @@ struct CompileAndPublishPhysicalPlanRequest { target_collector_ids: Vec, capability_snapshot_id: String, #[serde(default)] + data_snapshot_id: Option, + #[serde(default)] evidence: HashMap, #[serde(default)] + accuracy_evidence: HashMap, + #[serde(default)] exact_composition_costs: HashMap>, #[serde(default)] @@ -588,7 +592,7 @@ fn compile_physical_plan_request( legacy_query_source: planner_types::pre_asap::Source::TimeSeries { metric: query.metric, }, - query_lookback_seconds: query.window_secs, + query_lookback_ms: query.window_secs.saturating_mul(1_000), group_by_labels: query.group_by, accuracy_target: query.accuracy, summary_lifecycle_inputs: query.lifecycle, @@ -597,16 +601,54 @@ fn compile_physical_plan_request( }); } - let planner_selection_trace = match physical::compiler::select_logical_roots_with_trace( - &mut queries, - canonical_roots.clone(), - &request.evidence, - &request.exact_composition_costs, - request.erp.as_ref(), - ) { - Ok(trace) => trace, - Err(error) => return Err((StatusCode::UNPROCESSABLE_ENTITY, error.to_string().into())), - }; + let scoped_snapshot_id = request.data_snapshot_id.as_deref().or_else(|| { + request + .workload_cost_evidence + .as_ref() + .map(|evidence| evidence.data_snapshot_id.as_str()) + }); + if request.data_snapshot_id.as_ref().is_some_and(|id| { + request + .workload_cost_evidence + .as_ref() + .is_some_and(|evidence| evidence.data_snapshot_id != *id) + }) { + return Err(( + StatusCode::UNPROCESSABLE_ENTITY, + "accuracy evidence data snapshot differs from workload cost evidence".into(), + )); + } + for (query_id, evidence) in &request.accuracy_evidence { + let Some(query) = queries.iter().find(|query| &query.query_id == query_id) else { + return Err(( + StatusCode::UNPROCESSABLE_ENTITY, + format!("accuracy evidence names unknown query {query_id}").into(), + )); + }; + evidence + .validate( + query_id, + &query.query_string, + &request.data_workload, + scoped_snapshot_id, + now, + request.max_evidence_age_ms, + ) + .map_err(|error| (StatusCode::UNPROCESSABLE_ENTITY, error.to_string().into()))?; + } + let planner_selection_trace = + match physical::compiler::select_logical_roots_with_scoped_evidence_and_trace( + &mut queries, + canonical_roots.clone(), + &request.evidence, + &request.accuracy_evidence, + &request.exact_composition_costs, + request.erp.as_ref(), + now, + ) { + Ok(trace) => trace, + Err(error) => return Err((StatusCode::UNPROCESSABLE_ENTITY, error.to_string().into())), + }; for (query, model) in queries.iter_mut().zip(window_models) { physical::compiler::prepare_window_implementations(query, &model, request.target, 0) @@ -685,7 +727,7 @@ fn compile_physical_plan_request( ) } }, - None => frontend.compile(compilation_request, environment), + None => physical::workload_cost::select_candidates(candidates, environment, None, frontend), }; let bundle = match compiled { Ok(bundle) => bundle, @@ -926,7 +968,7 @@ mod api_tests { "target": "backend_local_remote_write", "queries": [{ "query_id": query.query_id, "query_string": query.query_string, - "metric": metric, "window_secs": query.query_lookback_seconds, "accuracy": query.accuracy_target, + "metric": metric, "window_secs": query.query_lookback_ms / 1_000, "accuracy": query.accuracy_target, "lifecycle": query.summary_lifecycle_inputs, "evaluation_phase_ms": 0, "window_cost_model": { "implementation_id": "test", "cost": query.window_realization_candidates[0].cost } }], "collector_ids": [], "capability_snapshot_id": "test", @@ -938,6 +980,15 @@ mod api_tests { let (plan, collectors, _, _, _) = compile_physical_plan_request(request, false, QueryFrontend::PromQl).unwrap(); let plan = plan.unwrap(); + let report = plan + .cost_comparison + .as_ref() + .expect("HTTP must compare automatically priced candidates"); + assert_eq!(report.model_version, "backend-workload-resources-v1"); + assert!(report + .candidate_evaluations + .iter() + .any(|candidate| candidate.automatic_cost.is_some())); assert!(collectors.is_empty()); assert!(plan.collector_plans.is_empty()); assert_eq!( diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index c5e93e98a..934da0b8c 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -71,7 +71,7 @@ pub struct QueryCompilationInput { /// materialization sources are derived from each post-ASAP SummaryAgg; /// it also remains part of the cost manifest workload identity. pub legacy_query_source: Source, - pub query_lookback_seconds: u64, + pub query_lookback_ms: u64, /// Label names are deployment metadata because Planner's canonical IR /// currently carries positional column IDs at this boundary. pub group_by_labels: Vec, @@ -196,6 +196,134 @@ pub struct TopKMembershipEvidence { pub source: String, } +/// A proof for one exact Planner operand, including the enforced source +/// domain rather than an observed sample minimum or maximum. +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[serde(deny_unknown_fields)] +pub struct QuantileOperandDomainEvidence { + pub operand: Value, + pub lower: f64, + pub upper: f64, + pub max_samples: u64, + pub contract: String, +} + +/// Optional accuracy facts bound to one registered query and data snapshot. +/// Missing fields stay unknown to Planner. The data workload and snapshot +/// identity prevent reusing a proof for a different source population. +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[serde(deny_unknown_fields)] +pub struct ScopedAccuracyEvidence { + pub query_string: String, + pub data_snapshot_id: String, + pub data_workload: DataWorkload, + pub source: String, + pub observed_at_unix_ms: u64, + pub valid_for_ms: u64, + #[serde(default)] + pub quantile_operand_domains: Vec, + #[serde(default)] + pub hll: Option, + #[serde(default)] + pub values_non_negative: Option, + #[serde(default)] + pub input_row_count: Option, + #[serde(default)] + pub hydra_shared_grid_collision_bound: Option, + #[serde(default)] + pub hydra_shared_grid_failure_probability: Option, + #[serde(default)] + pub topk_selected_lower_bound: Option, + #[serde(default)] + pub topk_excluded_upper_bound: Option, + #[serde(default)] + pub topk_interval_failure_probability: Option, +} + +impl ScopedAccuracyEvidence { + pub fn validate( + &self, + query_id: &str, + query_string: &str, + data: &DataWorkload, + snapshot_id: Option<&str>, + now_ms: u64, + max_age_ms: u64, + ) -> Result<(), CompileError> { + let valid_scope = self.query_string == query_string + && &self.data_workload == data + && snapshot_id.is_some_and(|id| id == self.data_snapshot_id) + && !self.data_snapshot_id.trim().is_empty() + && !self.source.trim().is_empty(); + let valid_time = self.observed_at_unix_ms <= now_ms + && self.valid_for_ms > 0 + && now_ms - self.observed_at_unix_ms <= self.valid_for_ms.min(max_age_ms); + let topk_bounds = ( + self.topk_selected_lower_bound, + self.topk_excluded_upper_bound, + self.topk_interval_failure_probability, + ); + let valid_topk = match topk_bounds { + (None, None, None) => true, + (Some(lower), Some(upper), Some(failure)) => { + lower.is_finite() + && upper.is_finite() + && lower > upper + && (0.0..=1.0).contains(&failure) + } + _ => false, + }; + let valid_stats = valid_topk + && self + .hll + .as_ref() + .is_none_or(super::erp::HllConfidenceContract::valid) + && self.input_row_count != Some(0) + && self + .hydra_shared_grid_collision_bound + .is_none_or(|v| v.is_finite() && v >= 0.0) + && self + .hydra_shared_grid_failure_probability + .is_none_or(|v| (0.0..=1.0).contains(&v)) + && self + .quantile_operand_domains + .iter() + .enumerate() + .all(|(index, domain)| { + domain.lower.is_finite() + && domain.upper.is_finite() + && domain.lower <= domain.upper + && (1..=(1u64 << 53)).contains(&domain.max_samples) + && !domain.contract.trim().is_empty() + && !self.quantile_operand_domains[..index] + .iter() + .any(|earlier| earlier.operand == domain.operand) + }); + if valid_scope && valid_time && valid_stats { + return Ok(()); + } + let reason = if self.query_string != query_string { + "accuracy evidence belongs to a different query" + } else if &self.data_workload != data { + "accuracy evidence belongs to a different data workload" + } else if !snapshot_id.is_some_and(|id| id == self.data_snapshot_id) + || self.data_snapshot_id.trim().is_empty() + { + "accuracy evidence belongs to a different or unspecified data snapshot" + } else if self.source.trim().is_empty() { + "accuracy evidence has no provenance source" + } else if !valid_time { + "accuracy evidence is expired, future-dated, or has no validity window" + } else { + "accuracy evidence contains invalid or ambiguous bounds" + }; + Err(CompileError::InvalidEvidence { + query_id: query_id.into(), + reason: reason.into(), + }) + } +} + #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(deny_unknown_fields)] pub struct PhysicalDeploymentContext { @@ -219,7 +347,7 @@ pub enum PhysicalDeploymentTarget { } /// Startup and candidate-discovery input for backend-local planning. -/// Version 2 is the sole supported schema; deployment always requires quotes. +/// Version 2 is the sole supported schema; deployment compares complete workload costs. /// Query/data semantics use ASAPPlanner's canonical workload types directly; /// this wrapper adds only backend-owned implementation evidence and lifecycle /// identity required to choose a concrete physical realization. @@ -228,7 +356,7 @@ pub enum PhysicalDeploymentTarget { pub struct BackendLocalPlanningInput { #[serde(rename = "snapshot_version")] pub schema_version: u32, - /// May be absent during candidate discovery, never during deployment. + /// Optional complete provider override; absent evidence uses backend ERP/analytical workload costing. #[serde(default, skip_serializing_if = "Option::is_none")] pub workload_cost_evidence: Option, #[serde(deserialize_with = "deserialize_snapshot_query_workload")] @@ -266,6 +394,12 @@ pub struct BackendLocalPhysicalInputs { /// before workload selection so one query cannot borrow another's evidence. #[serde(default, skip_serializing_if = "HashMap::is_empty")] pub topk_evidence: HashMap, + /// Data generation used by scoped accuracy certificates during candidate + /// discovery, before complete workload quotes are available. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub data_snapshot_id: Option, + #[serde(default, skip_serializing_if = "HashMap::is_empty")] + pub accuracy_evidence: HashMap, /// Measured exact/summary composition profiles keyed by registered /// PromQL. Missing rows keep the corresponding Planner site opaque. #[serde(default, skip_serializing_if = "HashMap::is_empty")] @@ -505,24 +639,75 @@ pub enum CompileError { QueryPlan(#[from] crate::query_plan::QueryPlanError), } -struct QueryEvidence<'a>(Option<&'a TopKMembershipEvidence>); +struct QueryEvidence<'a> { + topk: Option<&'a TopKMembershipEvidence>, + scoped: Option<&'a ScopedAccuracyEvidence>, + now_ms: u64, +} impl AccuracyEvidenceProvider for QueryEvidence<'_> { + fn quantile_input_domain( + &self, + operand: &QueryExpr, + ) -> Option { + let operand = serde_json::to_value(operand).ok()?; + let domain = self + .scoped? + .quantile_operand_domains + .iter() + .find(|entry| entry.operand == operand)?; + Some(asap_aware_mapping::accuracy::QuantileInputDomain { + lower: domain.lower, + upper: domain.upper, + max_samples: domain.max_samples, + contract: domain.contract.clone(), + }) + } + fn propagation_stats( &self, op: &CompositionOperator, _family: &SummaryFamilyType, _query: Option<&SketchQuery>, ) -> PropagationStats { - match (op, self.0) { - (CompositionOperator::TopKSelection, Some(e)) => PropagationStats { - topk_selected_lower_bound: Some(e.selected_lower_bound), - topk_excluded_upper_bound: Some(e.excluded_upper_bound), - topk_interval_failure_probability: Some(e.interval_failure_probability), + let mut stats = self + .scoped + .map_or_else(PropagationStats::default, |evidence| PropagationStats { + values_non_negative: evidence.values_non_negative, + input_row_count: evidence.input_row_count.or_else(|| { + evidence + .data_workload + .input_cardinality + .value_at(self.now_ms) + .copied() + }), + data_distribution: evidence + .data_workload + .distribution + .value_at(self.now_ms) + .cloned(), + hydra_shared_grid_collision_bound: evidence.hydra_shared_grid_collision_bound, + hydra_shared_grid_failure_probability: evidence + .hydra_shared_grid_failure_probability, ..Default::default() - }, - _ => PropagationStats::default(), + }); + if matches!(op, CompositionOperator::TopKSelection) { + if let Some(evidence) = self + .scoped + .filter(|e| e.topk_selected_lower_bound.is_some()) + { + stats.topk_selected_lower_bound = evidence.topk_selected_lower_bound; + stats.topk_excluded_upper_bound = evidence.topk_excluded_upper_bound; + stats.topk_interval_failure_probability = + evidence.topk_interval_failure_probability; + } else if let Some(evidence) = self.topk { + stats.topk_selected_lower_bound = Some(evidence.selected_lower_bound); + stats.topk_excluded_upper_bound = Some(evidence.excluded_upper_bound); + stats.topk_interval_failure_probability = + Some(evidence.interval_failure_probability); + } } + stats } } @@ -546,23 +731,16 @@ impl BackendLocalPlanningInput { self, frontend: QueryFrontend, ) -> Result { - let evidence = self.workload_cost_evidence.clone().ok_or_else(|| { - CompileError::Snapshot( - "deployment requires complete workload cost evidence; export candidates and price them before compiling".into(), - ) - })?; + let evidence = self.workload_cost_evidence.clone(); let (request, environment) = self.into_physical_compilation_request()?; let candidates = super::workload_cost::enumerate_exact_and_materialized_candidates(request)?; - if frontend == QueryFrontend::MetricsQl { - super::workload_cost::select_lowest_cost_metricsql_candidate( - candidates, - environment, - &evidence, - ) - } else { - super::workload_cost::select_lowest_cost_candidate(candidates, environment, &evidence) - } + super::workload_cost::select_candidates( + candidates, + environment, + evidence.as_ref(), + frontend, + ) } /// Build Planner-authorized candidates for evidence collection without publishing. @@ -582,6 +760,29 @@ impl BackendLocalPlanningInput { } let workload = self.query_workload; let mut data_workload = self.data_workload.clone(); + let scoped_snapshot_id = self + .physical_inputs + .data_snapshot_id + .as_deref() + .or_else(|| { + self.workload_cost_evidence + .as_ref() + .map(|evidence| evidence.data_snapshot_id.as_str()) + }); + if self + .physical_inputs + .data_snapshot_id + .as_ref() + .is_some_and(|id| { + self.workload_cost_evidence + .as_ref() + .is_some_and(|evidence| evidence.data_snapshot_id != *id) + }) + { + return Err(CompileError::Snapshot( + "accuracy evidence data snapshot differs from workload cost evidence".into(), + )); + } if data_workload.data_ingestion_interval.value.is_none() && self.physical_inputs.scrape_interval_ms > 0 { @@ -627,6 +828,7 @@ impl BackendLocalPlanningInput { let mut queries = Vec::with_capacity(entries.len()); let mut canonical_roots = Vec::with_capacity(entries.len()); let mut topk_evidence_by_id = HashMap::new(); + let mut scoped_evidence_by_id = HashMap::new(); for (index, (entry, parsed)) in entries.into_iter().zip(canonical_queries).enumerate() { let evaluation_interval_ms = match entry.recurrence { QueryRecurrence::Repeated(RepeatedDemand::FixedIntervalAt { @@ -638,14 +840,9 @@ impl BackendLocalPlanningInput { ))) } }; - if self.physical_inputs.scrape_interval_ms == 0 - || !self - .physical_inputs - .scrape_interval_ms - .is_multiple_of(1_000) - { + if self.physical_inputs.scrape_interval_ms == 0 { return Err(CompileError::Snapshot( - "scrape_interval_ms must be a positive whole number of seconds".into(), + "scrape_interval_ms must be positive".into(), )); } let accuracy = entry.requirements.accuracy.target(); @@ -673,6 +870,17 @@ impl BackendLocalPlanningInput { if let Some(evidence) = self.physical_inputs.topk_evidence.get(&query_string) { topk_evidence_by_id.insert(query_id.clone(), evidence.clone()); } + if let Some(evidence) = self.physical_inputs.accuracy_evidence.get(&query_string) { + evidence.validate( + &query_id, + &query_string, + &data_workload, + scoped_snapshot_id, + self.environment.observed_at_unix_ms, + self.environment.max_evidence_age_ms, + )?; + scoped_evidence_by_id.insert(query_id.clone(), evidence.clone()); + } queries.push(QueryCompilationInput { query_id, query_string: query_string.clone(), @@ -680,7 +888,7 @@ impl BackendLocalPlanningInput { legacy_query_source: Source::TimeSeries { metric: source_hint, }, - query_lookback_seconds: lookback_ms / 1_000, + query_lookback_ms: lookback_ms, group_by_labels: metadata.group_by_labels, accuracy_target: accuracy, summary_lifecycle_inputs: lifecycle, @@ -688,6 +896,16 @@ impl BackendLocalPlanningInput { materialization_runtime_policy: RuntimeRulePolicy::default(), }); } + if self + .physical_inputs + .accuracy_evidence + .keys() + .any(|query| !queries.iter().any(|entry| &entry.query_string == query)) + { + return Err(CompileError::Snapshot( + "accuracy evidence names a query absent from this workload".into(), + )); + } let mut exact_costs_by_id = HashMap::new(); for (index, entry) in workload.entries().enumerate() { if let Some(rows) = self @@ -709,12 +927,14 @@ impl BackendLocalPlanningInput { exact_costs_by_id.insert(format!("compat-query-{index}"), rows.clone()); } } - let planner_selection_trace = select_logical_roots_with_trace( + let planner_selection_trace = select_logical_roots_with_scoped_evidence_and_trace( &mut queries, canonical_roots.clone(), &topk_evidence_by_id, + &scoped_evidence_by_id, &exact_costs_by_id, self.physical_inputs.erp.as_ref(), + self.environment.observed_at_unix_ms, )?; for query in &mut queries { prepare_window_implementations( @@ -1083,7 +1303,7 @@ impl DeploymentPlanCompiler { validate_evidence(&query.query_id, e, &environment)?; } let node = query.selected_plan_root.clone(); - reject_uncertified_readouts(&query.query_id, &node)?; + reject_uncertified_readouts(&query.query_id, &node, environment.target)?; let selected = collect_selected_materializations( &node, request.allow_mixed_summary_and_exact_execution, @@ -1092,6 +1312,9 @@ impl DeploymentPlanCompiler { query_id: query.query_id.clone(), reason, })?; + if !selected.is_empty() { + reject_uncertified_readouts(&query.query_id, &node, environment.target)?; + } let selected = selected .into_iter() .filter(|state| { @@ -1210,8 +1433,10 @@ impl DeploymentPlanCompiler { let cohort_nodes = windows::cohort_nodes(&selected); for (ordinal, selected) in selected.into_iter().enumerate() { let mut branch_query = query.clone(); - branch_query.query_lookback_seconds = - selected.window_secs.unwrap_or(query.query_lookback_seconds); + branch_query.query_lookback_ms = selected + .window_secs + .map(|seconds| seconds.saturating_mul(1_000)) + .unwrap_or(query.query_lookback_ms); branch_query.group_by_labels = selected .group_by .clone() @@ -1219,7 +1444,8 @@ impl DeploymentPlanCompiler { branch_query .window_realization_candidates .retain(|candidate| { - candidate.window_secs == branch_query.query_lookback_seconds + candidate.window_secs.saturating_mul(1_000) + == branch_query.query_lookback_ms && if cohort_nodes.contains(&(Rc::as_ptr(&selected.node) as usize)) { windows::is_full_cohort(candidate) } else { @@ -1306,7 +1532,7 @@ impl DeploymentPlanCompiler { let cadence = u64::from( query.summary_lifecycle_inputs.evaluation_interval_ms, ); - let window = query.query_lookback_seconds.saturating_mul(1_000); + let window = query.query_lookback_ms; a % cadence == b % cadence && a % window == b % window } _ => index == query_index, @@ -1697,7 +1923,7 @@ impl DeploymentPlanCompiler { let window_ms = materialization.window_size.saturating_mul(1_000); if materialization_family != *node_family || window_ms == 0 - || source_window.unwrap_or(query.query_lookback_seconds).saturating_mul(1_000) + || source_window.map(|seconds| seconds.saturating_mul(1_000)).unwrap_or(query.query_lookback_ms) % window_ms != 0 { return Err(crate::query_plan::QueryPlanError::Invalid(format!( @@ -1720,7 +1946,7 @@ impl DeploymentPlanCompiler { }) }; let instant = InstantExecution { - lookback_ms: query.query_lookback_seconds.saturating_mul(1_000), + lookback_ms: query.query_lookback_ms, full_history: false, cumulative_readout: true, }; @@ -2101,7 +2327,7 @@ pub fn select_logical_roots_for_queries( select_logical_roots_with_error_resource_profiles(queries, roots, evidence, exact_costs, None) } -fn observed_population_matches_root( +pub(crate) fn observed_population_matches_root( policy: &super::erp::ErpPlanningInput, root: &QueryExpr, ) -> bool { @@ -2164,6 +2390,26 @@ pub fn select_logical_roots_with_trace( evidence: &HashMap, exact_costs: &HashMap>, erp: Option<&super::erp::ErpPlanningInput>, +) -> Result, CompileError> { + select_logical_roots_with_scoped_evidence_and_trace( + queries, + roots, + evidence, + &HashMap::new(), + exact_costs, + erp, + 0, + ) +} + +pub fn select_logical_roots_with_scoped_evidence_and_trace( + queries: &mut [QueryCompilationInput], + roots: Vec>, + evidence: &HashMap, + scoped_evidence: &HashMap, + exact_costs: &HashMap>, + erp: Option<&super::erp::ErpPlanningInput>, + now_ms: u64, ) -> Result, CompileError> { let mut traces = Vec::new(); if roots.len() != queries.len() { @@ -2177,6 +2423,7 @@ pub fn select_logical_roots_with_trace( for (index, root) in roots.into_iter().enumerate() { let accuracy = &queries[index].accuracy_target; let certificate_scope = (evidence.contains_key(&queries[index].query_id) + || scoped_evidence.contains_key(&queries[index].query_id) || exact_costs.contains_key(&queries[index].query_id)) .then(|| queries[index].query_id.clone()); if let Some((_, _, roots)) = cohorts @@ -2189,13 +2436,8 @@ pub fn select_logical_roots_with_trace( } } for (accuracy, scope, roots) in cohorts { - // ERP v1 has no calibrated failure probability. Preserve explicit - // confidence requirements through theoretical/exact fallback. let scoped_erp = erp.map(|policy| { let mut policy = policy.clone(); - if !matches!(accuracy, AccuracyTarget::Epsilon(_)) { - policy.artifact.records.clear(); - } if policy.observed_populations.is_some() && !roots .iter() @@ -2218,7 +2460,15 @@ pub fn select_logical_roots_with_trace( }); policy }); - let erp = scoped_erp.as_ref(); + // Confidence limitations invalidate an empirical accuracy decision, + // not the independently matched resource measurements. + let accuracy_erp = scoped_erp.clone().map(|mut policy| { + if !matches!(accuracy, AccuracyTarget::Epsilon(_)) { + policy.artifact.records.clear(); + } + policy + }); + let erp = accuracy_erp.as_ref(); let mut model = ControlPlaneCostModel::new(accuracy.clone()).with_exact_composition_costs( scope .as_ref() @@ -2229,8 +2479,17 @@ pub fn select_logical_roots_with_trace( if let Some(erp) = erp { model = model.with_erp(erp.clone()); } + if let Some(costs) = &scoped_erp { + model = model.with_erp_costs(costs.clone()); + } let certificate = scope.as_ref().and_then(|id| evidence.get(id)); + let scoped_certificate = scope.as_ref().and_then(|id| scoped_evidence.get(id)); + let hll = scoped_certificate.and_then(|evidence| evidence.hll.as_ref()); + if let Some(contract) = hll { + model = model.with_hll_confidence(contract.clone()); + } let accuracy_model = super::erp::ErpAccuracyModel { + hll, policy: erp, max_error: match accuracy { AccuracyTarget::Epsilon(e) | AccuracyTarget::EpsilonDelta { epsilon: e, .. } => e, @@ -2242,10 +2501,23 @@ pub fn select_logical_roots_with_trace( roots, accuracy, &model, - &QueryEvidence(certificate), + &QueryEvidence { + topk: certificate, + scoped: scoped_certificate, + now_ms, + }, &accuracy_model, ) .map_err(|error| CompileError::Snapshot(error.to_string()))?; + if let Some(evidence) = scoped_certificate { + trace["accuracy_evidence_scope"] = serde_json::json!({ + "query_id": scope, + "source": evidence.source, + "data_snapshot_id": evidence.data_snapshot_id, + "observed_at_unix_ms": evidence.observed_at_unix_ms, + "hll": evidence.hll, + }); + } trace["deployment_overrides"] = serde_json::json!([]); let selected_indices = selected.iter().map(|(index, _)| *index).collect::>(); for (index, node) in selected { @@ -2385,7 +2657,11 @@ pub fn select_post_asap( expr, &model, &DefaultAccuracyModel, - &QueryEvidence(evidence), + &QueryEvidence { + topk: evidence, + scoped: None, + now_ms: 0, + }, ) } @@ -2545,10 +2821,9 @@ pub(super) fn derived_window_cost( /// example, `a[1m] offset 1h` selects `(t - 61m, t - 60m]`. fn query_history_window_ms(expr: &QueryExpr, scrape_interval_ms: u64) -> Result { fn duration_ms(duration: std::time::Duration) -> Result { - if duration.subsec_nanos() != 0 { + if !duration.subsec_nanos().is_multiple_of(1_000_000) { return Err(CompileError::Snapshot( - "PromQL ranges must be a whole number of seconds in the backend-local profile" - .into(), + "PromQL ranges must have millisecond precision".into(), )); } u64::try_from(duration.as_millis()) @@ -2577,17 +2852,10 @@ fn query_history_window_ms(expr: &QueryExpr, scrape_interval_ms: u64) -> Result< duration_ms(*range)?, visit(child, scrape_interval_ms, true)?, ), - QueryExpr::TimeShift { shift, child } => { - if !shift.offset_ms.unsigned_abs().is_multiple_of(1_000) { - return Err(CompileError::Snapshot( - "PromQL offsets must be a whole number of seconds in the backend-local profile".into(), - )); - } - add( - shift.offset_ms.max(0) as u64, - visit(child, scrape_interval_ms, in_range)?, - ) - } + QueryExpr::TimeShift { shift, child } => add( + shift.offset_ms.max(0) as u64, + visit(child, scrape_interval_ms, in_range)?, + ), QueryExpr::PromqlScalarBridge(child) | QueryExpr::PromqlVectorFromScalar(child) | QueryExpr::PromqlScalarFromVector(child) @@ -2733,7 +3001,7 @@ pub(super) fn validate_window_implementations( && evidence.cpu_cost >= 0.0 && evidence.weighted_cost.is_finite() && evidence.weighted_cost >= 0.0 - && candidate.window_secs == query.query_lookback_seconds + && candidate.window_secs.saturating_mul(1_000) == query.query_lookback_ms && candidate .layout .validate(candidate.window_secs, candidate.slide_secs) @@ -2796,8 +3064,8 @@ fn retained_state_bytes(materialization: &asap_types::PrecomputeMaterialization) ) } -pub(super) fn estimated_state_bytes( - aggregation: &asap_types::AggregationType, +pub(crate) fn estimated_state_bytes( + aggregation_type: &asap_types::AggregationType, parameters: &HashMap, ) -> u128 { use asap_types::AggregationType as A; @@ -2808,7 +3076,7 @@ pub(super) fn estimated_state_bytes( .find_map(|name| parameters.get(*name).and_then(Value::as_u64)) .unwrap_or(fallback) as u128 }; - match aggregation { + match aggregation_type { A::CountMinSketch | A::CountSketch => { parameter(&["width", "w", "col_num", "col"], 1) * parameter(&["depth", "d", "row_num", "row"], 1) @@ -2840,7 +3108,7 @@ pub(super) fn estimated_state_bytes( } } -fn retained_partition_count( +pub(crate) fn retained_partition_count( materialization: &asap_types::PrecomputeMaterialization, input_cardinality: Option, ) -> u128 { @@ -2945,8 +3213,8 @@ fn select_lifecycle( raw_materialization_input_contract(node) .ok() .and_then(|(_, window, _)| window) - .unwrap_or(query.query_lookback_seconds) - .saturating_mul(1_000), + .map(|seconds| seconds.saturating_mul(1_000)) + .unwrap_or(query.query_lookback_ms), )), as_of: None, }, @@ -3261,7 +3529,11 @@ fn validate_executable_subdag(node: &Rc) -> Result<(), String> { Ok(()) } -fn reject_uncertified_readouts(query_id: &str, root: &Rc) -> Result<(), CompileError> { +fn reject_uncertified_readouts( + query_id: &str, + root: &Rc, + target: PhysicalDeploymentTarget, +) -> Result<(), CompileError> { let dag = planner_types::post_asap::compile_executable_dag(root).map_err(|error| { CompileError::Query { query_id: query_id.into(), @@ -3269,6 +3541,21 @@ fn reject_uncertified_readouts(query_id: &str, root: &Rc) -> Result } })?; for node in &dag.nodes { + if target != PhysicalDeploymentTarget::BackendLocalRemoteWrite + && node.guarantee.as_ref().is_some_and(|guarantee| { + guarantee.provenance.iter().any(|source| { + matches!(source, + planner_types::post_asap::GuaranteeSource::SketchReadout { contract, .. } + if contract == "classic_hll_linear_counting_collision_bound_v1") + }) + }) + { + return Err(CompileError::Query { + query_id: query_id.into(), + reason: "classic HLL confidence is bound to the backend-local Regular estimator" + .into(), + }); + } if matches!( node.payload, planner_types::post_asap::ExecutableOperatorPayload::SummaryEstimate { .. } @@ -3296,7 +3583,9 @@ fn physical_aggregation( aggregation_id, metric_name: selected.metric.clone(), family: selected.family.clone(), - window_secs: selected.window_secs.unwrap_or(query.query_lookback_seconds), + window_secs: selected + .window_secs + .unwrap_or(query.query_lookback_ms.div_ceil(1_000)), spatial_filter: selected.spatial_filter.clone(), grouping: selected .group_by @@ -3691,7 +3980,7 @@ fn collect_selected_materializations( Ok(selected) } -pub(super) fn sketch_params_json(params: &planner_types::post_asap::SketchParams) -> Value { +pub(crate) fn sketch_params_json(params: &planner_types::post_asap::SketchParams) -> Value { use planner_types::post_asap::SketchParams as P; match params { P::UnivMon { @@ -4620,7 +4909,7 @@ pub(crate) mod tests { query_string: promql.into(), selected_plan_root: post_asap, legacy_query_source: Source::TimeSeries { metric: "m".into() }, - query_lookback_seconds: 60, + query_lookback_ms: 60_000, group_by_labels: vec![], accuracy_target: accuracy, summary_lifecycle_inputs: lifecycle, @@ -4873,6 +5162,273 @@ pub(crate) mod tests { assert!(result.unwrap().precompute_plan.materializations.is_empty()); } + fn bounded_hll_snapshot_wire() -> serde_json::Value { + let mut wire = serde_json::to_value(planning_snapshot()).unwrap(); + let query = "distinct_over_time(data[5s])"; + wire["query_workload"]["repeating_queries"][0]["query"] = query.into(); + wire["query_workload"]["repeating_queries"][0]["requirements"]["accuracy"] = + serde_json::json!({"explicit":{"EpsilonDelta":{"epsilon":0.05,"delta":0.01}}}); + wire["implementation"]["data_snapshot_id"] = "hll-bounded-population".into(); + let now = wire["environment"]["observed_at_unix_ms"].clone(); + wire["implementation"]["accuracy_evidence"] = serde_json::json!({query: { + "query_string": query, "data_snapshot_id": "hll-bounded-population", + "data_workload": wire["data_workload"], "source": "enforced-distinct-domain-v1", + "observed_at_unix_ms": now, "valid_for_ms": 60000, + "hll": {"model":"asap-classic64-uniform-hash-linear-counting-v1", + "max_distinct_per_readout": 128} + }}); + wire + } + + /// An applicable classic-HLL confidence contract restores normal selection. + #[test] + fn bounded_hll_confidence_selects_and_binds_a_materialization() { + let wire = bounded_hll_snapshot_wire(); + let snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = snapshot.into_physical_compilation_request().unwrap(); + let plan = DeploymentPlanCompiler + .compile_promql(request, environment) + .unwrap(); + assert_eq!(plan.precompute_plan.materializations.len(), 1, "{plan:#?}"); + assert_eq!( + plan.precompute_plan.materializations[0].aggregation_type, + asap_types::AggregationType::HLL + ); + } + + /// A backend-local estimator proof cannot certify an unverified collector implementation. + #[test] + fn hll_confidence_cannot_be_rebound_to_collectors() { + let snapshot: BackendLocalPlanningInput = + serde_json::from_value(bounded_hll_snapshot_wire()).unwrap(); + let (request, _) = snapshot.into_physical_compilation_request().unwrap(); + let error = reject_uncertified_readouts( + "q", + &request.queries[0].selected_plan_root, + PhysicalDeploymentTarget::DistributedCollectors, + ) + .unwrap_err(); + assert!(error + .to_string() + .contains("backend-local Regular estimator")); + } + + /// Missing contracts and unattainable targets cannot acquire a confidence proof. + #[test] + fn hll_confidence_keeps_exact_when_absent_or_insufficient() { + for missing in [true, false] { + let mut wire = bounded_hll_snapshot_wire(); + if missing { + wire["implementation"]["accuracy_evidence"] = serde_json::json!({}); + } else { + wire["query_workload"]["repeating_queries"][0]["requirements"]["accuracy"] = + serde_json::json!({"explicit":{"EpsilonDelta":{"epsilon":0.05,"delta":1e-12}}}); + } + let snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = snapshot.into_physical_compilation_request().unwrap(); + let plan = DeploymentPlanCompiler + .compile_promql(request, environment) + .unwrap(); + assert!( + plan.precompute_plan.materializations.is_empty(), + "{plan:#?}" + ); + } + } + + /// An estimator mismatch or unsupported population must be rejected at admission. + #[test] + fn hll_confidence_rejects_invalid_source_contracts() { + for contract in [ + serde_json::json!({"model":"asap-classic64-uniform-hash-linear-counting-v1","max_distinct_per_readout":0}), + serde_json::json!({"model":"asap-classic64-uniform-hash-linear-counting-v1","max_distinct_per_readout":4097}), + serde_json::json!({"model":"hip-rse","max_distinct_per_readout":128}), + ] { + let mut wire = bounded_hll_snapshot_wire(); + wire["implementation"]["accuracy_evidence"]["distinct_over_time(data[5s])"]["hll"] = + contract; + let snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + assert!(snapshot.into_physical_compilation_request().is_err()); + } + } + + /// Accuracy facts must belong to the same query, workload, snapshot and + /// evidence window before they enter Planner. + #[test] + fn scoped_accuracy_evidence_rejects_wrong_or_stale_facts() { + let snapshot: BackendLocalPlanningInput = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let evidence = ScopedAccuracyEvidence { + query_string: "quantile_over_time(0.9,m[1m])".into(), + data_snapshot_id: "snapshot-a".into(), + data_workload: snapshot.data_workload.clone(), + source: "enforced-source-contract".into(), + observed_at_unix_ms: 9_000, + valid_for_ms: 2_000, + hll: None, + quantile_operand_domains: vec![], + values_non_negative: Some(true), + input_row_count: Some(10), + hydra_shared_grid_collision_bound: None, + hydra_shared_grid_failure_probability: None, + topk_selected_lower_bound: None, + topk_excluded_upper_bound: None, + topk_interval_failure_probability: None, + }; + let validate = |evidence: &ScopedAccuracyEvidence, query: &str, snapshot_id: &str, now| { + evidence.validate( + "q", + query, + &snapshot.data_workload, + Some(snapshot_id), + now, + 2_000, + ) + }; + assert!(validate(&evidence, &evidence.query_string, "snapshot-a", 10_000).is_ok()); + assert!(validate(&evidence, "another query", "snapshot-a", 10_000).is_err()); + assert!(validate(&evidence, &evidence.query_string, "snapshot-b", 10_000).is_err()); + assert!(validate(&evidence, &evidence.query_string, "snapshot-a", 12_000).is_err()); + let mut invalid = evidence.clone(); + invalid.hydra_shared_grid_failure_probability = Some(1.5); + assert!(validate(&invalid, &invalid.query_string, "snapshot-a", 10_000).is_err()); + let mut partial_topk = evidence.clone(); + partial_topk.topk_selected_lower_bound = Some(10.0); + assert!(validate( + &partial_topk, + &partial_topk.query_string, + "snapshot-a", + 10_000 + ) + .is_err()); + let mut valid_topk = partial_topk; + valid_topk.topk_excluded_upper_bound = Some(8.0); + valid_topk.topk_interval_failure_probability = Some(0.01); + assert!(validate(&valid_topk, &valid_topk.query_string, "snapshot-a", 10_000).is_ok()); + let stats = QueryEvidence { + topk: None, + scoped: Some(&valid_topk), + now_ms: 10_000, + } + .propagation_stats( + &CompositionOperator::TopKSelection, + &SummaryFamilyType::ExactAggregate( + planner_types::post_asap::ExactKind::Count, + planner_types::post_asap::ExactParams::Count, + ), + None, + ); + assert_eq!(stats.topk_selected_lower_bound, Some(10.0)); + assert_eq!(stats.topk_excluded_upper_bound, Some(8.0)); + } + + /// Quantile domain proof applies only to the operand named by its AST, + /// even when both operands read the same metric. + #[test] + fn scoped_quantile_domain_matches_one_exact_operand() { + let snapshot: BackendLocalPlanningInput = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let accuracy = AccuracyTarget::EpsilonDelta { + epsilon: 0.05, + delta: 0.01, + }; + let root = crate::query_parser::parse_query_expr_canonical( + "quantile_over_time(0.9,m[5m]) / quantile_over_time(0.5,m[5m])", + accuracy.clone(), + ) + .unwrap(); + let QueryExpr::BinaryOp { lhs, rhs, .. } = &root else { + panic!("expected ratio expression") + }; + let scoped = ScopedAccuracyEvidence { + query_string: "quantile_over_time(0.9,m[5m]) / quantile_over_time(0.5,m[5m])".into(), + data_snapshot_id: "snapshot-a".into(), + data_workload: snapshot.data_workload, + source: "enforced-source-contract".into(), + observed_at_unix_ms: 9_000, + valid_for_ms: 2_000, + hll: None, + quantile_operand_domains: vec![QuantileOperandDomainEvidence { + operand: serde_json::to_value(lhs.as_ref()).unwrap(), + lower: 1.0, + upper: 100.0, + max_samples: 10_000, + contract: "source-schema-v1".into(), + }], + values_non_negative: None, + input_row_count: None, + hydra_shared_grid_collision_bound: None, + hydra_shared_grid_failure_probability: None, + topk_selected_lower_bound: None, + topk_excluded_upper_bound: None, + topk_interval_failure_probability: None, + }; + let provider = QueryEvidence { + topk: None, + scoped: Some(&scoped), + now_ms: 10_000, + }; + assert!(provider.quantile_input_domain(lhs).is_some()); + assert!(provider.quantile_input_domain(rhs).is_none()); + let inspect = |provider: &dyn AccuracyEvidenceProvider| { + let (_, trace) = + crate::planner_selection::select_workload_with_accuracy_model_and_trace( + vec![(0, Rc::new(root.clone()))], + accuracy.clone(), + &ControlPlaneCostModel::new(accuracy.clone()), + provider, + &DefaultAccuracyModel, + ) + .unwrap(); + trace + }; + let unknown = inspect(&provider); + assert!(unknown["groups"].as_array().unwrap().iter().any(|group| { + group["candidates"] + .as_array() + .unwrap() + .iter() + .any(|candidate| { + candidate["accuracy_status"] == "unknown" && candidate["selected"] == false + }) + })); + let mut complete = scoped.clone(); + complete + .quantile_operand_domains + .push(QuantileOperandDomainEvidence { + operand: serde_json::to_value(rhs.as_ref()).unwrap(), + lower: 1.0, + upper: 100.0, + max_samples: 10_000, + contract: "source-schema-v1".into(), + }); + let complete_provider = QueryEvidence { + topk: None, + scoped: Some(&complete), + now_ms: 10_000, + }; + assert!(complete_provider.quantile_input_domain(rhs).is_some()); + let complete_trace = inspect(&complete_provider); + assert!(complete_trace["groups"] + .as_array() + .unwrap() + .iter() + .any(|group| { + group["candidates"] + .as_array() + .unwrap() + .iter() + .any(|candidate| { + candidate["accuracy_status"] == "known" + && candidate["replacement_kind"] == "summary" + }) + })); + } + #[test] fn snapshot_metricsql_entry_uses_the_shared_serving_language_contract() { let snapshot: BackendLocalPlanningInput = serde_json::from_str(include_str!( @@ -6050,6 +6606,29 @@ pub(crate) mod tests { .unwrap() } + /// ERP memory remains usable under an explicit confidence target, even + /// though ERP v1 error observations cannot certify that target. + #[test] + fn erp_resource_costs_survive_confidence_target() { + let mut snapshot = planning_snapshot(); + let entry = &mut snapshot.query_workload.repeating_queries.as_mut().unwrap()[0]; + entry.query = Query("quantile_over_time(0.9,m[1m])".into()); + entry.requirements.accuracy = AccuracyRequirement::Explicit(AccuracyTarget::EpsilonDelta { + epsilon: 0.1, + delta: 0.01, + }); + snapshot.physical_inputs.erp = + Some(crate::physical::post_asap::cost_model::tests::erp_cost_fixture()); + let (request, _) = snapshot.into_physical_compilation_request().unwrap(); + assert!(request + .planner_selection_trace + .iter() + .flat_map(|trace| trace["groups"].as_array().unwrap()) + .flat_map(|group| group["candidates"].as_array().unwrap()) + .any(|candidate| candidate["cost_estimate"]["source"] == "erp" + && candidate["estimated_cost"] == 7777.0)); + } + fn derived_query_window_secs(query: &str) -> u64 { let mut snapshot = planning_snapshot(); let entry = &mut snapshot.query_workload.repeating_queries.as_mut().unwrap()[0]; @@ -6060,7 +6639,8 @@ pub(crate) mod tests { .unwrap() .0 .queries[0] - .query_lookback_seconds + .query_lookback_ms + / 1_000 } fn set_data_ingestion_interval( @@ -6085,7 +6665,7 @@ pub(crate) mod tests { set_data_ingestion_interval(&mut snapshot, Some(1_000)); let (request, _) = snapshot.into_physical_compilation_request().unwrap(); - assert_eq!(request.queries[0].query_lookback_seconds, 1); + assert_eq!(request.queries[0].query_lookback_ms, 1_000); } // Snapshot lowering must use the environment clock for cadence freshness. @@ -6125,7 +6705,7 @@ pub(crate) mod tests { request.data_workload.unwrap().data_ingestion_interval.value, Some(DurationMs(5_000)) ); - assert_eq!(request.queries[0].query_lookback_seconds, 5); + assert_eq!(request.queries[0].query_lookback_ms, 5_000); } // An explicitly invalid interval must not be replaced by the migration value. @@ -6160,31 +6740,50 @@ pub(crate) mod tests { assert_eq!(derived_query_window_secs("sum_over_time(a[1s])"), 1); } - // The seconds-based backend must fail explicitly instead of shrinking history. + /// Fractional ranges, subqueries and offsets preserve their exact history. #[test] - fn derived_history_rejects_fractional_seconds() { - for query in [ - "sum_over_time(a[1500ms])", - "sum_over_time(a[500ms])", - "sum_over_time(a[1500ms] offset 500ms)", - "sum_over_time(a[1s]) + sum(sum_over_time(b[500ms]))", - "avg_over_time((sum(a))[1500ms:])", - "sum(a offset 500ms)", + fn derived_history_preserves_milliseconds() { + for (query, expected) in [ + ("sum_over_time(a[1500ms])", 1500), + ("sum_over_time(a[500ms])", 500), + ("sum_over_time(a[1500ms] offset 500ms)", 2000), + ("sum_over_time(a[1s]) + sum(sum_over_time(b[500ms]))", 1000), + ("avg_over_time((sum(a))[1500ms:])", 6500), + ("sum(a offset 500ms)", 5500), ] { let mut snapshot = planning_snapshot(); snapshot.query_workload.repeating_queries.as_mut().unwrap()[0].query = Query(query.into()); - let error = snapshot - .into_physical_compilation_request() - .expect_err(query) - .to_string(); - assert!( - error.contains("whole number of seconds"), - "{query}: {error}" - ); + let (request, _) = snapshot.into_physical_compilation_request().expect(query); + assert_eq!(request.queries[0].query_lookback_ms, expected, "{query}"); } } + /// A real 100 ms source stays at 100 ms through lowering and query publication. + #[test] + fn hundred_millisecond_source_compiles_without_rounding() { + let mut snapshot = planning_snapshot(); + snapshot.query_workload.repeating_queries.as_mut().unwrap()[0].query = + Query("sum(data)".into()); + snapshot.physical_inputs.scrape_interval_ms = 100; + set_data_ingestion_interval(&mut snapshot, Some(100)); + let (request, environment) = snapshot.into_physical_compilation_request().unwrap(); + assert_eq!(request.queries[0].query_lookback_ms, 100); + let plan = DeploymentPlanCompiler + .compile_promql(request, environment) + .unwrap(); + assert_eq!( + plan.query_plan + .entries + .values() + .next() + .unwrap() + .instant + .lookback_ms, + 100 + ); + } + #[test] fn snapshot_rejects_manual_lookback() { let mut wire = serde_json::to_value(planning_snapshot()).unwrap(); @@ -6343,7 +6942,7 @@ pub(crate) mod tests { (60_000, 90_000), ] { let mut query = request.queries[0].clone(); - query.query_lookback_seconds = lookback_ms / 1_000; + query.query_lookback_ms = lookback_ms; let expr = crate::query_parser::parse_query_expr_canonical( &format!("quantile_over_time(0.5, data[{}s])", lookback_ms / 1_000), AccuracyTarget::Exact, @@ -7227,6 +7826,8 @@ pub(crate) mod tests { query_retention_margin_ms: 0, retained_summary_memory_budget_bytes: DEFAULT_RETAINED_SUMMARY_MEMORY_BUDGET_BYTES, topk_evidence: HashMap::new(), + data_snapshot_id: None, + accuracy_evidence: HashMap::new(), exact_composition_costs: HashMap::new(), erp: None, }, @@ -7358,8 +7959,13 @@ pub(crate) mod tests { assert_eq!(encoded, fixture); assert!( - snapshot.clone().compile_promql().is_err(), - "discovery fixtures must be priced before deployment" + snapshot + .clone() + .compile_promql() + .unwrap() + .cost_comparison + .is_some(), + "deployment computes complete workload costs automatically" ); let (local, env) = snapshot .clone() @@ -7398,8 +8004,13 @@ pub(crate) mod tests { let snapshot: BackendLocalPlanningInput = serde_json::from_str(source).expect("strict compatibility demo fixture"); assert!( - snapshot.clone().compile_promql().is_err(), - "discovery fixtures must be priced before deployment" + snapshot + .clone() + .compile_promql() + .unwrap() + .cost_comparison + .is_some(), + "deployment computes complete workload costs automatically" ); let (local, env) = snapshot .clone() @@ -7663,9 +8274,9 @@ pub(crate) mod tests { let mut second = request("q40", "sum(sum_over_time(m[40s]))") .queries .remove(0); - workload.queries[0].query_lookback_seconds = 20; + workload.queries[0].query_lookback_ms = 20_000; workload.queries[0].window_realization_candidates[0].window_secs = 20; - second.query_lookback_seconds = 40; + second.query_lookback_ms = 40_000; second.summary_lifecycle_inputs.evaluation_interval_ms = 20_000; second.window_realization_candidates[0].window_secs = 40; workload.queries.push(second); diff --git a/control_plane/src/physical/compiler/windows.rs b/control_plane/src/physical/compiler/windows.rs index 072ee7c2e..709273322 100644 --- a/control_plane/src/physical/compiler/windows.rs +++ b/control_plane/src/physical/compiler/windows.rs @@ -157,7 +157,9 @@ pub fn prepare_window_implementations( .iter() .map(|state| { ( - state.window_secs.unwrap_or(query.query_lookback_seconds), + state + .window_secs + .unwrap_or(query.query_lookback_ms.div_ceil(1_000)), cohorts.contains(&(Rc::as_ptr(&state.node) as usize)), ) }) diff --git a/control_plane/src/physical/erp.rs b/control_plane/src/physical/erp.rs index 26bf26af2..97d6e9ddd 100644 --- a/control_plane/src/physical/erp.rs +++ b/control_plane/src/physical/erp.rs @@ -204,10 +204,44 @@ impl ReadoutEvidence { } } -/// ERP v1 measures error magnitudes, not tail probabilities. Only an explicit -/// epsilon-only request may use these observations as its accuracy contract. +/// Trusted source contract for every HLL readout population of one scoped query. +/// The upper bound covers the union of all merged panes, not each pane separately. +/// This is not derived from observed series count or a sampled distinct count. +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +#[serde(deny_unknown_fields)] +pub struct HllConfidenceContract { + /// Identifies classic 64-bit HLL with its linear-counting correction, under + /// independent uniform bucket hashing. Other estimators are not certified. + pub model: String, + pub max_distinct_per_readout: u32, +} + +impl HllConfidenceContract { + pub(crate) fn valid(&self) -> bool { + self.model == "asap-classic64-uniform-hash-linear-counting-v1" + && (1..=4096).contains(&self.max_distinct_per_readout) + } + + pub(crate) fn confidence( + &self, + epsilon: f64, + ) -> Option { + self.valid() + .then(|| { + asap_aware_mapping::hll_confidence::ClassicHllConfidence::new( + self.max_distinct_per_readout, + epsilon, + ) + }) + .flatten() + } +} + +/// ERP error magnitudes and estimator-specific confidence are separate inputs. +/// ERP v1 observed maxima do not establish a failure-probability guarantee. pub(crate) struct ErpAccuracyModel<'a> { pub policy: Option<&'a ErpPlanningInput>, + pub hll: Option<&'a HllConfidenceContract>, pub max_error: f64, } @@ -224,6 +258,20 @@ impl asap_aware_mapping::AccuracyModel for ErpAccuracyModel<'_> { query: &planner_types::post_asap::SketchQuery, ) -> Option { use planner_types::post_asap::*; + if let ( + Some(contract), + SummaryFamilyType::Sketch(kind, GroupingStrategy::PerSubpopulationInstance), + SketchQuery::Cardinality, + ) = (self.hll, family, query) + { + if let (SketchAlgorithm::Hll, SketchParams::Hll { precision }) = + (kind.algorithm(), kind.params()) + { + // Resource ERP can still rank this state. Error maxima must not + // replace the independent, estimator-specific confidence bound. + return contract.confidence(self.max_error)?.guarantee(*precision); + } + } let theoretical = asap_aware_mapping::DefaultAccuracyModel.local_guarantee(family, query); let (Some(policy), SummaryFamilyType::Sketch(kind, _)) = (self.policy, family) else { return theoretical; @@ -575,6 +623,91 @@ impl ErpParameterDecision { } impl ErpPlanningInput { + /// Match ERP resource measurements for an already-sized candidate. Error + /// magnitudes only identify existing records here: no accuracy target is + /// certified by this cost lookup. Reuse ERP's implementation, population, + /// shape, minimum-trial and runtime checks rather than a second matcher. + pub(crate) fn candidate_resources( + &self, + algorithm: &SketchAlgorithm, + params: &SketchParams, + ) -> Option<(asap_aware_mapping::erp::ErpResourceProfile, Vec)> { + self.artifact.validate().ok()?; + let metrics = self + .artifact + .records + .iter() + .flat_map(|row| row.error_metrics.keys().cloned()) + .collect::>(); + metrics + .into_iter() + .filter_map(|metric| { + let ErpParameterDecision::Empirical { + record_id, + params: selected, + .. + } = self.select_metric( + algorithm.clone(), + &metric, + f64::MAX, + params.clone(), + Some(params), + ) + else { + return None; + }; + if &selected != params { + return None; + } + let mut ids = if self.artifact.records.iter().any(|row| row.id == record_id) { + vec![record_id] + } else { + serde_json::from_str::>(&record_id).ok()? + }; + if ids.is_empty() { + return None; + } + // The logical proxy is per partition. For population-specific + // profiles use the largest matched partition, not a pooled sketch. + let mut resources = asap_aware_mapping::erp::ErpResourceProfile { + memory_bytes: 0.0, + update_cpu_seconds: 0.0, + merge_cpu_seconds: 0.0, + query_cpu_seconds: 0.0, + }; + for id in &ids { + let row = self.artifact.records.iter().find(|row| &row.id == id)?; + resources.memory_bytes = resources.memory_bytes.max(row.resources.memory_bytes); + resources.update_cpu_seconds = resources + .update_cpu_seconds + .max(row.resources.update_cpu_seconds); + resources.merge_cpu_seconds = resources + .merge_cpu_seconds + .max(row.resources.merge_cpu_seconds); + resources.query_cpu_seconds = resources + .query_cpu_seconds + .max(row.resources.query_cpu_seconds); + } + ids.sort(); + ids.dedup(); + Some((resources, ids)) + }) + .min_by(|a, b| { + a.0.memory_bytes + .total_cmp(&b.0.memory_bytes) + .then_with(|| a.1.cmp(&b.1)) + }) + } + + pub(crate) fn candidate_memory_bytes( + &self, + algorithm: &SketchAlgorithm, + params: &SketchParams, + ) -> Option<(f64, Vec)> { + self.candidate_resources(algorithm, params) + .map(|(resources, ids)| (resources.memory_bytes, ids)) + } + pub fn select( &self, algorithm: SketchAlgorithm, @@ -873,7 +1006,10 @@ fn u32_param(parameters: &Value, names: &[&str]) -> Option { .then_some(value as u32) } -fn parse_params(algorithm: &SketchAlgorithm, parameters: &Value) -> Option { +pub(crate) fn parse_params( + algorithm: &SketchAlgorithm, + parameters: &Value, +) -> Option { let width = || u32_param(parameters, &["width", "cols"]); let depth = || u32_param(parameters, &["depth", "rows"]); Some(match algorithm { @@ -1080,6 +1216,7 @@ mod tests { GroupingStrategy::PerSubpopulationInstance, ); let model = ErpAccuracyModel { + hll: None, policy: Some(&policy), max_error: 0.2, }; @@ -1093,6 +1230,7 @@ mod tests { )); policy.artifact.records[1].error_metrics.clear(); assert!(ErpAccuracyModel { + hll: None, policy: Some(&policy), max_error: 0.2 } @@ -1114,6 +1252,7 @@ mod tests { GroupingStrategy::PerSubpopulationInstance, ); let model = ErpAccuracyModel { + hll: None, policy: Some(&policy), max_error: 0.05, }; @@ -1160,6 +1299,7 @@ mod tests { GroupingStrategy::PerSubpopulationInstance, ); let model = ErpAccuracyModel { + hll: None, policy: Some(&policy), max_error: 0.2, }; @@ -1191,6 +1331,7 @@ mod tests { .error_metrics .remove("max_frequency_entropy_absolute_bits_error"); let model = ErpAccuracyModel { + hll: None, policy: Some(&policy), max_error: 0.2, }; @@ -1444,6 +1585,15 @@ mod tests { assert!(invalid.populations.is_empty()); assert!(invalid.invalid_reason.as_deref().unwrap().contains("stale")); assert!(policy.observed_shape.is_none()); + assert!(policy + .candidate_memory_bytes( + &SketchAlgorithm::Cms, + &SketchParams::Cms { + width: 512, + depth: 3 + } + ) + .is_none()); } /// Only the activated catalog may supply a candidate's data contract. @@ -1604,6 +1754,16 @@ mod tests { minimum_confidence: 0.9, minimum_confidence_margin: 0.05, }); + assert_eq!( + policy.candidate_memory_bytes( + &SketchAlgorithm::Cms, + &SketchParams::Cms { + width: 512, + depth: 3 + } + ), + Some((12_288.0, vec!["cms-512".into()])) + ); assert!(matches!( policy.select( SketchAlgorithm::Cms, @@ -1647,6 +1807,15 @@ mod tests { policy.select(SketchAlgorithm::Cms, 0.01, theory.clone()), ErpParameterDecision::TheoreticalFallback { params, .. } if params == theory )); + assert!(policy + .candidate_memory_bytes( + &SketchAlgorithm::Cms, + &SketchParams::Cms { + width: 512, + depth: 3 + } + ) + .is_none()); } #[test] diff --git a/control_plane/src/physical/post_asap/cost_model.rs b/control_plane/src/physical/post_asap/cost_model.rs index 9610ed0a1..8e0a4a3b5 100644 --- a/control_plane/src/physical/post_asap/cost_model.rs +++ b/control_plane/src/physical/post_asap/cost_model.rs @@ -167,6 +167,8 @@ pub struct ControlPlaneCostModel { offline_frequency_comparison: Option<(OfflineComparisonEvidence, OfflineComparisonRequest)>, exact_composition_costs: Vec, erp: Option, + erp_costs: Option, + hll_confidence: Option, } impl ControlPlaneCostModel { @@ -193,6 +195,8 @@ impl ControlPlaneCostModel { let dag = planner_types::post_asap::compile_executable_dag(root).ok()?; let mut value = 0.0; let mut states = 0; + let mut analytical = false; + let mut erp_record_ids = Vec::new(); for node in &dag.nodes { let family = match &node.payload { ExecutableOperatorPayload::SummaryAgg { family, .. } @@ -200,17 +204,38 @@ impl ControlPlaneCostModel { _ => continue, }; states += 1; - value += analytical_state_bytes(family)?; + let measurement = match family { + SummaryFamilyType::Sketch(kind, GroupingStrategy::PerSubpopulationInstance) => self + .erp_costs + .as_ref() + .and_then(|erp| erp.candidate_memory_bytes(kind.algorithm(), kind.params())), + _ => None, + }; + if let Some((bytes, ids)) = measurement { + value += bytes; + erp_record_ids.extend(ids); + } else { + value += analytical_state_bytes(family)?; + analytical = true; + } } if states == 0 || !value.is_finite() { return None; } + erp_record_ids.sort(); + erp_record_ids.dedup(); Some(CandidateCostEstimate { value, unit: "bytes_per_state_partition", model: "backend_state_footprint_v1", - source: "analytical", - erp_record_ids: vec![], + source: if erp_record_ids.is_empty() { + "analytical" + } else if analytical { + "mixed" + } else { + "erp" + }, + erp_record_ids, }) } @@ -224,6 +249,8 @@ impl ControlPlaneCostModel { offline_frequency_comparison: None, exact_composition_costs: Vec::new(), erp: None, + erp_costs: None, + hll_confidence: None, } } @@ -235,11 +262,27 @@ impl ControlPlaneCostModel { self } + pub fn with_hll_confidence( + mut self, + contract: super::super::erp::HllConfidenceContract, + ) -> Self { + self.hll_confidence = Some(contract); + self + } + pub fn with_erp(mut self, erp: ErpPlanningInput) -> Self { + self.erp_costs = Some(erp.clone()); self.erp = Some(erp); self } + /// Resource evidence can remain usable when ERP's error observations + /// cannot establish the query's requested confidence guarantee. + pub fn with_erp_costs(mut self, erp: ErpPlanningInput) -> Self { + self.erp_costs = Some(erp); + self + } + pub fn erp_parameter_decision( &self, algorithm: SketchAlgorithm, @@ -384,6 +427,44 @@ impl ControlPlaneCostModel { costs.into_iter().map(|(algorithm, _)| algorithm).collect() } + fn rank_with_erp_costs( + &self, + intent: &AggIntent, + defaults: Vec, + ) -> Vec { + let Some(erp) = &self.erp_costs else { + return defaults; + }; + let (eps, delta) = + asap_aware_mapping::replacement::accuracy_budget(&intent_accuracy(intent)); + let mut has_measurement = false; + let mut costs = defaults + .iter() + .map(|algorithm| { + let params = self.size_params(algorithm.clone(), intent, eps, delta); + let measured = erp.candidate_memory_bytes(algorithm, ¶ms); + has_measurement |= measured.is_some(); + let cost = measured.map(|(bytes, _)| bytes).or_else(|| { + analytical_state_bytes(&SummaryFamilyType::Sketch( + planner_types::post_asap::SketchKind::new(algorithm.clone(), params), + GroupingStrategy::PerSubpopulationInstance, + )) + }); + (algorithm.clone(), cost) + }) + .collect::>(); + if !has_measurement { + return defaults; + } + costs.sort_by(|(_, a), (_, b)| match (a, b) { + (Some(a), Some(b)) => a.total_cmp(b), + (Some(_), None) => std::cmp::Ordering::Less, + (None, Some(_)) => std::cmp::Ordering::Greater, + (None, None) => std::cmp::Ordering::Equal, + }); + costs.into_iter().map(|(algorithm, _)| algorithm).collect() + } + /// Keep concrete physical identities in Planner's complete-candidate estimate, /// including distinct pane sizes using the same abstract window framework. pub fn with_window_implementation_costs( @@ -693,7 +774,7 @@ impl CostModel for ControlPlaneCostModel { // puts it first (`summary_candidates`), nothing to reorder. _ => candidates.to_vec(), }; - self.rank_with_offline_evidence(intent, defaults) + self.rank_with_erp_costs(intent, self.rank_with_offline_evidence(intent, defaults)) } fn size_params( @@ -703,6 +784,19 @@ impl CostModel for ControlPlaneCostModel { eps: f64, delta: f64, ) -> SketchParams { + if kind == SketchAlgorithm::Hll && matches!(intent, AggIntent::Cardinality { .. }) { + if let Some(contract) = &self.hll_confidence { + if let Some((eps, delta)) = self.combined_eps_delta(&intent_accuracy(intent)) { + // If no supported precision meets the target, keep the tightest + // candidate for explain; its guarantee still fails selection. + let precision = contract + .confidence(eps) + .and_then(|model| model.precision(delta)) + .unwrap_or(18); + return SketchParams::Hll { precision }; + } + } + } let (max_error, theoretical) = match intent { AggIntent::TopK { k, .. } => { let (eps, delta) = self.topk_eps_delta(&intent_accuracy(intent)); @@ -998,7 +1092,7 @@ fn hll_precision_for_eps(eps: f64) -> u8 { } #[cfg(test)] -mod tests { +pub(crate) mod tests { use super::*; use planner_types::pre_asap::{default_cardinality, default_quantile}; @@ -1006,6 +1100,153 @@ mod tests { AccuracyTarget::Epsilon(e) } + /// Logical summary selection has an explicit Planner estimate before + /// deployment pricing, including when a family is forced. + #[test] + fn summary_candidates_have_explicit_logical_costs() { + use asap_aware_mapping::{ReplacementStrategy, SketchAlgorithmStrategy, TargetSubDAG}; + use std::rc::Rc; + + let accuracy = eps(0.1); + let root = Rc::new( + crate::query_parser::parse_query_expr_canonical( + "quantile_over_time(0.9,m[1m])", + accuracy.clone(), + ) + .unwrap(), + ); + let target = TargetSubDAG::new(&root); + let model = ControlPlaneCostModel::new(accuracy.clone()); + let forced = ForcedFamilyCostModel::new(accuracy, SketchAlgorithm::DDSketch); + let candidates = SketchAlgorithmStrategy::new(&model).replacements(&target); + assert!(!candidates.is_empty()); + for candidate in &candidates { + let estimate = model.candidate_cost_estimate(candidate).unwrap(); + assert!(estimate.value.is_finite() && estimate.value > 0.0); + assert_eq!(estimate.source, "analytical"); + assert_eq!(estimate.unit, "bytes_per_state_partition"); + assert_eq!( + model.candidate_cost(candidate, &target), + Some(Cost(estimate.value)) + ); + assert_eq!( + forced.candidate_cost(candidate, &target), + Some(Cost(estimate.value)) + ); + } + } + + /// Analytical estimates scale with configured state size; unsupported + /// families remain unavailable instead of receiving a made-up zero. + #[test] + fn analytical_footprint_scales_with_parameters() { + use planner_types::post_asap::SketchKind; + let kll = |k| { + SummaryFamilyType::Sketch( + SketchKind::new(SketchAlgorithm::Kll, SketchParams::Kll { k }), + GroupingStrategy::PerSubpopulationInstance, + ) + }; + assert_eq!(analytical_state_bytes(&kll(200)), Some(6400.0)); + assert_eq!(analytical_state_bytes(&kll(400)), Some(12800.0)); + let unsupported = SummaryFamilyType::Sketch( + SketchKind::new(SketchAlgorithm::Theta, SketchParams::Theta { k: 1024 }), + GroupingStrategy::PerSubpopulationInstance, + ); + assert_eq!(analytical_state_bytes(&unsupported), None); + } + + pub(crate) fn erp_cost_fixture() -> ErpPlanningInput { + serde_json::from_value(serde_json::json!({ + "artifact": {"schema_version": 1, "producer_version": "synthetic-test-fixture", + "records": [{"id": "kll-200", "sketch": "kll-percall", "implementation": "lib", + "parameters": {"k": 200}, "distribution": {"test": "population-a"}, "trials": 20, + "error_metrics": {"max_rank_err": 0.9}, + "resources": {"memory_bytes": 7777.0, "update_cpu_seconds": 1e-7, + "merge_cpu_seconds": 1e-5, "query_cpu_seconds": 1e-6}}]}, + "distribution": {"test": "population-a"}, "implementation": "lib", + "error_metric": "max_rank_err", "min_trials": 10, + "expected_updates": 1000.0, "expected_queries": 100.0, "expected_merges": 1.0, + "retention_seconds": 60.0, "cpu_weight": 1.0, "byte_second_weight": 1e-9, + "mode": "hybrid" + })).unwrap() + } + + /// ERP memory overrides analytical memory for the exact configuration, + /// even when it is larger. Mismatched profiles fall back to analytical. + #[test] + fn erp_cost_precedes_analytical_without_certifying_accuracy() { + use asap_aware_mapping::{ReplacementStrategy, SketchAlgorithmStrategy}; + use std::rc::Rc; + let policy = erp_cost_fixture(); + let root = Rc::new( + crate::query_parser::parse_query_expr_canonical( + "quantile_over_time(0.9,m[1m])", + eps(0.1), + ) + .unwrap(), + ); + let model = ControlPlaneCostModel::new(eps(0.1)); + let candidates = + SketchAlgorithmStrategy::new(&model).replacements(&TargetSubDAG::new(&root)); + let candidate = candidates + .iter() + .find(|candidate| { + model + .candidate_cost_estimate(candidate) + .is_some_and(|cost| cost.value == 6400.0) + }) + .expect("KLL candidate"); + let estimate = |policy: ErpPlanningInput| { + ControlPlaneCostModel::new(eps(0.1)) + .with_erp_costs(policy) + .candidate_cost_estimate(candidate) + .unwrap() + }; + let matched = estimate(policy.clone()); + assert_eq!(matched.value, 7777.0); + assert_eq!(matched.source, "erp"); + assert_eq!(matched.erp_record_ids, ["kll-200"]); + let mut mismatch = policy.clone(); + mismatch.distribution = serde_json::json!({"test": "population-b"}); + assert_eq!(estimate(mismatch).source, "analytical"); + let mut mismatch = policy.clone(); + mismatch.implementation = Some("different-runtime".into()); + assert_eq!(estimate(mismatch).source, "analytical"); + let mut mismatch = policy.clone(); + mismatch.artifact.records[0].parameters = serde_json::json!({"k": 400}); + assert_eq!(estimate(mismatch).source, "analytical"); + let mut mismatch = policy.clone(); + mismatch.min_trials = 21; + assert_eq!(estimate(mismatch).source, "analytical"); + let mut mismatch = policy.clone(); + mismatch.artifact.records[0].resources.memory_bytes = f64::NAN; + assert_eq!(estimate(mismatch).source, "analytical"); + let model = ControlPlaneCostModel::new(eps(0.1)).with_erp_costs(policy); + assert_eq!( + model.rank_candidates( + &default_quantile(0.9), + &[SketchAlgorithm::DDSketch, SketchAlgorithm::Kll] + )[0], + SketchAlgorithm::Kll + ); + let (_, trace) = crate::planner_selection::select_workload_with_accuracy_model_and_trace( + vec![(0, root)], + eps(0.1), + &model, + &asap_aware_mapping::NoAccuracyEvidence, + &asap_aware_mapping::DefaultAccuracyModel, + ) + .unwrap(); + assert!(trace["groups"] + .as_array() + .unwrap() + .iter() + .flat_map(|group| group["candidates"].as_array().unwrap()) + .any(|candidate| candidate["cost_estimate"]["source"] == "erp" + && candidate["cost_estimate"]["unit"] == "bytes_per_state_partition")); + } + #[test] fn quantile_always_prefers_ddsketch_over_kll() { let model = ControlPlaneCostModel::new(AccuracyTarget::Epsilon(0.1)); diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 963ebccac..338dc5b0b 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -4,7 +4,9 @@ //! Planner owns semantic legality. A manifest describes the exact physical //! demand to price; provider quotes and candidate evaluations are separate. +mod automatic; mod materialization_candidates; +pub use automatic::{AutomaticCostReport, ComponentResources}; mod status; pub use status::{CandidateEvaluationStatus, CandidateSearchScope}; @@ -90,6 +92,8 @@ pub struct CandidatePlanEvaluation { pub status: CandidateEvaluationStatus, pub plan_id: Option, pub total_cost: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub automatic_cost: Option, pub unavailable_reason: Option, } @@ -500,6 +504,7 @@ fn candidate_description(candidate: &PhysicalCompilationRequest) -> CandidatePla status: CandidateEvaluationStatus::CompilationFailed, plan_id: None, total_cost: None, + automatic_cost: None, unavailable_reason: None, } } @@ -612,7 +617,7 @@ pub fn select_lowest_cost_candidate( select_candidates( candidates, env, - evidence, + Some(evidence), super::compiler::QueryFrontend::PromQl, ) } @@ -625,18 +630,20 @@ pub fn select_lowest_cost_metricsql_candidate( select_candidates( candidates, env, - evidence, + Some(evidence), super::compiler::QueryFrontend::MetricsQl, ) } -fn select_candidates( +pub fn select_candidates( candidates: Vec, env: PhysicalDeploymentContext, - evidence: &WorkloadCostEvidence, + evidence: Option<&WorkloadCostEvidence>, frontend: super::compiler::QueryFrontend, ) -> Result { - evidence.validate(&env)?; + if let Some(evidence) = evidence { + evidence.validate(&env)?; + } if candidates.is_empty() || candidates.len() > 64 { return Err(invalid( "candidate inventory must contain 1..=64 candidates", @@ -661,6 +668,7 @@ fn select_candidates( }); let planner_selection_trace = candidates[0].planner_selection_trace.clone(); let mut comparison_workload = None; + let mut comparison_inputs = None; let mut candidate_evaluations = Vec::new(); let mut best_index = 0; let mut best: Option<( @@ -670,6 +678,19 @@ fn select_candidates( BTreeMap, )> = None; for candidate in candidates { + if evidence.is_none() { + let inputs = json!({"data":candidate.data_workload,"erp":candidate.erp}); + if comparison_inputs + .as_ref() + .is_some_and(|previous| previous != &inputs) + { + return Err(invalid( + "candidates describe different data/ERP cost inputs", + )); + } + comparison_inputs = Some(inputs); + } + let cost_request = candidate.clone(); let (plan, manifest, mut description) = match compile_candidate_for_pricing(candidate, env.clone(), frontend) { Ok(bound) => bound, @@ -686,11 +707,32 @@ fn select_candidates( return Err(invalid("candidates describe different workloads/horizons")); } comparison_workload = Some(scope); - match super::realization::RealizationProvider::price( - &super::realization::ExistingRealizations, - evidence, - &manifest, - ) { + let priced = if let Some(evidence) = evidence { + super::realization::RealizationProvider::price( + &super::realization::ExistingRealizations, + evidence, + &manifest, + ) + } else { + automatic::estimate(&cost_request, &env, &plan, &manifest) + .map(|report| { + let costs = report + .components + .iter() + .map(|(id, r)| (id.clone(), r.weighted_cost())) + .collect::>(); + let total = Cost(costs.values().sum()); + description.automatic_cost = Some(report); + (total, costs) + }) + .map_err(|error| { + ( + CandidateEvaluationStatus::EvidenceMissing, + error.to_string(), + ) + }) + }; + match priced { Ok((cost, components)) => { description.status = CandidateEvaluationStatus::Unselected; description.total_cost = Some(cost.0); @@ -718,8 +760,12 @@ fn select_candidates( plan.cost_comparison = Some(CandidatePlanSelectionReport { planner_selection_trace, materialization_search_coverage, - data_snapshot_id: evidence.data_snapshot_id.clone(), - model_version: evidence.model_version.clone(), + data_snapshot_id: evidence + .map(|e| e.data_snapshot_id.clone()) + .unwrap_or_else(|| "request-scoped-data-workload".into()), + model_version: evidence + .map(|e| e.model_version.clone()) + .unwrap_or_else(|| automatic::MODEL_VERSION.into()), selected_plan_id: plan.envelope.plan_id, selected_manifest, component_costs, @@ -868,6 +914,153 @@ mod tests { use super::super::compiler::BackendLocalPlanningInput; use super::*; + /// Deployment computes and compares complete costs without external quotes. + #[test] + fn deployment_automatically_prices_workload() { + let mut input = fixture(); + input.workload_cost_evidence = None; + let plan = input.compile_promql().unwrap(); + let report = plan.cost_comparison.unwrap(); + let selected = report + .candidate_evaluations + .iter() + .find(|c| c.status == CandidateEvaluationStatus::Selected) + .unwrap(); + assert_eq!( + selected.total_cost.unwrap(), + report.component_costs.values().sum::() + ); + assert!(report + .candidate_evaluations + .iter() + .filter_map(|c| c.total_cost) + .all(|cost| cost >= selected.total_cost.unwrap())); + assert!(!report.component_costs.is_empty()); + assert_eq!( + report.component_costs.len(), + report.selected_manifest.components.len() + ); + assert!( + report + .candidate_evaluations + .iter() + .filter(|c| c.total_cost.is_some()) + .count() + > 1 + ); + } + + fn automatic_report( + request: &PhysicalCompilationRequest, + env: &PhysicalDeploymentContext, + plan: &CompiledPhysicalPlan, + ) -> AutomaticCostReport { + automatic::estimate( + request, + env, + plan, + &manifest(plan, &request.queries).unwrap(), + ) + .unwrap() + } + + /// Demand changes recurring work, while shared maintenance stays once per location. + #[test] + fn automatic_cost_scales_demand_data_and_shared_consumers() { + let (mut request, env) = fixture().into_physical_compilation_request().unwrap(); + let plan = DeploymentPlanCompiler + .compile_promql(request.clone(), env.clone()) + .unwrap(); + let before = automatic_report(&request, &env, &plan); + request.queries[0] + .summary_lifecycle_inputs + .evaluation_interval_ms /= 2; + let frequent = automatic_report(&request, &env, &plan); + for (id, cost) in &before.components { + let factor = if id.starts_with("query:") || id.starts_with("result:") { + 2.0 + } else { + 1.0 + }; + assert!( + (frequent.components[id].weighted_cost() - factor * cost.weighted_cost()).abs() + < 1e-10, + "{id}" + ); + } + request + .data_workload + .as_mut() + .unwrap() + .ingestion_rate + .value + .as_mut() + .unwrap() + .0 *= 2.0; + let larger = automatic_report(&request, &env, &plan); + assert!( + larger + .components + .iter() + .filter(|(id, _)| id.ends_with(":update")) + .map(|(_, c)| c.cpu_seconds) + .sum::() + > frequent + .components + .iter() + .filter(|(id, _)| id.ends_with(":update")) + .map(|(_, c)| c.cpu_seconds) + .sum::() + ); + let mut shared = plan.clone(); + let mut query = request.queries[0].clone(); + query.query_id = "second-consumer".into(); + let mut entry = shared.query_plan.entries.values().next().unwrap().clone(); + entry.query_id = query.query_id.clone(); + shared + .query_plan + .entries + .insert(query.query_id.clone(), entry); + request.queries.push(query); + let twice = automatic_report(&request, &env, &shared); + for (id, cost) in &larger.components { + assert_eq!(&twice.components[id], cost); + } + assert_eq!( + twice + .components + .keys() + .filter(|id| id.starts_with("source:") || id.starts_with("state:")) + .count(), + larger + .components + .keys() + .filter(|id| id.starts_with("source:") || id.starts_with("state:")) + .count() + ); + } + + /// Expired facts and arithmetic overflow cannot silently become a zero quote. + #[test] + fn automatic_cost_rejects_stale_and_overflowing_data() { + let (mut request, env) = fixture().into_physical_compilation_request().unwrap(); + let plan = DeploymentPlanCompiler + .compile_promql(request.clone(), env.clone()) + .unwrap(); + let manifest = manifest(&plan, &request.queries).unwrap(); + let rate = &mut request.data_workload.as_mut().unwrap().ingestion_rate; + rate.observed_at_ms = Some(1); + rate.valid_for_ms = Some(1); + assert!(automatic::estimate(&request, &env, &plan, &manifest) + .unwrap_err() + .to_string() + .contains("fresh ingestion rate")); + let rate = &mut request.data_workload.as_mut().unwrap().ingestion_rate; + rate.valid_for_ms = None; + rate.value.as_mut().unwrap().0 = f64::MAX; + assert!(automatic::estimate(&request, &env, &plan, &manifest).is_err()); + } + fn fixture() -> BackendLocalPlanningInput { let mut snapshot: BackendLocalPlanningInput = serde_json::from_str(include_str!( "../../../docs/examples/asapquery-planning-snapshot.json" @@ -1383,9 +1576,14 @@ mod tests { } #[test] - fn snapshot_requires_quotes_and_roundtrips_selection() { + fn snapshot_supports_automatic_cost_and_roundtrips_quote_override() { let mut snapshot = fixture(); - assert!(snapshot.clone().compile_promql().is_err()); + assert!(snapshot + .clone() + .compile_promql() + .unwrap() + .cost_comparison + .is_some()); let (_, _, evidence) = quoted(); snapshot.workload_cost_evidence = Some(evidence); let snapshot: BackendLocalPlanningInput = diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs new file mode 100644 index 000000000..127b90d18 --- /dev/null +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -0,0 +1,667 @@ +//! Versioned reference resource model. These coefficients are analytical +//! assumptions, not measurements or currency prices. ERP replaces only the +//! resource dimensions it measures; plan demand always comes from the backend. +use super::*; +use crate::query_plan::{residual::ResidualQueryOperator as Op, QueryPlanNode as Node}; +use asap_aware_mapping::erp::ErpResourceProfile; +use asap_types::{ + AggregationType as A, PrecomputeMaterialization, WindowMaterializationLayout as Layout, +}; +use planner_types::post_asap::SketchAlgorithm; + +pub const MODEL_VERSION: &str = "backend-workload-resources-v1"; +const CPU_PER_ITEM: f64 = 1e-7; +const CPU_PER_BYTE: f64 = 1e-9; +const SAMPLE_BYTES: f64 = 24.0; +const SERIES_BYTES: f64 = 256.0; +const MEMORY_WEIGHT: f64 = 1e-9; +const NETWORK_WEIGHT: f64 = 1e-8; + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +pub struct ComponentResources { + pub cpu_seconds: f64, + pub memory_byte_seconds: f64, + pub network_bytes: f64, + pub source: String, + pub erp_record_ids: Vec, + pub calculation: Value, +} +impl ComponentResources { + pub(super) fn weighted_cost(&self) -> f64 { + self.cpu_seconds + + self.memory_byte_seconds * MEMORY_WEIGHT + + self.network_bytes * NETWORK_WEIGHT + } +} +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] +pub struct AutomaticCostReport { + pub model_version: String, + pub weights: Value, + pub inputs: Value, + pub assumptions: Vec, + pub components: BTreeMap, +} +#[derive(Clone)] +struct State { + profile: ErpResourceProfile, + ids: Vec, + partitions: f64, + retained: f64, + allocations_per_second: f64, + overlap: f64, + rollup_merges: f64, +} +fn resources( + cpu: f64, + memory: f64, + network: f64, + ids: Vec, + calculation: Value, +) -> ComponentResources { + ComponentResources { + cpu_seconds: cpu, + memory_byte_seconds: memory, + network_bytes: network, + source: if ids.is_empty() { + "analytical" + } else { + "erp+analytical" + } + .into(), + erp_record_ids: ids, + calculation, + } +} +fn state( + m: &PrecomputeMaterialization, + request: &PhysicalCompilationRequest, + cardinality: u64, +) -> Result { + let bytes = + super::super::compiler::estimated_state_bytes(&m.aggregation_type, &m.parameters) as f64; + let mut profile = ErpResourceProfile { + memory_bytes: bytes, + update_cpu_seconds: CPU_PER_ITEM * (bytes / 16.0).max(2.0).log2(), + merge_cpu_seconds: CPU_PER_BYTE * bytes, + query_cpu_seconds: CPU_PER_BYTE * bytes + CPU_PER_ITEM, + }; + let mut ids = Vec::new(); + let algorithm = match m.aggregation_type { + A::DatasketchesKLL => Some(SketchAlgorithm::Kll), + A::HLL => Some(SketchAlgorithm::Hll), + A::UnivMon => Some(SketchAlgorithm::UnivMon), + _ => None, + }; + if let (Some(policy), Some(algorithm)) = (&request.erp, algorithm) { + let mut policy = policy.clone(); + // Use the same deployed implementation and population checks as the + // logical cost path. Unknown implementations fall back to this model. + policy.artifact.records.retain(|row| { + (row.sketch == "kll-percall" && row.implementation == "lib") + || (row.sketch == "hll" && row.implementation == "asap-sketchlib-hll-regular-v1") + || (row.sketch == "univmon" + && row.implementation == "asap-sketchlib-univmon-standard-v1") + }); + let population_matches = policy.observed_populations.is_none() + || (!request.canonical_roots.is_empty() + && request.canonical_roots.iter().all(|root| { + super::super::compiler::observed_population_matches_root(&policy, root) + })); + if population_matches { + if let Some(params) = super::super::erp::parse_params(&algorithm, &json!(m.parameters)) + { + if let Some((measured, records)) = policy.candidate_resources(&algorithm, ¶ms) { + profile = measured; + ids = records; + } + } + } + } + let (period, overlap, rollup_merges) = match &m.window_layout { + Layout::Pane { pane_secs } => (*pane_secs as f64, 1.0, 0.0), + Layout::FullWindow => ( + m.slide_interval as f64, + (m.window_size as f64 / m.slide_interval as f64).ceil(), + 0.0, + ), + Layout::HierarchicalRollup { + base_pane_secs, + levels_secs, + } => { + // Every closed child state is folded into its parent once. + let periods = std::iter::once(base_pane_secs) + .chain(levels_secs.iter().take(levels_secs.len().saturating_sub(1))); + ( + *base_pane_secs as f64, + 1.0, + periods.map(|p| 1.0 / *p as f64).sum(), + ) + } + }; + let retained = m + .num_aggregates_to_retain + .ok_or_else(|| invalid("state retention count is unknown"))? as f64; + if period <= 0.0 || retained <= 0.0 { + return Err(invalid("invalid state layout")); + } + Ok(State { + profile, + ids, + partitions: super::super::compiler::retained_partition_count(m, Some(cardinality)) as f64, + retained, + allocations_per_second: 1.0 / period + + match &m.window_layout { + Layout::HierarchicalRollup { levels_secs, .. } => { + levels_secs.iter().map(|p| 1.0 / *p as f64).sum::() + } + _ => 0.0, + }, + overlap, + rollup_merges, + }) +} + +pub(super) fn estimate( + request: &PhysicalCompilationRequest, + env: &PhysicalDeploymentContext, + plan: &CompiledPhysicalPlan, + manifest: &WorkloadCostManifest, +) -> Result { + let data = request + .data_workload + .as_ref() + .ok_or_else(|| invalid("automatic costing needs data_workload"))?; + let now = env.observed_at_unix_ms; + let horizon = manifest.horizon_seconds; + let rate = data + .ingestion_rate + .value_at(now) + .map(|r| r.0) + .ok_or_else(|| invalid("automatic costing needs a fresh ingestion rate"))?; + let cadence = data + .data_ingestion_interval + .value_at(now) + .map(|d| d.0 as f64 / 1000.0) + .ok_or_else(|| invalid("automatic costing needs fresh source cadence"))?; + if !rate.is_finite() || rate < 0.0 || !cadence.is_finite() || cadence <= 0.0 { + return Err(invalid("invalid source rate/cadence")); + } + let mut assumptions = vec![ + "Reference analytical coefficients are estimates, not calibrated benchmarks or currency prices.".into(), + "Absent per-source/selectivity facts, each source and collector uses the whole workload rate and cardinality (conservative replication).".into(), + "Grouped states use input cardinality as an upper bound on group count; filtered inputs receive no selectivity discount.".into(), + "Transport uses full state size even for deltas; memory footprint approximates encoded size; result rows include a 256-byte label allowance.".into(), + ]; + let cardinality = match data.input_cardinality.value_at(now) { + Some(value) => *value, + None => { + if rate == 0.0 { + return Err(invalid( + "zero arrival rate cannot establish active cardinality", + )); + } + assumptions.push("Unknown cardinality estimated as ceil(ingestion_rate * source_cadence), assuming one sample per active series per scrape.".into()); + let n = (rate * cadence).ceil(); + if !n.is_finite() || n >= u64::MAX as f64 { + return Err(invalid("cardinality estimate overflow")); + } + n as u64 + } + }; + if cardinality == 0 && rate > 0.0 { + return Err(invalid("positive ingestion rate with zero cardinality")); + } + let cardinality = cardinality as f64; + let mut states = BTreeMap::new(); + for schema in &plan.precompute_plan.schemas { + let m = plan + .precompute_plan + .materializations + .iter() + .find(|m| m.policy_fingerprint() == schema.materialization.fingerprint()) + .ok_or_else(|| invalid("missing materialization"))?; + states.insert( + schema.materialization.0, + state(m, request, cardinality as u64)?, + ); + } + let mut components = BTreeMap::new(); + let mut insert = |id: String, value: ComponentResources| -> Result<(), CompileError> { + if !manifest.components.contains_key(&id) { + return Err(invalid(format!("unmanifested cost {id}"))); + } + if [ + value.cpu_seconds, + value.memory_byte_seconds, + value.network_bytes, + value.weighted_cost(), + ] + .iter() + .any(|v| !v.is_finite() || *v < 0.0) + { + return Err(invalid(format!("non-finite/negative resource cost {id}"))); + } + if components.insert(id.clone(), value).is_some() { + return Err(invalid(format!("duplicate cost {id}"))); + } + Ok(()) + }; + let updates = rate * horizon; + let max_lookback = plan + .query_plan + .entries + .values() + .map(|e| e.instant.lookback_ms as f64 / 1000.0) + .fold(cadence, f64::max); + let needs_volume = matches!(data.arrival, planner_types::workload::DataArrival::AtRest) + || plan + .query_plan + .entries + .values() + .any(|e| e.instant.full_history); + let source_samples = + if needs_volume { + *data.ingestion_volume.value_at(now).ok_or_else(|| { + invalid("at-rest/full-history costing needs fresh ingestion_volume") + })? as f64 + + updates + } else { + rate * max_lookback + }; + for (id, demand) in &manifest.components { + if id.starts_with("source:") { + let location = demand.implementation["location"].as_str().unwrap_or(""); + let remote_backend = location == "backend" && !plan.collector_plans.is_empty(); + let items = if remote_backend { 0.0 } else { updates }; + let raw_retained = if location == "exact_backend" { + source_samples * SAMPLE_BYTES + cardinality * SERIES_BYTES + } else { + 0.0 + }; + insert( + id.clone(), + resources( + items * CPU_PER_ITEM, + raw_retained * horizon, + items * SAMPLE_BYTES, + vec![], + json!({"input_samples": items, "retained_raw_bytes": raw_retained, "cpu_seconds_per_sample": CPU_PER_ITEM, + "backend_summary_decode_charged_in_transport": remote_backend}), + ), + )?; + } else if id.starts_with("state:") { + let binding = &demand.implementation["binding"]; + let materialization: asap_types::PolicyFingerprint = + serde_json::from_value(binding["schema"]["materialization"].clone()) + .map_err(|e| invalid(e.to_string()))?; + let s = states + .get(&materialization) + .ok_or_else(|| invalid("unknown state"))?; + let operation = demand.implementation["operation"].as_str().unwrap_or(""); + let builds = s.partitions * (s.retained + (horizon * s.allocations_per_second).ceil()); + let remote_backend = + binding["location"] == "backend" && !plan.collector_plans.is_empty(); + let update_count = if remote_backend { + 0.0 + } else { + updates * s.overlap + }; + let merges = s.partitions * horizon * s.rollup_merges; + let (cpu, memory) = match operation { + "build" => (builds * s.profile.memory_bytes * CPU_PER_BYTE, 0.0), + "update" => ( + update_count * s.profile.update_cpu_seconds + + merges * s.profile.merge_cpu_seconds, + 0.0, + ), + "residency" => ( + 0.0, + s.partitions * s.retained * s.profile.memory_bytes * horizon, + ), + "retire" => (builds * CPU_PER_ITEM, 0.0), + _ => return Err(invalid("unsupported state phase")), + }; + insert( + id.clone(), + resources( + cpu, + memory, + 0.0, + s.ids.clone(), + json!({"operation":operation, + "partitions":s.partitions, "retained_states_per_partition":s.retained, "builds_and_retirements":builds, + "updates":update_count,"rollup_merges":merges,"unit_resources":s.profile, + "allocation_cpu_seconds_per_byte":CPU_PER_BYTE,"retirement_cpu_seconds_per_state":CPU_PER_ITEM}), + ), + )?; + } else if id.starts_with("current-series:") { + let phase = demand.implementation["phase"].as_str().unwrap_or(""); + let bytes = cardinality * SERIES_BYTES; + let retention_ms = demand.implementation["population"]["history_retention_ms"] + .as_u64() + .unwrap_or(0); + let versions = if retention_ms == 0 { + 0.0 + } else { + (retention_ms as f64 / (cadence * 1000.)).ceil() + 1.0 + }; + let retained_bytes = bytes + versions * (bytes + 1024.0); + let snapshots = if versions == 0.0 { + 0.0 + } else { + horizon / cadence + }; + let (cpu, memory) = match phase { + "build" => (bytes * CPU_PER_BYTE, 0.0), + "update" => ( + updates * CPU_PER_ITEM * cardinality.max(2.0).log2() + + snapshots * bytes * CPU_PER_BYTE, + 0.0, + ), + "residency" => (0.0, retained_bytes * horizon), + "retire" => ((cardinality + snapshots) * CPU_PER_ITEM, 0.0), + _ => return Err(invalid("unsupported current-series phase")), + }; + insert( + id.clone(), + resources( + cpu, + memory, + 0.0, + vec![], + json!({"phase":phase,"series":cardinality,"updates":updates,"bytes_per_series":SERIES_BYTES,"historical_versions":versions,"retained_bytes":retained_bytes,"snapshots":snapshots}), + ), + )?; + } + } + for rule in &plan.transmission_plan.rules { + if rule.emit_every_ms == 0 { + return Err(invalid("unknown transmission cadence")); + } + let s = states + .get(&rule.materialization.0) + .ok_or_else(|| invalid("unknown transport state"))?; + let checkpoints = rule + .full_checkpoint_every_ms + .map(|ms| { + if ms == 0 { + f64::INFINITY + } else { + horizon * 1000.0 / ms as f64 + } + }) + .unwrap_or(0.0); + let frames = (horizon * 1000.0 / rule.emit_every_ms as f64 + checkpoints).ceil() + * s.partitions + * s.retained; + let bytes = frames * s.profile.memory_bytes; + insert( + format!("transport:{}:{}", rule.producer_id, rule.materialization.0), + resources( + bytes * CPU_PER_BYTE * 2.0 + frames * s.profile.merge_cpu_seconds, + 0.0, + bytes, + s.ids.clone(), + json!({"frames":frames,"bytes_per_frame":s.profile.memory_bytes,"merge_cpu_seconds_per_frame":s.profile.merge_cpu_seconds, + "encode_decode_cpu_seconds_per_byte":2.0*CPU_PER_BYTE}), + ), + )?; + } + for entry in plan.query_plan.entries.values() { + let mut rows = BTreeMap::new(); + let mut profiles: BTreeMap<_, Vec<&State>> = BTreeMap::new(); + for node_id in entry + .topological_order() + .map_err(|e| invalid(e.to_string()))? + { + let node = &entry.nodes[&node_id]; + let id = format!("query:{}:{}", entry.query_id, node_id.0); + let evaluations = manifest.components[&id].occurrences_per_horizon; + let input_rows: f64 = node.inputs().iter().map(|id| rows[id]).sum(); + let mut output_rows = input_rows.max(1.0); + let mut used: Vec<&State> = node + .inputs() + .iter() + .flat_map(|id| profiles.get(id).into_iter().flatten().copied()) + .collect(); + let mut detail = json!({"input_rows":input_rows}); + let mut network = 0.0; + let cpu = match node { + Node::ReadMaterialization { binding } => { + let s = states + .get(&binding.materialization.0) + .ok_or_else(|| invalid("unknown read state"))?; + let panes = if binding.full_window_slide_ms.is_some() { + 1.0 + } else { + (binding + .readout_lookback_ms + .unwrap_or(entry.instant.lookback_ms) as f64 + / binding.window_ms as f64) + .ceil() + .max(1.0) + }; + output_rows = s.partitions; + used = vec![s]; + detail = json!({"partitions":s.partitions,"panes_per_read":panes,"unit_resources":s.profile}); + s.partitions + * (panes * s.profile.memory_bytes * CPU_PER_BYTE + + (panes - 1.0) * s.profile.merge_cpu_seconds) + } + Node::SummaryEstimate { .. } => used + .iter() + .map(|s| s.partitions * s.profile.query_cpu_seconds) + .sum(), + Node::SummaryMerge { .. } => used + .iter() + .map(|s| s.partitions * s.profile.merge_cpu_seconds) + .sum(), + Node::Scalar { .. } => { + output_rows = 1.0; + CPU_PER_ITEM + } + Node::ExactFallback { .. } + | Node::Logical { + operator: Op::ExactSubquery { .. } | Op::CandidateExactSubquery { .. }, + .. + } => { + let query = match node { + Node::Logical { + operator: + Op::ExactSubquery { query } | Op::CandidateExactSubquery { query, .. }, + .. + } => query.as_str(), + _ => entry.canonical_query.as_str(), + }; + let parsed = crate::query_parser::parse_query_expr_canonical( + query, + crate::types::AccuracyTarget::Exact, + ) + .map_err(|e| invalid(e.to_string()))?; + let sources = exact_source_metrics(&parsed)?.len() as f64; + let samples = if needs_volume { + *data.ingestion_volume.value_at(now).ok_or_else(|| { + invalid("full-history exact cost needs fresh ingestion_volume") + })? as f64 + } else { + (rate * (entry.instant.lookback_ms as f64 / 1000.0).max(cadence)) + .max(cardinality) + } * sources; + let operators = tree_size( + &serde_json::to_value(parsed).map_err(|e| invalid(e.to_string()))?, + ) as f64; + output_rows = cardinality.max(1.0); + network = output_rows * SERIES_BYTES + query.len() as f64; + detail = json!({"scanned_samples":samples,"syntax_objects":operators,"cpu_seconds_per_item":CPU_PER_ITEM, + "formula":"(samples + 1) * log2(max(samples, 2)) * syntax_objects * cpu_seconds_per_item"}); + (samples + 1.0) * samples.max(2.0).log2() * operators * CPU_PER_ITEM + } + Node::Logical { + operator: Op::CurrentSeries { .. }, + .. + } => { + output_rows = cardinality; + cardinality * CPU_PER_ITEM + } + Node::RelationalJoin { + inputs, + join_kind, + pred, + left_schema, + right_schema, + .. + } if matches!( + join_kind, + planner_types::pre_asap::JoinKind::Semi + | planner_types::pre_asap::JoinKind::Anti + ) => + { + output_rows = rows[&inputs[0]]; + let indexed = *join_kind == planner_types::pre_asap::JoinKind::Semi + && serde_json::from_value(pred.clone()).is_ok_and(|predicate| { + asap_physical_operators::dag::planner::equijoin_keys( + &predicate, + left_schema, + right_schema, + ) + .is_ok() + }); + detail = json!({"input_rows": input_rows, "output_rows_upper_bound": output_rows, "indexed_equality_semijoin": indexed}); + if indexed { + input_rows.max(1.0) * input_rows.max(2.0).log2() * CPU_PER_ITEM + } else { + rows[&inputs[0]] * rows[&inputs[1]] * CPU_PER_ITEM + } + } + Node::RelationalJoin { .. } => { + output_rows = input_rows.powi(2); + output_rows * CPU_PER_ITEM + } + Node::ExternalExact { .. } + | Node::Logical { + operator: Op::Scan { .. } | Op::Subquery { .. }, + .. + } => { + return Err(invalid("no automatic model for external exact/generic scan/nested subquery operator")); + } + Node::ReduceSum { grouping, .. } => { + if matches!(grouping, crate::query_plan::PhysicalGrouping::Reduce(keys) if keys.is_empty()) + { + output_rows = 1.0; + } + input_rows * CPU_PER_ITEM + } + Node::ExactReadout { .. } + | Node::Binary { .. } + | Node::Relational { .. } + | Node::Logical { .. } => { + input_rows.max(1.0) * input_rows.max(2.0).log2() * CPU_PER_ITEM + } + }; + let ids: BTreeSet<_> = if matches!( + node, + Node::ReadMaterialization { .. } + | Node::SummaryEstimate { .. } + | Node::SummaryMerge { .. } + ) { + used.iter().flat_map(|s| s.ids.iter().cloned()).collect() + } else { + BTreeSet::new() + }; + detail["evaluations"] = json!(evaluations); + detail["output_rows_bound"] = json!(output_rows); + insert( + id, + resources( + cpu * evaluations, + 0.0, + network * evaluations, + ids.into_iter().collect(), + detail, + ), + )?; + rows.insert(node_id, output_rows); + profiles.insert(node_id, used); + } + let id = format!("result:{}", entry.query_id); + let evaluations = manifest.components[&id].occurrences_per_horizon; + let bytes = rows[&entry.root] * SERIES_BYTES * evaluations; + insert( + id, + resources( + bytes * CPU_PER_BYTE, + 0.0, + bytes, + vec![], + json!({"rows_per_evaluation":rows[&entry.root],"evaluations":evaluations,"bytes_per_row":SERIES_BYTES}), + ), + )?; + } + if components.len() != manifest.components.len() { + return Err(invalid( + "automatic cost model did not cover every manifest component", + )); + } + if !components + .values() + .map(ComponentResources::weighted_cost) + .sum::() + .is_finite() + { + return Err(invalid("total workload cost overflow")); + } + Ok(AutomaticCostReport { + model_version: MODEL_VERSION.into(), + weights: json!({"unit":"weighted_resource_seconds","cpu_seconds":1.0,"memory_byte_seconds":MEMORY_WEIGHT,"network_bytes":NETWORK_WEIGHT}), + inputs: json!({"data_workload":data,"horizon_seconds":horizon,"ingestion_rate":rate,"source_cadence_seconds":cadence, + "input_cardinality":cardinality,"capability_snapshot_id":env.capability_snapshot_id,"observed_at_unix_ms":now}), + assumptions, + components, + }) +} +fn tree_size(value: &Value) -> usize { + match value { + Value::Object(fields) => 1 + fields.values().map(tree_size).sum::(), + Value::Array(items) => items.iter().map(tree_size).sum(), + _ => 0, + } +} + +#[cfg(test)] +mod tests { + use super::*; + /// A concrete implementation uses all ERP resources even when dearer; + /// a profile for a different implementation cannot replace its estimate. + #[test] + fn physical_state_resources_prefer_applicable_erp() { + let input: super::super::super::compiler::BackendLocalPlanningInput = serde_json::from_str( + include_str!("../../../../docs/examples/asapquery-planning-snapshot.json"), + ) + .unwrap(); + let (mut request, env) = input.into_physical_compilation_request().unwrap(); + let plan = super::super::super::compiler::DeploymentPlanCompiler + .compile_promql(request.clone(), env) + .unwrap(); + let mut m = plan.precompute_plan.materializations[0].clone(); + m.aggregation_type = A::DatasketchesKLL; + m.parameters = std::collections::HashMap::from([("k".into(), json!(200))]); + let baseline = state(&m, &request, 100).unwrap(); + let mut erp = crate::physical::post_asap::cost_model::tests::erp_cost_fixture(); + erp.artifact.records[0].resources = ErpResourceProfile { + memory_bytes: 1e8, + update_cpu_seconds: 0.1, + merge_cpu_seconds: 0.2, + query_cpu_seconds: 0.3, + }; + let expected = erp.artifact.records[0].resources.clone(); + request.erp = Some(erp); + let measured = state(&m, &request, 100).unwrap(); + assert!(!measured.ids.is_empty()); + assert_eq!(measured.profile, expected); + assert!(measured.profile.memory_bytes > baseline.profile.memory_bytes); + request.erp.as_mut().unwrap().artifact.records[0].implementation = "other-runtime".into(); + let fallback = state(&m, &request, 100).unwrap(); + assert!(fallback.ids.is_empty()); + assert_eq!(fallback.profile, baseline.profile); + } +} diff --git a/control_plane/src/planner_selection.rs b/control_plane/src/planner_selection.rs index 37e17fd7f..a97342bb1 100644 --- a/control_plane/src/planner_selection.rs +++ b/control_plane/src/planner_selection.rs @@ -1,8 +1,8 @@ -//! Deployment-owned selection at the latest ASAPPlanner boundary. +//! Supplies deployment capabilities and cost/accuracy evidence to ASAPPlanner. //! -//! ASAPPlanner enumerates a ranked candidate space and deliberately does not -//! commit to one deployment plan. The backend owns that decision because it -//! also owns placement, runtime capabilities, and the physical wire contract. +//! Planner constructs, evaluates, and selects computation candidates. This +//! adapter registers the supported strategies and retains selection evidence; +//! DeploymentPlanCompiler binds the resulting computation and lifecycle. use std::rc::Rc; diff --git a/control_plane/tests/discovery_snapshot.rs b/control_plane/tests/discovery_snapshot.rs index c6e4a69b0..ecedfd3fa 100644 --- a/control_plane/tests/discovery_snapshot.rs +++ b/control_plane/tests/discovery_snapshot.rs @@ -55,7 +55,7 @@ fn discovered_snapshot_plans_with_observed_cadence_and_promql_history() { .into_physical_compilation_request() .unwrap(); assert_eq!(request.scrape_interval_ms, Some(60_000)); - assert_eq!(request.queries[0].query_lookback_seconds, 3660); + assert_eq!(request.queries[0].query_lookback_ms, 3_660_000); let roundtrip: BackendLocalPlanningInput = serde_json::from_value(serde_json::to_value(&snapshot).unwrap()).unwrap(); assert_eq!(snapshot, roundtrip); diff --git a/data_plane/tests/support/distinct_planning_process.rs b/data_plane/tests/support/distinct_planning_process.rs index 72bb3dd74..242844ec5 100644 --- a/data_plane/tests/support/distinct_planning_process.rs +++ b/data_plane/tests/support/distinct_planning_process.rs @@ -1,4 +1,5 @@ use super::*; +use control_plane::physical::compiler::BackendLocalPlanningInput; /// Modeled HLL error without a confidence certificate cannot replace exact execution. #[tokio::test] @@ -14,3 +15,181 @@ async fn uncertified_distinct_uses_exact_process() { fixture["query_workload"]["repeating_queries"] = serde_json::json!([entry]); assert_uncertified_exact_process(fixture, &[QUERY]).await; } + +/// The production compiler, ingest engine and query DAG preserve distinct populations. +#[tokio::test] +async fn bounded_classic_hll_executes_with_source_labels() { + const QUERY: &str = "distinct_over_time(distinct_values{job=\"api\"}[5s])"; + let fallback_listener = tokio::net::TcpListener::bind("127.0.0.1:0").await.unwrap(); + let fallback_url = format!("http://{}", fallback_listener.local_addr().unwrap()); + let fallback_task = tokio::spawn(async move { + axum::serve( + fallback_listener, + Router::new().route("/-/healthy", get(|| async { "healthy" })), + ) + .await + .unwrap(); + }); + let mut fixture: Value = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let mut entry = fixture["query_workload"]["repeating_queries"][3].clone(); + entry["query"] = QUERY.into(); + entry["requirements"]["accuracy"] = serde_json::json!({"explicit": {"Epsilon": 0.05}}); + fixture["query_workload"]["repeating_queries"] = serde_json::json!([entry]); + // The generated finite value domain enforces this bound over complete + // readout populations, including all panes. Series count is not the bound. + fixture["implementation"]["data_snapshot_id"] = "process-fixture".into(); + fixture["implementation"]["accuracy_evidence"] = serde_json::json!({QUERY: { + "query_string": QUERY, "data_snapshot_id": "process-fixture", + "data_workload": fixture["data_workload"], "source": "finite-generated-value-domain", + "observed_at_unix_ms": fixture["environment"]["observed_at_unix_ms"], + "valid_for_ms": 60000, + "hll": {"model":"asap-classic64-uniform-hash-linear-counting-v1", + "max_distinct_per_readout":128} + }}); + let plan = quote_snapshot_for_test( + serde_json::from_value::(fixture.clone()).unwrap(), + ) + .compile_promql() + .unwrap(); + assert_eq!(plan.precompute_plan.materializations.len(), 1); + assert_eq!( + plan.precompute_plan.materializations[0].aggregation_type, + asap_types::AggregationType::HLL + ); + eprintln!( + "DISTINCT_PLANNED {}", + serde_json::json!({"materializations": plan.precompute_plan.materializations, "query_plan": plan.query_plan, "lifecycle_estimates": plan.lifecycle_estimates}) + ); + let output = tempfile::tempdir().unwrap(); + let path = output.path().join("planning.json"); + let priced = quote_snapshot_for_test(serde_json::from_value(fixture.clone()).unwrap()); + std::fs::write(&path, serde_json::to_vec(&priced).unwrap()).unwrap(); + let port = unused_port(); + let mut vm_port = unused_port(); + while vm_port == port { + vm_port = unused_port(); + } + let mut child = ChildGuard( + Command::new(env!("CARGO_BIN_EXE_data_plane")) + .args([ + "--forward-unsupported-queries", + "--prometheus-server", + &fallback_url, + "--profile", + "asapquery", + "--planning-snapshot", + ]) + .arg(&path) + .args(["--http-port", &port.to_string(), "--output-dir"]) + .arg(output.path()) + .args([ + "--victoriametrics-http-port", + &vm_port.to_string(), + "--victoriametrics-url", + &fallback_url, + ]) + .args([ + "--precompute-allowed-lateness-ms", + "0", + "--precompute-flush-interval-ms", + "25", + ]) + .stdout(Stdio::null()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(), + ); + let client = reqwest::Client::new(); + let backend = format!("http://127.0.0.1:{port}"); + wait_until_ready(&client, &format!("{backend}/api/v1/health"), &mut child.0).await; + // Source syntax uses the shared parser fork; serving semantics and exact + // routing belong to the MetricsQL adapter and its installed query entries. + let snapshot = serde_json::from_value::(fixture).unwrap(); + let mut snapshot = snapshot; + snapshot.environment.plan_version = 2; + let compiled = quote_snapshot_for_frontend_test(snapshot, true) + .compile_metricsql() + .unwrap(); + let identity = serde_json::json!({"plan_id": compiled.envelope.plan_id, "plan_version": compiled.envelope.plan_version}); + let install = data_plane::drivers::query::servers::http::PhysicalPlanInstallRequest { + summary_catalog: compiled.summary_catalog, + collector_plans: compiled.collector_plans, + precompute_plan: compiled.precompute_plan, + transmission_plan: compiled.transmission_plan, + query_plan: compiled.query_plan, + storage_routing: None, + adaptation_evidence: vec![], + }; + eprintln!( + "DISTINCT_INSTALLED {}", + serde_json::to_string(&install).unwrap() + ); + let response = client + .post(format!("{backend}/api/v1/physical-plan")) + .json(&install) + .send() + .await + .unwrap(); + assert!( + response.status().is_success(), + "{}", + response.text().await.unwrap() + ); + let response = client + .post(format!("{backend}/api/v1/physical-plan/activate")) + .json(&identity) + .send() + .await + .unwrap(); + assert!( + response.status().is_success(), + "{}", + response.text().await.unwrap() + ); + let now = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_millis() as i64; + let base = now - now.rem_euclid(5000) - 20000; + let mut series = Vec::new(); + for (instance, distinct, job) in [("a", 5, "api"), ("b", 13, "api"), ("excluded", 23, "other")] + { + let mut samples: Vec<_> = (0..100) + .map(|i| (base + 1 + i, (i % distinct) as f64)) + .collect(); + samples.push((base + 15001, 1000.0)); + series.push(series_with_labels( + "distinct_values", + &[("instance", instance), ("job", job)], + &samples, + )); + } + assert_eq!( + remote_write(&client, &backend, &WriteRequest { timeseries: series }).await, + 204 + ); + drain_precompute(&client, &backend).await; + let result = wait_for_warm_instant( + &client, + &format!("http://127.0.0.1:{vm_port}"), + QUERY, + (base + 5000) as f64 / 1000.0, + &output.path().join("query_engine.log"), + ) + .await; + let rows = result["data"]["result"].as_array().unwrap(); + assert_eq!(rows.len(), 2, "{result}"); + for (instance, exact) in [("a", 5.0), ("b", 13.0)] { + let row = rows + .iter() + .find(|row| row["metric"]["instance"] == instance) + .unwrap(); + let estimate = row["value"][1].as_str().unwrap().parse::().unwrap(); + assert!((estimate - exact).abs() / exact <= 0.05, "{result}"); + } + eprintln!("DISTINCT_WARM {result}"); + fallback_task.abort(); +} diff --git a/docs/design_docs/README.md b/docs/design_docs/README.md index 9695976af..70c0687d2 100644 --- a/docs/design_docs/README.md +++ b/docs/design_docs/README.md @@ -26,6 +26,7 @@ under [developer docs](../developer_docs/README.md). Other designs and profiles: +- [Evidence-dependent candidate selection](evidence-dependent-candidates.md) defines evidence ownership, logical selection, physical admission, exact fallback, and current proof limits. - [ASAPQuery compatibility profile](asapquery-compatibility-profile.md) - [Shape-aware ERP](shape-aware-erp-v1.md) - [Empirical observability execution plan](empirical-o11y-execution-plan.md) diff --git a/docs/design_docs/asapplanner-integration.md b/docs/design_docs/asapplanner-integration.md index 6272905c0..2776fdb21 100644 --- a/docs/design_docs/asapplanner-integration.md +++ b/docs/design_docs/asapplanner-integration.md @@ -387,6 +387,16 @@ that output a `stored_output_id` and emits matching writer/reader bindings; see | Plan read/write bindings | State references, format, partition rules and writer ownership | | `SummaryStore` | Owns `summary_definitions` and `stored_summaries`; the latter holds committed metadata and payload together | +Costs include initialization, ingestion updates, overlapping and retained state, +transmission, storage, merges, readouts, recurring queries, and shared producer +construction once. Compare candidates over the same data and demand scope. +Missing evidence is not zero cost. The backend supplies candidate estimates +through `candidate_cost()`, preferring applicable ERP benchmarks and otherwise +using its analytical model. Unsupported estimates remain unavailable; +the backend combines unit resources, data size, recurrence, and the bound +physical DAG into complete workload costs before publication. See the +[calculation model](evidence-dependent-candidates.md#backend-owned-workload-calculation). + ## Compiler contract The compiler consumes: diff --git a/docs/design_docs/evidence-dependent-candidates.md b/docs/design_docs/evidence-dependent-candidates.md new file mode 100644 index 000000000..83c57b87b --- /dev/null +++ b/docs/design_docs/evidence-dependent-candidates.md @@ -0,0 +1,319 @@ +# Evidence-dependent candidate selection and deployment + +Status: evidence and workload costing implemented by backend PR #761, building +on the API adaptation in #768, against ASAPPlanner #455 +(`2ec3fc80`). This document defines the backend decision boundary for Planner +issue #454 and backend issue #752. It does not claim that every retained +candidate has a deployable implementation. + +## Decision and ownership + +Keep constructible candidates visible when external evidence is absent. +Separate candidate existence, logical selection, and deployment admission: +none implies the next. Otherwise the backend either loses a candidate it +could prove valid or deploys one whose guarantee has never been established. + +| Decision | Owner | Required behavior | +| --- | --- | --- | +| Construct semantic candidates | Planner | Preserve unknown guarantees; reject known-invalid evidence and impossible shapes | +| Supply external facts | Backend | Bind evidence to the query, data population, snapshot and validity period | +| Derive accuracy and select logical roots | Planner, under backend models and policy | Respect the root accuracy target; missing proof is not certification | +| Bind and admit a deployment | Backend | Verify concrete execution support and compute complete workload resource cost | + +The backend still invokes Planner's workload search and global selection. It +does not introduce a second semantic optimizer. Physical binding preserves the +selected DAG's operators, grouping, windows and dependencies; a semantic change +requires a new selection. Single-query and workload selection use the same +costed Planner search; the first-candidate helper has been removed. + +## Decision flow + +```mermaid +flowchart TD + Input[Queries, accuracy targets and optional backend evidence] --> Validate[Validate evidence scope and validity] + Validate -->|Invalid supplied evidence| Error[Reject request with reason] + Validate -->|Valid or absent evidence| Search[Planner search retains constructible candidates] + Search --> Inspect[Explain known and unknown candidate properties] + Search --> Select[Planner global selection under backend policy] + Select --> Exact[Explicit exact fallback when no certified summary is selected] + Select --> Bind[Bind selected logical DAG to concrete execution] + Bind --> Admit[Check guarantees, runtime support and computed workload cost] + Admit -->|Pass| Publish[Publish coherent physical plan] + Admit -->|Fail| Reject[Reject deployment] +``` + +Exact fallback is part of normal logical planning. A directly supplied summary +plan with missing or unknown readout guarantees fails physical compilation; +there is no promise that every compilation error retries another candidate. +An exact route must itself be available under the deployment's existing policy. + +## Evidence contract + +Evidence belongs to an exact query text, full data workload and data snapshot. +It also names its source, observation time and validity window. The backend +rejects mismatched, expired, future-dated or invalid records before selection. +Discovery without a workload quote needs an explicit data snapshot; when both +are supplied, their snapshot identities must agree. Queries with individual +certificates are isolated during selection so another query cannot borrow them. + +| Family | Facts that can justify a candidate | Missing-proof behavior | +| --- | --- | --- | +| DDSketch quantile ratio | Enforced input bounds and maximum sample count for each exact operand | Ratio remains visible with unknown propagated accuracy | +| Hydra | Shared-grid collision bound and failure probability | Missing bounds remain unknown | +| TopK | Selected lower bound, excluded upper bound and interval failure probability | No membership certificate is invented | +| Relative composition | Applicable non-negativity, cardinality and distribution facts | Unsupported propagation remains unknown | +| HLL / ERP readouts | A valid accuracy model including the required confidence guarantee | RSE or observed maximum error alone cannot certify the readout | + +Quantile domains describe an enforced source contract, not observed sample +extrema. Supplied TopK intervals must be complete and strictly separate selected +from excluded items. Omitted facts remain unknown; malformed supplied evidence +is rejected rather than treated as absent. The older TopK evidence interface +remains compatible; the scoped contract is the path for new producers. + +The backend validates the supplied record's scope and consistency. It does not +derive a source-domain proof from samples or establish the truth of a producer's +claimed contract. Producing valid external proofs remains an upstream duty. + +### Bounded classic HLL confidence + +Scoped evidence may carry `hll: {"model": +"asap-classic64-uniform-hash-linear-counting-v1", "max_distinct_per_readout": 128}`. +This declares an enforced source-domain upper bound for **each complete readout +population**, including the union of all merged panes, and the independent +uniform bucket-hash assumption. Series count, a sampled distinct count, and +ERP observed maxima do not establish this contract. The bound is supplied by +the source-contract owner; the backend validates its query/data/snapshot/time +scope, not the truth of the external source assertion. + +The model supports declared upper bounds from 1 through 4096 and precisions +4 through 18. It only certifies parameters that keep every permitted population +in classic HLL's linear-counting branch. A finite collision-arrival bound gives +failure probability for the requested relative error. Sizing searches for the +smallest supported precision meeting the same epsilon/delta contract. Explain +retains the model, population limit, hash assumption and numerical guarantee. + +The implementation is bound to the backend-local Regular HLL estimator; +collector estimators, HIP, MLE and unbounded populations are not certified by it. +Missing contracts retain generic HLL's unknown probability; infeasible targets +retain exact execution. ERP resources can still price the selected parameters, +but ERP error maxima cannot override this confidence model. Each readout's +probability is not a simultaneous guarantee for an entire dashboard. + +## Accuracy, runtime and cost remain separate + +A known accuracy guarantee does not establish executor support. The physical +compiler checks the executable DAG and runtime policy, and rejects summary +readouts whose guarantee is absent or contains unknown terms. Unknown support +must not be reported as deployment approval. + +Missing numerical cost remains unavailable, never zero. The backend implements +Planner's `candidate_cost()` directly; it does not enable uncosted legacy +selection. A cost estimate only supports logical selection. Publication requires complete backend-computed resource costs or an explicit, +applicable provider override. A cheap candidate cannot bypass +accuracy or runtime admission. + +Explain records accuracy status and symbolic guarantee, runtime support status, +cost availability, and the selection reason separately. A selected candidate +is labelled as pending backend binding. Rejected candidates retain their +reported reasons. This distinguishes missing proof, unsupported execution, +missing comparable cost and a candidate that simply lost the ranking. + +## ERP and analytical cost models + +ERP is the benchmark source for this path. The existing ERP artifact and +runtime-observation input feed both parameter planning and resource estimation; +there is no separate benchmark upload contract for candidate costs. + +```mermaid +flowchart TD + Profile[ERP benchmark artifact] --> Match[Match implementation, exact parameters and data population] + Observations[Declared distribution or validated runtime shape] --> Match + Candidate[Planner candidate with concrete parameters] --> Match + Match -->|Applicable profile| Measured[ERP resource estimate] + Match -->|No applicable profile| Analytical[Backend analytical resource estimate] + Measured --> Cost[Backend candidate_cost and source explanation] + Analytical --> Cost + Cost --> Selection[Planner logical selection] + Proof[Accuracy evidence and guarantee model] --> Selection + Selection --> Physical[Physical binding and complete workload costing] + Physical --> Admission[Deployment admission] +``` + +**Priority is applicable ERP, then analytical, then unavailable.** A larger +measured value still overrides a smaller analytical estimate. ERP matching +uses its existing implementation/runtime filters, exact sketch parameters, +minimum trial count, distribution equality or configured bounded shape match. +Catalog-scoped observations retain their existing population and freshness +validation. A profile for another parameter point or implementation cannot be +substituted. ERP v1 artifacts themselves have no per-record expiry field; do +not confuse runtime-observation freshness with a benchmark expiry guarantee. + +Cost lookup does not certify empirical accuracy: measured resource usage can +be useful even when observed error does not meet a target or cannot establish +its failure probability. The cost path reuses ERP profile matching without an +empirical-error threshold; the accuracy path separately checks the requested +guarantee. In particular, an explicit confidence target must not erase ERP +resource measurements merely because ERP v1 cannot prove that confidence. +Existing empirical-only accuracy policy still applies to accuracy decisions. + +The first backend model, `backend_state_footprint_v1`, estimates **retained +state bytes per partition** for local candidate selection. It uses ERP's +`memory_bytes` when applicable; otherwise it reuses the backend's existing +analytical retained-state formulas: matrix dimensions and heap capacity, +KLL capacity, HLL registers, fixed accumulator allowance and the current +DDSketch allowance. These are estimates, not measured limits or a complete +workload cost. Reachable shared state nodes are counted once. For multiple +observed populations the ERP proxy uses the largest matched partition, without +pooling the populations. Shared-grid families need their own applicable model; +an independent sketch profile is not a Hydra-grid measurement. + +The estimate excludes population counts, pane multiplicity, CPU, transmission +and other deployment costs. An applicable ERP profile also ranks sketch-family +candidates using the same byte estimates, with analytical estimates for the +unmeasured peers. Without an applicable profile, existing family preference +order remains the fallback policy. +It does not mix ERP CPU seconds with analytical bytes or claim to minimize +complete workload cost. Raw rewrites and exact compositions have no state-byte +estimate here; exact composition retains its separate measured recurring-cost +model. Unsupported shapes remain uncosted. + +Explain attaches the model, unit, source (`erp`, `analytical`, or `mixed`) and +ERP record IDs to each available estimate. Final deployment selection combines these unit resources with physical demand +as described below. A profile alone neither prices the workload nor approves +publication. + +Acceptance covers ERP precedence even when measured cost is higher, matching +parameters/implementation/population, insufficient trials, invalid measurements, +analytical fallback, unavailable shapes, explain provenance, and independent +accuracy and publication gates. + +## Backend-owned workload calculation + +Both backend-local startup and the PromQL/MetricsQL compile-and-publish API +compute workload costs when `workload_cost_evidence` is absent. Callers supply +queries, recurrence, data facts, deployment capabilities and optional ERP; they +do not need to manufacture complete candidate quotes. The backend binds the +bounded candidate inventory, constructs its coverage manifest, calculates every +component, and selects the lowest comparable total among feasible candidates. +The logical state-footprint proxy above remains a separate early selection +model; physical selection compares only the enumerated candidates, not every +possible logical DAG or window implementation. + +```mermaid +flowchart LR + ERP[Applicable ERP unit resources] --> Units[ERP first; analytical fallback] + Data[Fresh rate, cardinality, cadence, volume] --> Demand[Physical workload quantities] + Queries[Query frequency and common horizon] --> Demand + Plan[Bound DAG, shared state, panes, locations, transport] --> Demand + Units --> Compute[CPU seconds, memory byte-seconds, network bytes] + Demand --> Compute + Compute --> Compare[Common weights and complete component coverage] + Compare --> Select[Lowest-cost feasible physical candidate] +``` + +`backend-workload-resources-v1` is an explicit analytical reference model, not a +calibrated prediction or a monetary quote. It computes a resource vector before +weighting it: `cost = CPU_seconds + 1e-9 * memory_byte_seconds + 1e-8 * network_bytes`. +These fixed versioned weights express a default tradeoff; a deployment can still +supply complete calibrated provider quotes as an explicit override. Override +quotes are validated as one model across the inventory; missing/invalid quotes +are not silently patched with analytical values in unrelated units. + +For horizon H, input rate R, query interval I seconds and partition estimate P: + +| Component | Backend calculation | +| --- | --- | +| Source | R × H samples per distinct source/location; exact sources also retain raw samples for the required lookback plus series metadata | +| State initialization/retirement | P × (initial retained states + state rotations during H); allocation charges estimated bytes, retirement charges state count | +| State updates | R × H × overlapping full windows; panes receive each input once; rollup levels add their child-to-parent merges | +| State residency | P × retained physical states × unit state bytes × H | +| Transport | Rule emission/checkpoint count × partitions × retained states × estimated encoded bytes, plus serialization, decoding and receiving merges | +| Summary reads | H / I × P × panes read; decode each pane, merge additional panes, then charge the selected state's query/readout unit cost | +| Other query operators | Traverse each reachable physical node once per evaluation, using propagated row estimates and an explicit analytical operation model | +| Native exact subtrees | Source sample count for the lookback or full data volume, syntax complexity and a sorting allowance; charge each subtree's returned data separately from final output | +| Result | Result row estimate × row bytes × H / I, including serialization and delivery | + +ERP supplies state memory and per-update, per-merge and per-query CPU seconds. +The backend uses the actual workload quantities, not ERP's example invocation +counts. Applicability checks are the same implementation/parameter/runtime/ +population/shape/trial checks used by candidate costs. Multiple matched +population profiles use the maximum of each resource dimension per partition. +ERP measurements override analytical estimates even when more expensive. They +do not establish accuracy guarantees or runtime availability. + +Unmeasured dimensions use versioned analytical assumptions: 1e-7 CPU seconds per +item, 1e-9 CPU seconds per byte, 24 bytes per raw sample, and a 256-byte series/ +result-row allowance. Sketch update work scales with log2(state bytes / 16), +while merge/read work scales with state bytes. Native exact work uses +`(samples + 1) × log2(max(samples, 2)) × canonical syntax object count × item CPU`. +This is a transparent complexity proxy, not a benchmark of Prometheus; local +arithmetic/reduction/sort and joins have their own row-based estimates. + +The current data contract has workload-level facts, not a complete per-source +histogram. The model explicitly replicates the workload rate/cardinality to +each distinct source and collector rather than claiming known selectivities. +Grouped states use input cardinality as a group-count estimate. Without a fresh +cardinality, it estimates `ceil(R × scrape_interval)` under the stated assumption +of one sample per active series per scrape; a zero rate cannot establish an +unknown population. At-rest/full-history costing requires fresh ingestion volume. +Unknown rate/cadence, unsupported operators, invalid values and overflow make a +candidate unavailable. No partial total is admitted. + +Shared state and source upkeep are charged once per physical identity/location; +additional consumers add reads and outputs. For distributed plans, receiving +backend merges are charged in transport rather than again as raw updates. +Full-window overlap and pane retention are taken from the compiled layout; +rollup reads conservatively use base panes. Delta transport conservatively uses +full payload size and checkpoints; there is no unmeasured compression discount. +All recurring work uses the same horizon and original query demand. Existing +window implementation/lifecycle inputs still determine which physical layouts +are bound; their opaque weighted costs are not mixed with this resource model. + +Each candidate's `automatic_cost` report records the input data, decision time, +model/weights, assumptions, component resource vectors, workload multipliers and +applicable ERP record IDs. `component_costs` is the weighted projection of that +report, and covers exactly the existing manifest. Invalid provider overrides +remain explicit errors. Accuracy proofs, compiler capability checks and runtime +readiness/fallback policy remain independent admission requirements. + +Acceptance includes quote-free startup and HTTP compilation, ERP precedence and +implementation mismatch, frequency/data-size scaling, shared-state deduplication, +expired facts, overflow, complete coverage and provider-override compatibility. + +## Example and acceptance behavior + +For `quantile_over_time(0.9, data[5m]) / quantile_over_time(0.5, data[5m])`: + +1. Without operand-domain evidence, the DDSketch ratio remains inspectable but + has unknown accuracy. Normal planning preserves exact execution. +2. With valid, scoped operand contracts, Planner can derive the ratio guarantee + and check the explicit root target. Valid evidence alone does not guarantee + that the target is met or that this candidate wins selection. +3. A selected candidate still needs physical support and complete backend-computed + workload costs before publication. A stale or cross-query certificate rejects the request. + +Cross-family acceptance includes absent, partial, valid, invalid and stale +evidence, an explicit root accuracy target, unavailable cost, and unsupported +runtime operations. Explain must never call an uncertified candidate approved; +direct physical submission must not bypass the guarantee check. + +The current conservative policy changes behavior for HLL and ERP v1: relative +standard error and benchmark maximum error lack a calibrated tail probability. +Those paths use exact execution when no independent valid guarantee exists. +Re-enabling them requires an appropriate proof model, not merely more benchmark +samples or a favorable shape-match score. + +Related: [integration architecture](asapplanner-integration.md), +[shape-aware ERP](shape-aware-erp-v1.md), +[Planner evidence contract](https://github.com/ProjectASAP/ASAPPlanner/blob/2ec3fc80caa922c8e1f33aa05f60b7d787e73257/docs/design_docs/architecture/evidence-dependent-candidates.md). + +## Time precision at admission + +Source cadence, query lookback, ranges and offsets retain integral millisecond +precision through workload lowering and query publication. A 100 ms source is +not rejected or rewritten to one second before costing. Existing pane layout +contracts still express storage sizes in seconds; rounding a storage sizing +bound must not change the query's read interval. A temporal producer that cannot +implement a fractional range remains unsupported for that binding, while exact +execution preserves the original range. Level-3 acceptance uses the actual +replay cadence and still requires a local executable plan. diff --git a/docs/design_docs/shape-aware-erp-v1.md b/docs/design_docs/shape-aware-erp-v1.md index 5d04d99af..0f0a7fccf 100644 --- a/docs/design_docs/shape-aware-erp-v1.md +++ b/docs/design_docs/shape-aware-erp-v1.md @@ -22,8 +22,12 @@ than publishing a biased partial snapshot. Profiles with too few benchmark events, poor fit, ambiguous confidence, or excessive cardinality/parameter distance are misses. -On a hit, empirical parameters and measured atomic costs are used. On a miss, -malformed evidence, or drift, Hybrid mode retains the theoretical parameters; +On a hit, empirical parameters and measured atomic costs inform planning. +ERP resource precedence, analytical fallback, accuracy certification and +deployment admission follow the +[evidence-dependent candidate design](evidence-dependent-candidates.md#erp-and-analytical-cost-models). + +On a miss, malformed evidence, or drift, Hybrid mode retains the theoretical parameters; if the runtime cannot deploy them or they exceed its memory limit, compilation chooses exact execution. Empirical-only mode fails closed. diff --git a/docs/evaluation/e2e-physical-dag.md b/docs/evaluation/e2e-physical-dag.md index 0666cefbf..6876bead4 100644 --- a/docs/evaluation/e2e-physical-dag.md +++ b/docs/evaluation/e2e-physical-dag.md @@ -39,9 +39,10 @@ Planner owns query semantics, summary families, parameters and candidate selection. ERP can affect supported evidence-based choices, but supplying an artifact does not prove that it was eligible or used. Freshness, source/update semantics, parameters and accuracy constraints still apply. The checked-in demo -is not an empirical-ERP benchmark. For deployment, use the priced snapshot workflow in [execution calibration](../../tools/o11y-execution/CALIBRATION.md). -`compile_workload_artifact` requires complete workload quotes; do not relabel -demo costs as measured evidence. +is not an empirical-ERP benchmark. For deployment, the backend automatically computes workload costs from ERP or +analytical unit resources and physical demand. Optional calibrated overrides use +the [cost evidence workflow](../examples/workload-cost-evidence.md). Do not relabel +analytical demo costs as measured evidence. For the existing observation → ERP-selected KLL → installed HTTP correctness fixture, see [ERP process validation](../developer_docs/erp-process-validation.md): @@ -73,12 +74,11 @@ dot -Tsvg target/physical-dag-inspection/selected.dot \ -o target/physical-dag-inspection/selected.svg ``` -`compile_workload_artifact` calls the same evidence-required snapshot compiler -used by startup. Set `ASAPQUERY_PLANNING_SNAPSHOT` to a priced snapshot prepared -using the [cost evidence workflow](../examples/workload-cost-evidence.md). -The checked-in unquoted templates support candidate discovery only. The output -includes the selected plan, logical selection trace and complete cost comparison. -MetricsQL compilation requires quotes collected for that frontend. +`compile_workload_artifact` calls the same snapshot compiler used by startup. +Set `ASAPQUERY_PLANNING_SNAPSHOT` to the workload snapshot. Without an explicit +provider override it uses automatic ERP/analytical workload costing. The output +includes the selected plan, logical selection trace, resource assumptions and +complete cost comparison. Both PromQL and MetricsQL use this path. The compiler derives sibling plans from the selected post-ASAP DAG: diff --git a/docs/examples/workload-cost-evidence.md b/docs/examples/workload-cost-evidence.md index 64e60498c..7adaefcc7 100644 --- a/docs/examples/workload-cost-evidence.md +++ b/docs/examples/workload-cost-evidence.md @@ -1,10 +1,16 @@ # Complete workload cost evidence Planning snapshots use one schema, `snapshot_version: 2`. Version 1 is rejected. -Candidate discovery may omit `workload_cost_evidence`; compiling a deployable -snapshot requires complete, valid quotes and selects by complete workload cost. -There is no unquoted snapshot deployment path. The checked-in JSON examples are -discovery templates, not ready-to-deploy plans. +Deployment automatically calculates workload costs when `workload_cost_evidence` +is absent, using applicable ERP profiles and analytical estimates together with +the workload's data facts, query frequency and physical layout. Inspect +`cost_comparison` for candidate totals, resource breakdowns and assumptions. +The checked-in examples can exercise this path at their recorded decision time; +use current data/capability inputs for a live deployment. + +The following workflow is an **optional provider override** for deployments with +calibrated complete quotes. See the [automatic calculation design](../design_docs/evidence-dependent-candidates.md#backend-owned-workload-calculation) +for the default path. ## Workflow @@ -65,7 +71,9 @@ can change which bound workload is committed, not rewrite its semantics. All quotes use one provider model's common cost units. A horizon quote includes the complete stated partition's work, data volume/cardinality, maintained -groups and retention. Do not reuse a global ingestion rate as a per-metric rate. +groups and retention. A calibrated provider should supply per-source demand rather than infer it from +a global rate. The automatic reference model discloses conservative replication +when only workload-level facts are available. Per-evaluation quotes exclude upkeep already charged in horizon components. Sunk infrastructure may explicitly cost zero under the provider's documented decision boundary; unknown costs may not. From b285d07dafdbcb0d7d78c35e4dbdfaa912f4a523 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 03:21:45 +0000 Subject: [PATCH 03/80] test: admit legal grouped sum splits and reverse workload cost selection --- control_plane/tests/issue754_level1.rs | 173 ++++++++++++++++++++++++- 1 file changed, 167 insertions(+), 6 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 17c9b607f..876897718 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -36,8 +36,8 @@ enum ExpectedFamily { QuantileSketch, } -// These are semantic contracts for the installed query DAG, not a snapshot of -// generated node IDs or cost-dependent summary IDs. +// Expectations below are specific to this controlled fixture. Candidate +// semantics and cost-dependent placement are validated separately. fn expected_plan(name: &str) -> ExpectedPlan { match name { "spatial-sum" => ExpectedPlan { @@ -137,7 +137,7 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Option Vec { + candidates.to_vec() + } + fn candidate_cost( + &self, + candidate: &ReplacementSubDAG, + _: &TargetSubDAG<'_>, + ) -> Option { + let grouped = matches!(&candidate.replacement, Replacement::Summary(node) + if matches!(&node.expr, SummaryExpr::SummaryAgg { reduction: Reduction::Reduce(_), child, .. } + if matches!(child.expr, SummaryExpr::KeepPreAsap(_)))); + Some(Cost(if grouped == self.grouped { 1. } else { 1000. })) + } + } + let expression = "sum by (label_0) (sum_over_time(data[1m]))"; + let canonical = control_plane::query_parser::parse_query_expr_canonical( + expression, + planner_types::types::AccuracyTarget::Exact, + ) + .unwrap(); + let mut snapshot: Value = serde_json::from_str(include_str!( + "../../docs/examples/asapquery-planning-snapshot.json" + )) + .unwrap(); + snapshot["query_workload"]["repeating_queries"][0]["query"] = json!(expression); + let input: BackendLocalPlanningInput = serde_json::from_value(snapshot).unwrap(); + let (request, environment) = input.into_physical_compilation_request().unwrap(); + let mut plans = Vec::new(); + let mut candidates = Vec::new(); + for grouped in [false, true] { + let mut candidate = request.clone(); + candidate.queries[0].selected_plan_root = + control_plane::planner_selection::select_query(&canonical, &PreferSplit { grouped }) + .unwrap(); + let plan = DeploymentPlanCompiler + .compile_promql(candidate.clone(), environment.clone()) + .unwrap(); + candidates.push(candidate); + assert_eq!(assert_selected_plan("grouped-temporal-sum", &plan), None); + // A stored five-second pane cannot shorten the semantic minute read. + let mut incomplete = plan.clone(); + for entry in incomplete.query_plan.entries.values_mut() { + for node in entry.nodes.values_mut() { + if let QueryPlanNode::ReadMaterialization { binding } = node { + binding.readout_lookback_ms = Some(5_000); + } + } + } + assert!(std::panic::catch_unwind(|| assert_selected_plan( + "grouped-temporal-sum", + &incomplete + )) + .is_err()); + let entry = plan.query_plan.lookup(expression).unwrap(); + let root = &entry.nodes[&entry.root]; + let is_grouped = matches!(root, QueryPlanNode::ExactReadout { .. }); + assert_eq!( + is_grouped, grouped, + "controlled cost must change the executable split" + ); + plans.push(plan); + } + assert_ne!(plans[0].query_plan, plans[1].query_plan); + // Controlled scoped resource prices, not observed production measurements. + // Maintenance-heavy grouped output loses in the first fixture; expensive + // repeated query-side reduction makes it win in the second fixture. + for prefer_grouped in [false, true] { + let quotes = plans + .iter() + .zip(&candidates) + .enumerate() + .map(|(index, (plan, candidate))| { + let manifest = manifest(plan, &candidate.queries).unwrap(); + let unit_costs = manifest + .components + .iter() + .map(|(key, demand)| { + let grouped_state = index == 1 && key.starts_with("state:"); + let query_reduction = + demand.implementation["node"]["operator"]["kind"] == "aggregate"; + let cost = if (!prefer_grouped && grouped_state) + || (prefer_grouped && query_reduction) + { + 10_000. + } else { + 1. + }; + (key.clone(), cost) + }) + .collect(); + WorkloadQuote { + manifest, + unit_costs, + executable: true, + } + }) + .collect(); + let evidence = WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "grouped-sum-frontier-fixture".into(), + model_version: "controlled-maintenance-query-costs".into(), + observed_at_unix_ms: environment.observed_at_unix_ms, + valid_for_ms: environment.max_evidence_age_ms, + quotes, + }; + let selected = control_plane::physical::workload_cost::select_lowest_cost_candidate( + candidates.clone(), + environment.clone(), + &evidence, + ) + .unwrap(); + assert_eq!( + assert_selected_plan("grouped-temporal-sum", &selected), + None + ); + let entry = selected.query_plan.lookup(expression).unwrap(); + assert_eq!( + matches!(entry.nodes[&entry.root], QueryPlanNode::ExactReadout { .. }), + prefer_grouped + ); + let report = selected.cost_comparison.unwrap(); + let selected_cost = report.component_costs.values().sum::(); + let minimum = report + .candidate_evaluations + .iter() + .filter_map(|candidate| candidate.total_cost) + .fold(f64::INFINITY, f64::min); + assert_eq!(selected_cost, minimum); + } +} From e901822ab1a5f281b1d062db3c04f972a82fdd0d Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 03:30:49 +0000 Subject: [PATCH 04/80] fix: reject unavailable external execution before workload pricing --- control_plane/src/physical/compiler.rs | 24 +++++++++++ control_plane/src/physical/workload_cost.rs | 45 +++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 934da0b8c..6700c6a36 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -158,6 +158,8 @@ pub struct PhysicalCompilationRequest { pub planner_selection_trace: Vec, /// Enable a composable DAG with SummaryStore materializations and Prometheus exact subtrees. pub allow_mixed_summary_and_exact_execution: bool, + /// Deployment feasibility: external exact dependencies cannot be bound. + pub require_backend_local_execution: bool, /// Enabled optional candidate keys: None enables all eligible keys; an /// explicitly empty set enables none. These are not catalog definition IDs. pub enabled_materialization_keys: Option>, @@ -370,6 +372,9 @@ pub struct BackendLocalPlanningInput { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(deny_unknown_fields)] pub struct BackendLocalPhysicalInputs { + /// Constrain selection to local execution when no exact upstream is available. + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub require_backend_local_execution: bool, pub lifecycle_costs: LifecycleUnitCosts, pub evidence_observed_at_unix_ms: u64, pub evidence_valid_for_ms: u64, @@ -949,6 +954,9 @@ impl BackendLocalPlanningInput { PhysicalCompilationRequest { planner_selection_trace, allow_mixed_summary_and_exact_execution: true, + require_backend_local_execution: self + .physical_inputs + .require_backend_local_execution, enabled_materialization_keys: None, query_workload: Some(workload), data_workload: Some(data_workload), @@ -2252,6 +2260,20 @@ impl DeploymentPlanCompiler { reason: error.to_string(), })?; } + if request.require_backend_local_execution { + for entry in query_plan.entries.values() { + if entry.nodes.values().any(|node| matches!(node, + crate::query_plan::QueryPlanNode::ExactFallback { .. } + | crate::query_plan::QueryPlanNode::Logical { + operator: crate::query_plan::residual::ResidualQueryOperator::ExactSubquery { .. } + | crate::query_plan::residual::ResidualQueryOperator::CandidateExactSubquery { .. }, .. })) { + return Err(CompileError::Query { + query_id: entry.query_id.clone(), + reason: "external execution is unavailable in this deployment".into(), + }); + } + } + } query_plan.validate_against_catalog(&summary_catalog)?; let storage_routing = crate::emit::backend_wire::storage_routing_document( crate::emit::backend_wire::DEFAULT_TENANT, @@ -4901,6 +4923,7 @@ pub(crate) mod tests { planner_selection_trace: Vec::new(), canonical_roots: Vec::new(), allow_mixed_summary_and_exact_execution: false, + require_backend_local_execution: false, enabled_materialization_keys: None, query_workload: None, data_workload: None, @@ -7813,6 +7836,7 @@ pub(crate) mod tests { query_workload, data_workload, physical_inputs: BackendLocalPhysicalInputs { + require_backend_local_execution: false, lifecycle_costs: template.summary_lifecycle_inputs.costs, evidence_observed_at_unix_ms: 9_500, evidence_valid_for_ms: 60_000, diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 338dc5b0b..e56fc846e 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -914,6 +914,51 @@ mod tests { use super::super::compiler::BackendLocalPlanningInput; use super::*; + /// A deployment without external execution rejects native candidates before pricing. + #[test] + fn local_only_deployment_rejects_external_candidate_before_pricing() { + let mut value = serde_json::to_value(fixture()).unwrap(); + value["implementation"]["require_backend_local_execution"] = json!(true); + let input: BackendLocalPlanningInput = serde_json::from_value(value).unwrap(); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let native = candidates + .iter() + .find(|candidate| { + candidate.queries.iter().all(|query| { + matches!( + query.selected_plan_root.expr, + planner_types::post_asap::SummaryExpr::KeepPreAsap(_) + ) + }) + }) + .expect("native candidate remains inspectable") + .clone(); + let error = DeploymentPlanCompiler + .compile_promql(native, environment) + .unwrap_err(); + assert!( + error + .to_string() + .contains("external execution is unavailable"), + "{error}" + ); + let selected = input.compile_promql().unwrap(); + assert!(selected.query_plan.entries.values().all(|entry| entry + .nodes + .values() + .all(|node| !matches!(node, crate::query_plan::QueryPlanNode::ExactFallback { .. })))); + let report = selected.cost_comparison.unwrap(); + assert!(report + .candidate_evaluations + .iter() + .any(|candidate| candidate + .unavailable_reason + .as_ref() + .is_some_and(|reason| reason.contains("external execution is unavailable")) + && candidate.total_cost.is_none())); + } + /// Deployment computes and compares complete costs without external quotes. #[test] fn deployment_automatically_prices_workload() { From 04ea95c19704eb6db8de577a863d1fe393272e62 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 03:42:16 +0000 Subject: [PATCH 05/80] fix: supply local execution policy in planning endpoint --- control_plane/src/main.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index 303caaef3..5b4356756 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -662,6 +662,7 @@ fn compile_physical_plan_request( queries, allow_mixed_summary_and_exact_execution: request.target == physical::compiler::PhysicalDeploymentTarget::BackendLocalRemoteWrite, + require_backend_local_execution: false, enabled_materialization_keys: None, topk_membership_evidence_by_query_id: request.evidence, exact_composition_costs: request.exact_composition_costs, From 44fe42c733ae96e16cb19a38e44ed200b8d09ce8 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 04:02:09 +0000 Subject: [PATCH 06/80] test: cover local current-series count candidates --- control_plane/src/physical/compiler.rs | 1 + control_plane/src/physical/workload_cost.rs | 29 +++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 6700c6a36..24d03460e 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -4101,6 +4101,7 @@ pub(crate) mod tests { "quantile by (job) (0.99, a)", "topk by (job) (1, a)", "topk by (job) (5, a)", + "count by (job) (a)", ]; snapshot.query_workload.repeating_queries = Some( queries diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index e56fc846e..2958399fd 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -959,6 +959,35 @@ mod tests { && candidate.total_cost.is_none())); } + /// Instant counts select current membership, never accumulated observations. + #[test] + fn local_grouped_count_has_a_bindable_candidate() { + let mut input = fixture(); + input.workload_cost_evidence = None; + input.physical_inputs.require_backend_local_execution = true; + input.data_workload.data_ingestion_interval.value = + Some(planner_types::workload::DurationMs(60_000)); + input.physical_inputs.scrape_interval_ms = 60_000; + let queries = input.query_workload.repeating_queries.as_mut().unwrap(); + queries.truncate(1); + queries[0].query = planner_types::workload::Query("count by(job)(m)".into()); + let plan = input.compile_promql().unwrap(); + assert!(plan + .query_plan + .entries + .values() + .all(|entry| entry.nodes.values().any(|node| matches!( + node, + crate::query_plan::QueryPlanNode::Logical { + operator: crate::query_plan::residual::ResidualQueryOperator::CurrentSeries { + readout: asap_types::query_plan::current_series::SeriesReadout::Count, + .. + }, + .. + } + )))); + } + /// Deployment computes and compares complete costs without external quotes. #[test] fn deployment_automatically_prices_workload() { From ff6ab6c4646b0f4d9e394b1cba4a376997d65b57 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 04:04:49 +0000 Subject: [PATCH 07/80] fix: retain population candidates in mixed workloads --- control_plane/src/physical/workload_cost.rs | 34 ++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 2958399fd..a3d191a2b 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -779,11 +779,7 @@ pub fn select_candidates( pub fn enumerate_exact_and_materialized_candidates( request: PhysicalCompilationRequest, ) -> Result, CompileError> { - let already_selected = super::maintained_population::supported(&request); let mut candidates = materialization_candidates(request)?; - if already_selected { - return Ok(candidates); - } let roots: Vec<_> = candidates .last() .expect("exact alternative") @@ -959,6 +955,36 @@ mod tests { && candidate.total_cost.is_none())); } + /// Selecting one population must not suppress candidates for other roots. + #[test] + fn existing_population_does_not_suppress_other_population_candidates() { + let mut input = fixture(); + let queries = input.query_workload.repeating_queries.as_mut().unwrap(); + let template = queries[0].clone(); + *queries = ["quantile by(job)(0.9,m)", "count by(job)(m)"] + .into_iter() + .map(|q| { + let mut entry = template.clone(); + entry.query = planner_types::workload::Query(q.into()); + entry + }) + .collect(); + let (mut request, _) = input.into_physical_compilation_request().unwrap(); + let strategy = asap_aware_mapping::maintained_population::MaintainedPopulationStrategy::new( + &request.canonical_roots, + ); + request.queries[0].selected_plan_root = + strategy.candidate(&request.canonical_roots[0]).unwrap(); + request.queries[1].selected_plan_root = + crate::planner_selection::keep_pre_asap(&request.canonical_roots[1]).unwrap(); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + assert!(candidates + .iter() + .any(|candidate| candidate.queries.iter().all(|query| { + super::super::maintained_population::supported_node(&query.selected_plan_root) + }))); + } + /// Instant counts select current membership, never accumulated observations. #[test] fn local_grouped_count_has_a_bindable_candidate() { From e8f5686bc21fbd58fa97b887c5740a35a4000f96 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 04:17:58 +0000 Subject: [PATCH 08/80] refactor: delegate candidate winner selection to shared Planner --- control_plane/src/physical/compiler.rs | 42 ++++++++++++++++++++- control_plane/src/physical/workload_cost.rs | 39 ++++++++++++------- 2 files changed, 66 insertions(+), 15 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 24d03460e..149a03a0b 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -2675,9 +2675,49 @@ pub fn select_post_asap( delete: false, }, ); + // These fixtures exercise collector heap transport. Collector fixtures do + // not offer backend-only temporal value readouts as a physical capability. + struct CollectorFixtureModel(ControlPlaneCostModel); + impl asap_aware_mapping::CostModel for CollectorFixtureModel { + fn rank_candidates( + &self, + intent: &planner_types::pre_asap::AggIntent, + candidates: &[planner_types::post_asap::SketchAlgorithm], + ) -> Vec { + self.0.rank_candidates(intent, candidates) + } + fn size_params( + &self, + kind: planner_types::post_asap::SketchAlgorithm, + intent: &planner_types::pre_asap::AggIntent, + eps: f64, + delta: f64, + ) -> planner_types::post_asap::SketchParams { + self.0.size_params(kind, intent, eps, delta) + } + fn candidate_cost( + &self, + candidate: &asap_aware_mapping::ReplacementSubDAG, + target: &asap_aware_mapping::TargetSubDAG<'_>, + ) -> Option { + self.0.candidate_cost(candidate, target) + } + fn summary_support_evidence(&self, summary: &SummaryNode) -> Option { + if matches!( + summary.expr, + SummaryExpr::ValueOperation { + operation: planner_types::post_asap::ValueOperation::Limit { .. }, + .. + } + ) { + return Some(false); + } + self.0.summary_support_evidence(summary) + } + } crate::planner_selection::select_query_with_models( expr, - &model, + &CollectorFixtureModel(model), &DefaultAccuracyModel, &QueryEvidence { topk: evidence, diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index a3d191a2b..8a7848717 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -670,13 +670,7 @@ pub fn select_candidates( let mut comparison_workload = None; let mut comparison_inputs = None; let mut candidate_evaluations = Vec::new(); - let mut best_index = 0; - let mut best: Option<( - Cost, - CompiledPhysicalPlan, - WorkloadCostManifest, - BTreeMap, - )> = None; + let mut priced_candidates = Vec::new(); for candidate in candidates { if evidence.is_none() { let inputs = json!({"data":candidate.data_workload,"erp":candidate.erp}); @@ -737,10 +731,13 @@ pub fn select_candidates( description.status = CandidateEvaluationStatus::Unselected; description.total_cost = Some(cost.0); candidate_evaluations.push(description); - if best.as_ref().is_none_or(|(previous, ..)| cost < *previous) { - best_index = candidate_evaluations.len() - 1; - best = Some((cost, plan, manifest, components)); - } + priced_candidates.push(Ok(( + cost, + plan, + manifest, + components, + candidate_evaluations.len() - 1, + ))); } Err((status, reason)) => { description.status = status; @@ -749,13 +746,27 @@ pub fn select_candidates( } } } - let (_, mut plan, selected_manifest, component_costs) = best.ok_or_else(|| { + let selected = asap_physical_operators::physical_planner::select_candidate( + priced_candidates, + |(cost, _, manifest, _, _)| { + Ok(Some( + asap_physical_operators::physical_planner::CandidateCost { + workload_scope: serde_json::to_string(&manifest.workload).map_err(|error| { + asap_physical_operators::Error::Invalid(error.to_string()) + })?, + horizon_seconds: manifest.horizon_seconds, + total_cost: cost.0, + }, + )) + }, + ) + .map_err(|error| { CompileError::Candidates( json!({"status": "all_infeasible", "logical_selection": planner_selection_trace, - "candidates": candidate_evaluations}), + "candidates": candidate_evaluations, "selection_error": error.to_string()}), ) })?; - // Exactly the winner retained by the existing strict-less-than selector. + let (_, mut plan, selected_manifest, component_costs, best_index) = selected.candidate; candidate_evaluations[best_index].status = CandidateEvaluationStatus::Selected; plan.cost_comparison = Some(CandidatePlanSelectionReport { planner_selection_trace, From 36b6176dd61b1e19ae4b931d78d424e13e43f4ae Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 05:15:37 +0000 Subject: [PATCH 09/80] Use scoped fixture evidence after the accuracy contract extension --- control_plane/src/physical/compiler.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 17a50cf4e..149a03a0b 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -2719,7 +2719,11 @@ pub fn select_post_asap( expr, &CollectorFixtureModel(model), &DefaultAccuracyModel, - &QueryEvidence(evidence), + &QueryEvidence { + topk: evidence, + scoped: None, + now_ms: 0, + }, ) } From 395f026055e3496e8914bfb744fd011ab2614388 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 17:33:25 +0000 Subject: [PATCH 10/80] fix(costing): use deployed output routing identity after SDS split --- .../src/physical/workload_cost/automatic.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index 127b90d18..7257bc9be 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -221,7 +221,7 @@ pub(super) fn estimate( .find(|m| m.policy_fingerprint() == schema.materialization.fingerprint()) .ok_or_else(|| invalid("missing materialization"))?; states.insert( - schema.materialization.0, + schema.materialization.fingerprint(), state(m, request, cardinality as u64)?, ); } @@ -379,7 +379,7 @@ pub(super) fn estimate( return Err(invalid("unknown transmission cadence")); } let s = states - .get(&rule.materialization.0) + .get(&rule.materialization.fingerprint()) .ok_or_else(|| invalid("unknown transport state"))?; let checkpoints = rule .full_checkpoint_every_ms @@ -396,7 +396,11 @@ pub(super) fn estimate( * s.retained; let bytes = frames * s.profile.memory_bytes; insert( - format!("transport:{}:{}", rule.producer_id, rule.materialization.0), + format!( + "transport:{}:{}", + rule.producer_id, + rule.materialization.fingerprint() + ), resources( bytes * CPU_PER_BYTE * 2.0 + frames * s.profile.merge_cpu_seconds, 0.0, @@ -429,7 +433,7 @@ pub(super) fn estimate( let cpu = match node { Node::ReadMaterialization { binding } => { let s = states - .get(&binding.materialization.0) + .get(&binding.materialization.fingerprint()) .ok_or_else(|| invalid("unknown read state"))?; let panes = if binding.full_window_slide_ms.is_some() { 1.0 From 78a2927cc6a691197b13252cc2da8b6e2c51496c Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 18:21:56 +0000 Subject: [PATCH 11/80] docs: export selected issue 754 plans for human review --- .../issue754-human-review/README.md | 65 + .../issue754-human-review/grouped-rate.dot | 23 + .../issue754-human-review/grouped-rate.json | 2565 +++++++++++++ .../issue754-human-review/grouped-rate.md | 145 + .../grouped-temporal-sum.dot | 21 + .../grouped-temporal-sum.json | 2546 +++++++++++++ .../grouped-temporal-sum.md | 130 + .../issue754-human-review/quantile-ratio.dot | 26 + .../issue754-human-review/quantile-ratio.json | 3376 +++++++++++++++++ .../issue754-human-review/quantile-ratio.md | 148 + .../issue754-human-review/render.py | 132 + .../issue754-human-review/source-commit.txt | 1 + .../spatial-quantile.dot | 21 + .../spatial-quantile.json | 2482 ++++++++++++ .../issue754-human-review/spatial-quantile.md | 135 + .../issue754-human-review/spatial-sum.dot | 21 + .../issue754-human-review/spatial-sum.json | 2189 +++++++++++ .../issue754-human-review/spatial-sum.md | 130 + .../issue754-human-review/spatial-topk.dot | 11 + .../issue754-human-review/spatial-topk.json | 781 ++++ .../issue754-human-review/spatial-topk.md | 82 + .../temporal-quantile.dot | 21 + .../temporal-quantile.json | 2295 +++++++++++ .../temporal-quantile.md | 130 + .../issue754-human-review/temporal-rate.dot | 21 + .../issue754-human-review/temporal-rate.json | 2021 ++++++++++ .../issue754-human-review/temporal-rate.md | 125 + .../issue754-human-review/temporal-sum.dot | 21 + .../issue754-human-review/temporal-sum.json | 2002 ++++++++++ .../issue754-human-review/temporal-sum.md | 125 + .../issue754-human-review/topk-rate.dot | 25 + .../issue754-human-review/topk-rate.json | 2549 +++++++++++++ .../issue754-human-review/topk-rate.md | 163 + 33 files changed, 24528 insertions(+) create mode 100644 docs/evaluation/issue754-human-review/README.md create mode 100644 docs/evaluation/issue754-human-review/grouped-rate.dot create mode 100644 docs/evaluation/issue754-human-review/grouped-rate.json create mode 100644 docs/evaluation/issue754-human-review/grouped-rate.md create mode 100644 docs/evaluation/issue754-human-review/grouped-temporal-sum.dot create mode 100644 docs/evaluation/issue754-human-review/grouped-temporal-sum.json create mode 100644 docs/evaluation/issue754-human-review/grouped-temporal-sum.md create mode 100644 docs/evaluation/issue754-human-review/quantile-ratio.dot create mode 100644 docs/evaluation/issue754-human-review/quantile-ratio.json create mode 100644 docs/evaluation/issue754-human-review/quantile-ratio.md create mode 100644 docs/evaluation/issue754-human-review/render.py create mode 100644 docs/evaluation/issue754-human-review/source-commit.txt create mode 100644 docs/evaluation/issue754-human-review/spatial-quantile.dot create mode 100644 docs/evaluation/issue754-human-review/spatial-quantile.json create mode 100644 docs/evaluation/issue754-human-review/spatial-quantile.md create mode 100644 docs/evaluation/issue754-human-review/spatial-sum.dot create mode 100644 docs/evaluation/issue754-human-review/spatial-sum.json create mode 100644 docs/evaluation/issue754-human-review/spatial-sum.md create mode 100644 docs/evaluation/issue754-human-review/spatial-topk.dot create mode 100644 docs/evaluation/issue754-human-review/spatial-topk.json create mode 100644 docs/evaluation/issue754-human-review/spatial-topk.md create mode 100644 docs/evaluation/issue754-human-review/temporal-quantile.dot create mode 100644 docs/evaluation/issue754-human-review/temporal-quantile.json create mode 100644 docs/evaluation/issue754-human-review/temporal-quantile.md create mode 100644 docs/evaluation/issue754-human-review/temporal-rate.dot create mode 100644 docs/evaluation/issue754-human-review/temporal-rate.json create mode 100644 docs/evaluation/issue754-human-review/temporal-rate.md create mode 100644 docs/evaluation/issue754-human-review/temporal-sum.dot create mode 100644 docs/evaluation/issue754-human-review/temporal-sum.json create mode 100644 docs/evaluation/issue754-human-review/temporal-sum.md create mode 100644 docs/evaluation/issue754-human-review/topk-rate.dot create mode 100644 docs/evaluation/issue754-human-review/topk-rate.json create mode 100644 docs/evaluation/issue754-human-review/topk-rate.md diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md new file mode 100644 index 000000000..5a42551fa --- /dev/null +++ b/docs/evaluation/issue754-human-review/README.md @@ -0,0 +1,65 @@ +# Issue #754 plans for human review + +These are the ten **actual selected plans** exported by #728's existing Level 1 +fixture, not hand-written expected plans. This artifact does not record human +approval. No plan behavior or test assertion was changed for this export. + +Backend source revision is in [source-commit.txt](source-commit.txt); Planner is +pinned to `c27cd14b8e052ce1f4641c619488ad539ad71f56`. The source revision differs +from the export execution revision only by inherited documentation merges. + +Each page contains the full Planner operation payloads, dependency edges, output +column indices/types, timing, sort expressions, persisted boundaries, maintenance +windows and the installed query adapter. Raw JSON and DOT are retained beside it. +`fallback` in a Planner source payload is an IR tag: it does not by itself prove +that execution forwards to an exact backend. Inspect the bound QueryPlan and +Level 2 provenance to determine execution behavior. + +## Review order + +1. Follow source → transformation → grouping/window → readout for each query. +2. Check persisted producer nodes against read bindings and pane coverage. +3. For topk-rate, inspect the Sort input and column index, not just descending. +4. Check guarantees and admission evidence in raw JSON for approximate queries. + +The topk-rate export explicitly sorts `Column(1)` descending, partitioned by +column 2 (`label_0`). Its producer is `FinalizeExactAccumulator` over per-series +Rate state, with column 1 named `value`. The QueryPlan adapter has an implicit +value sort and does not itself serialize an explicit sort-key expression. +This exposes the relevant mapping for review; it is not an additional assertion. + +The grouped-temporal-sum cost-reversal test covers only that query. The other +selected plans use fixture costs; these exports do not prove production-optimal +placement or an exhaustive search over maintenance/query-time alternatives. + +Legacy `residual` module/type names still exist in code. They are not presented +here as a new architectural layer; renaming or removing that adapter is separate +from the bound-query SDS migration. + +| Query | PromQL | +| --- | --- | +| [grouped-rate](grouped-rate.md) | `sum by (label_0) (rate(data[1m]))` | +| [grouped-temporal-sum](grouped-temporal-sum.md) | `sum by (label_0) (sum_over_time(data[1m]))` | +| [quantile-ratio](quantile-ratio.md) | `quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])` | +| [spatial-quantile](spatial-quantile.md) | `quantile by (label_0) (0.9, data)` | +| [spatial-sum](spatial-sum.md) | `sum by (label_0) (data)` | +| [spatial-topk](spatial-topk.md) | `topk by (label_0) (3, data)` | +| [temporal-quantile](temporal-quantile.md) | `quantile_over_time(0.9, data[1m])` | +| [temporal-rate](temporal-rate.md) | `rate(data[1m])` | +| [temporal-sum](temporal-sum.md) | `sum_over_time(data[1m])` | +| [topk-rate](topk-rate.md) | `topk by (label_0) (3, rate(data[1m]))` | + +## Reproduce + +From the #728 worktree: + +```sh +ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \ + cargo test -p control_plane --test issue754_level1 --locked -- --test-threads=1 +``` + +The test also exports enumerated candidates into `candidates/`; the ten selected +plans are at the top level. Copy those `.json` and `.dot` files here and run +`python3 docs/evaluation/issue754-human-review/render.py` to regenerate the pages. +Actual execution and recovery evidence is maintained in the downstream +[bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). diff --git a/docs/evaluation/issue754-human-review/grouped-rate.dot b/docs/evaluation/issue754-human-review/grouped-rate.dot new file mode 100644 index 000000000..c9fb85791 --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-rate.dot @@ -0,0 +1,23 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_0_1 [label="ExactReadout\nRate"]; + query_0_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_2 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + query_0_2 -> query_0_1; + } +} diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json new file mode 100644 index 000000000..36a23c667 --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -0,0 +1,2565 @@ +{ + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + }, + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 3, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + }, + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Exact": { + "Aggregate": { + "having": null, + "measures": [ + { + "col": null, + "kind": "sum" + } + ], + "output_names": [ + "" + ], + "reduction": { + "Reduce": [ + 2 + ] + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 3 + } + }, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "aggregate", + "operation": "sum", + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "exact_readout", + "input": 2, + "readout": "rate" + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:4af1bdc6e5bab64c357c0c89ef18805faa08f220aa91e0ac7abc623c63876710", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:53c03cad8bb9b88fdddf35b6e57c192de4d4a0563c46a8d0fd914c992bb5a690" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 5849823772717530049, + "selected_manifest": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "sum by (label_0) (rate(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 1 + ], + "op": "logical", + "operator": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "kind": "aggregate", + "operation": "sum" + } + }, + "query": "sum by (label_0) (rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 2, + "op": "exact_readout", + "readout": "rate" + }, + "query": "sum by (label_0) (rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:2": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 11966640087163441478 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "sum by (label_0) (rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "query:compat-query-0:2": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:11966640087163441478:build": 1.0, + "state:backend:11966640087163441478:residency": 1.0, + "state:backend:11966640087163441478:retire": 1.0, + "state:backend:11966640087163441478:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:1881507fce13dcdd6c6b4401f63c944b6bcda96b87a9ee2d106b3fa3091692c0", + "logical_root_ids": [ + "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145" + ], + "physical_candidate_id": "asap-explain-v1:physical:64927444bd25ee414baae05725b6c90be53266df84357fc3ca672cbae891eec1", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 5849823772717530049, + "total_cost": 125.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:ef813d49b0c3a2323542994bb4b98f4d657ffa326afab67056acd811c434d15b", + "logical_root_ids": [ + "asap-explain-v1:root:12796b78853d3268e8d3cb900cc6b7b73e512c29e302c5f0c7a873c696750b40" + ], + "physical_candidate_id": "asap-explain-v1:physical:a928dbf49ff4d59446b8370710264536c9d833a6082e8a269782db2fb8b855ad", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 741363842036532054, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:4af1bdc6e5bab64c357c0c89ef18805faa08f220aa91e0ac7abc623c63876710", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:53c03cad8bb9b88fdddf35b6e57c192de4d4a0563c46a8d0fd914c992bb5a690" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md new file mode 100644 index 000000000..692e91bfd --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -0,0 +1,145 @@ +# grouped-rate + +`sum by (label_0) (rate(data[1m]))` + +[Raw selected plan](grouped-rate.json) · [DAG DOT](grouped-rate.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `3`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Exact":{"Aggregate":{"having":null,"measures":[{"col":null,"kind":"sum"}],"output_names":[""],"reduction":{"Reduce":[2]}}}}}` | `["0: label_0/utf8","1: sum/float64"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 3, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "aggregate", + "operation": "sum", + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "exact_readout", + "input": 2, + "readout": "rate" + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.dot b/docs/evaluation/issue754-human-review/grouped-temporal-sum.dot new file mode 100644 index 000000000..691e8e32e --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json new file mode 100644 index 000000000..0e587187f --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -0,0 +1,2546 @@ +{ + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "13322971198486020251": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + }, + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 13322971198486020251, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "materialization": 13322971198486020251, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 13322971198486020251 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + }, + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 398383639928265061, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum by (label_0) (sum_over_time(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 13322971198486020251, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "materialization": 13322971198486020251, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 13322971198486020251, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ab7db3bbc7ed1ca918df30762f2e4d4ca66325e8546b2f9153be4aacaf682440", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a5b4c98ba8245ef0e129d0eab4708d6c09cd95f618e94c04f6217731297ddd79", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": null, + "provenance": "LogicalRewrite", + "rank": 1, + "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", + "replacement_kind": "rewrite", + "runtime_support_status": "supported", + "selected": false, + "status": "unselected", + "strategy": "SemanticEquivalentRewriteStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0e6b3f0f76949706786820ecb64f81d600487bad6313d2b14fd1016d9e46c2a8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 2, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": false, + "status": "unselected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4b96313ced8c642aed61e3f2c024ec7ac4042550d5361f950b6ade8604710224" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:fc749bf69e7816ccedb27d1932cde9b3accecf1e46a74a65d259cfe4a1cff881", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:d580bc05eada559d4aea6ff30b91e4dc20fed51991fa964814a87e887a686fb8" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 398383639928265061, + "selected_manifest": { + "plan_id": 398383639928265061, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "sum by (label_0) (sum_over_time(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "sum" + }, + "query": "sum by (label_0) (sum_over_time(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 13322971198486020251, + "output_grouping": { + "keys": [ + "label_0" + ], + "mode": "reduce" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 13322971198486020251 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "sum by (label_0) (sum_over_time(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:13322971198486020251:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 13322971198486020251, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 13322971198486020251 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:13322971198486020251:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 13322971198486020251, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 13322971198486020251 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:13322971198486020251:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 13322971198486020251, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 13322971198486020251 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:13322971198486020251:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 13322971198486020251, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 13322971198486020251 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:13322971198486020251:build": 1.0, + "state:backend:13322971198486020251:residency": 1.0, + "state:backend:13322971198486020251:retire": 1.0, + "state:backend:13322971198486020251:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:69dfe9b7160b66582f2ed526083c112cb6642b98d20621a81208980ab9a3f8d9", + "logical_root_ids": [ + "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272" + ], + "physical_candidate_id": "asap-explain-v1:physical:16b3061c392376b3c856d9f47d62b6523e5815058b7bad4defbe76a9078320a6", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 398383639928265061, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:2af5314cfeabcb89885c97c3d9250f382dc0cc25a4590f8cc7376e1174cad6fe", + "logical_root_ids": [ + "asap-explain-v1:root:7580061ba297977ef92cef1e6c50eda173f4a390e1fa756b7982302118e9962d" + ], + "physical_candidate_id": "asap-explain-v1:physical:6dd9f2a995b4f4ca9127f702a0e6ed3041f63eae521acfe7e1432d4786c976c2", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 375190931036314940, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ab7db3bbc7ed1ca918df30762f2e4d4ca66325e8546b2f9153be4aacaf682440", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a5b4c98ba8245ef0e129d0eab4708d6c09cd95f618e94c04f6217731297ddd79", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": null, + "provenance": "LogicalRewrite", + "rank": 1, + "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", + "replacement_kind": "rewrite", + "runtime_support_status": "supported", + "selected": false, + "status": "unselected", + "strategy": "SemanticEquivalentRewriteStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0e6b3f0f76949706786820ecb64f81d600487bad6313d2b14fd1016d9e46c2a8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 2, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": false, + "status": "unselected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4b96313ced8c642aed61e3f2c024ec7ac4042550d5361f950b6ade8604710224" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:fc749bf69e7816ccedb27d1932cde9b3accecf1e46a74a65d259cfe4a1cff881", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:d580bc05eada559d4aea6ff30b91e4dc20fed51991fa964814a87e887a686fb8" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md new file mode 100644 index 000000000..ea1128ed5 --- /dev/null +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -0,0 +1,130 @@ +# grouped-temporal-sum + +`sum by (label_0) (sum_over_time(data[1m]))` + +[Raw selected plan](grouped-temporal-sum.json) · [DAG DOT](grouped-temporal-sum.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `1`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 13322971198486020251 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `13322971198486020251` → semantic definition `sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 13322971198486020251, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "materialization": 13322971198486020251, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.dot b/docs/evaluation/issue754-human-review/quantile-ratio.dot new file mode 100644 index 000000000..32daac6aa --- /dev/null +++ b/docs/evaluation/issue754-human-review/quantile-ratio.dot @@ -0,0 +1,26 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_0_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_0_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_0_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_0_2 [style=dashed, color=gray40, label="reads"]; + query_0_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_0_1 -> query_0_0; + query_0_3 -> query_0_0; + query_0_2 -> query_0_1; + query_0_2 -> query_0_3; + } +} diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json new file mode 100644 index 000000000..2c5e5a805 --- /dev/null +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -0,0 +1,3376 @@ +{ + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.0049751243781094535 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "2776719732314936823": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + }, + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 2776719732314936823, + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "materialization": 2776719732314936823, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true, + "alpha": 0.0049751243781094535 + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 2776719732314936823 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + }, + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.5 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "binary", + "operator": { + "checked_finite_division": false, + "checked_relative_division": false, + "kind": { + "Arithmetic": "Div" + }, + "vector_match": null + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 1, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 4, + "role": "Left", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Right", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "binary", + "inputs": [ + 1, + 3 + ], + "operator": "Div" + }, + "1": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 2776719732314936823, + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + }, + "materialization": 2776719732314936823, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "3": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.5 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 2776719732314936823, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "accuracy_evidence_scope": { + "data_snapshot_id": "issue-754-level1", + "hll": null, + "observed_at_unix_ms": 9500, + "query_id": "compat-query-0", + "source": "issue-754-finite-generator" + }, + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5315807d41445e58cc908ca80736716b0a548c0ab37be11f9408f1df13846652", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 131072.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 131072.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:612b6b11c321c663ec092e983ee396ec294bd79fe0be44f3bd7f20379deb7c9c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b5ccd7f3d5846d3abc31910f4a8707a1936f62136a2eea7c9153282db63187f8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 4, + "rejected": [ + { + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:12d0483f8c18a35ba1dc127a322b3963ff83e3838e1f084d743cdda6471061e2" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 5, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 6, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 14871479243635342203, + "selected_manifest": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 1, + 3 + ], + "op": "binary", + "operator": "Div" + }, + "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 2, + "op": "summary_estimate", + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:2": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 2776719732314936823, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "stored_output_id": 2776719732314936823 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:3": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 2, + "op": "summary_estimate", + "query": { + "kind": "quantile", + "q": 0.5 + } + }, + "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:2776719732314936823:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "group_by": [], + "materialization": 2776719732314936823, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "stored_output_id": 2776719732314936823 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:2776719732314936823:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "group_by": [], + "materialization": 2776719732314936823, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "stored_output_id": 2776719732314936823 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:2776719732314936823:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "group_by": [], + "materialization": 2776719732314936823, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "stored_output_id": 2776719732314936823 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:2776719732314936823:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "group_by": [], + "materialization": 2776719732314936823, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "stored_output_id": 2776719732314936823 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "query:compat-query-0:2": 30.0, + "query:compat-query-0:3": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:2776719732314936823:build": 1.0, + "state:backend:2776719732314936823:residency": 1.0, + "state:backend:2776719732314936823:retire": 1.0, + "state:backend:2776719732314936823:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:b0105d61d875bc883cfc596871f46b08cec8a8b3b07911bdc2de504e982e32b7", + "logical_root_ids": [ + "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c" + ], + "physical_candidate_id": "asap-explain-v1:physical:eb80befd041f21a1ef1f4361b31b8eb059116c72791e7ca7d9471882deb0fc4d", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 14871479243635342203, + "total_cost": 155.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:938638be7c5bc3ebbd96e5fc998b1f9091bd3f4d224aadb5e75fb58be466299f", + "logical_root_ids": [ + "asap-explain-v1:root:46f5e2592c1bfa71a74045bfd35806d0e3c763ac56002d25e0c5e4f657c25ebe" + ], + "physical_candidate_id": "asap-explain-v1:physical:39887308c366236c09380e80937606fd5b69c2de333031b5760f11ec2359f6e1", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5752356276213301876, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "accuracy_evidence_scope": { + "data_snapshot_id": "issue-754-level1", + "hll": null, + "observed_at_unix_ms": 9500, + "query_id": "compat-query-0", + "source": "issue-754-finite-generator" + }, + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5315807d41445e58cc908ca80736716b0a548c0ab37be11f9408f1df13846652", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 131072.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 131072.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:612b6b11c321c663ec092e983ee396ec294bd79fe0be44f3bd7f20379deb7c9c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b5ccd7f3d5846d3abc31910f4a8707a1936f62136a2eea7c9153282db63187f8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 4, + "rejected": [ + { + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:12d0483f8c18a35ba1dc127a322b3963ff83e3838e1f084d743cdda6471061e2" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 5, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 6, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md new file mode 100644 index 000000000..5d8a7ff65 --- /dev/null +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -0,0 +1,148 @@ +# quantile-ratio + +`quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])` + +[Raw selected plan](quantile-ratio.json) · [DAG DOT](quantile-ratio.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `4`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.0049751243781094535}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]}"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: ts/timestamp","1: value/float64"]` | +| 3 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.5}}}` | `["0: ts/timestamp","1: value/float64"]` | +| 4 | `[[2,"Left"],[3,"Right"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"binary","operator":{"checked_finite_division":false,"checked_relative_division":false,"kind":{"Arithmetic":"Div"},"vector_match":null}}` | `["0: ts/timestamp","1: value/float64"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 2776719732314936823 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `2776719732314936823` → semantic definition `sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true, + "alpha": 0.0049751243781094535 + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "binary", + "inputs": [ + 1, + 3 + ], + "operator": "Div" + }, + "1": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 2776719732314936823, + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + }, + "materialization": 2776719732314936823, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "3": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.5 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py new file mode 100644 index 000000000..82d9be9af --- /dev/null +++ b/docs/evaluation/issue754-human-review/render.py @@ -0,0 +1,132 @@ +"""Render checked-in Level 1 exports without changing plans or assertions.""" +import json +from pathlib import Path + +BASE = Path(__file__).parent + +def compact(value): + return json.dumps(value, separators=(',', ':'), ensure_ascii=False) + +def cell(value): + return '`' + compact(value).replace('|', '\\|') + '`' + +def operation(payload): + if payload['kind'] == 'fallback': + expr = payload['expression'] + time = expr.get('TimeRange', {}) + scan = time.get('child', expr).get('Scan') + if scan is not None: + return {'source': scan['source'], 'predicates': scan['predicates'], + 'range': time.get('range')} + return payload + +def dtype(value): + if isinstance(value, dict) and 'Plain' in value: + return value['Plain'] + return compact(value) + +def block(value): + return '```json\n' + json.dumps(value, indent=2) + '\n```\n' + +rows = [] +for path in sorted(BASE.glob('*.json')): + plan = json.loads(path.read_text()) + entry = next(iter(plan['query_plan']['entries'].values())) + lines = ['# ' + path.stem, '', '`' + entry['canonical_query'] + '`', '', + f'[Raw selected plan]({path.name}) · [DAG DOT]({path.stem}.dot)', '', + '## Planner-selected computation', '', + 'IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately.', ''] + for dag in plan['query_plan']['selected_dags'].values(): + lines += [f"Root: `{dag['root']}`.", '', '| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) |', '| --- | --- | --- | --- | --- |'] + for node in dag['nodes']: + deps = [[e['producer'], e['role']] for e in dag['edges'] if e['consumer'] == node['id']] + fields = [f"{i}: {f['name']}/{dtype(f['dtype'])}" for i, f in enumerate(node['output_schema']['fields'])] + lines.append(f"| {node['id']} | {cell(deps)} | {cell(node['output_state'])} | {cell(operation(node['payload']))} | {cell(fields)} |") + lines += ['', '### Sort expressions', ''] + found = False + for node in dag['nodes']: + sort_operation = node['payload'].get('operation', {}) + if not isinstance(sort_operation, dict) or 'Sort' not in sort_operation: + continue + found = True + lines += [f"Node `{node['id']}`: {cell(sort_operation['Sort'])}", ''] + for edge in dag['edges']: + if edge['consumer'] == node['id']: + producer = next(n for n in dag['nodes'] if n['id'] == edge['producer']) + lines += [f"Its input is node `{producer['id']}`: {cell(producer['payload'])}. Column indices refer to that producer's output schema above.", ''] + if not found: + lines += ['No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table.', ''] + lines += ['## Persisted boundaries', ''] + if not plan['precompute_plan'].get('executable_dags', {}): + lines += ['No precompute executable DAG is installed for this selected candidate.', ''] + for qid, installed in plan['precompute_plan'].get('executable_dags', {}).items(): + lines += [f'Binding for `{qid}`:', '', block(installed['binding'])] + for output_id, output in plan['summary_catalog']['outputs'].items(): + lines += [f"Stored output `{output_id}` → semantic definition `{output['definition_id']}`.", ''] + if not plan['summary_catalog']['outputs']: + lines += ['No summary stored-output binding. Maintained current-series input, when present, is visible in the DAG and QueryPlan.', ''] + lines += ['### Maintenance configuration', '', block([{k:v for k,v in m.items() if k not in ('semantic_fragment','original_yaml')} for m in plan['precompute_plan']['materializations']]), + '## Bound query execution', '', + 'This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable.', '', block(entry)] + (BASE / (path.stem + '.md')).write_text('\n'.join(lines)) + rows.append(f"| [{path.stem}]({path.stem}.md) | `{entry['canonical_query']}` |") + +intro = '''# Issue #754 plans for human review + +These are the ten **actual selected plans** exported by #728's existing Level 1 +fixture, not hand-written expected plans. This artifact does not record human +approval. No plan behavior or test assertion was changed for this export. + +Backend source revision is in [source-commit.txt](source-commit.txt); Planner is +pinned to `c27cd14b8e052ce1f4641c619488ad539ad71f56`. The source revision differs +from the export execution revision only by inherited documentation merges. + +Each page contains the full Planner operation payloads, dependency edges, output +column indices/types, timing, sort expressions, persisted boundaries, maintenance +windows and the installed query adapter. Raw JSON and DOT are retained beside it. +`fallback` in a Planner source payload is an IR tag: it does not by itself prove +that execution forwards to an exact backend. Inspect the bound QueryPlan and +Level 2 provenance to determine execution behavior. + +## Review order + +1. Follow source → transformation → grouping/window → readout for each query. +2. Check persisted producer nodes against read bindings and pane coverage. +3. For topk-rate, inspect the Sort input and column index, not just descending. +4. Check guarantees and admission evidence in raw JSON for approximate queries. + +The topk-rate export explicitly sorts `Column(1)` descending, partitioned by +column 2 (`label_0`). Its producer is `FinalizeExactAccumulator` over per-series +Rate state, with column 1 named `value`. The QueryPlan adapter has an implicit +value sort and does not itself serialize an explicit sort-key expression. +This exposes the relevant mapping for review; it is not an additional assertion. + +The grouped-temporal-sum cost-reversal test covers only that query. The other +selected plans use fixture costs; these exports do not prove production-optimal +placement or an exhaustive search over maintenance/query-time alternatives. + +Legacy `residual` module/type names still exist in code. They are not presented +here as a new architectural layer; renaming or removing that adapter is separate +from the bound-query SDS migration. + +| Query | PromQL | +| --- | --- | +''' +ending = ''' + +## Reproduce + +From the #728 worktree: + +```sh +ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \\ + cargo test -p control_plane --test issue754_level1 --locked -- --test-threads=1 +``` + +The test also exports enumerated candidates into `candidates/`; the ten selected +plans are at the top level. Copy those `.json` and `.dot` files here and run +`python3 docs/evaluation/issue754-human-review/render.py` to regenerate the pages. +Actual execution and recovery evidence is maintained in the downstream +[bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). +''' +(BASE / 'README.md').write_text(intro + '\n'.join(rows) + ending) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt new file mode 100644 index 000000000..975ca10d0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -0,0 +1 @@ +ca1122c373b6eb9e3a345ffdcfbe6164b4b1e15d diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.dot b/docs/evaluation/issue754-human-review/spatial-quantile.dot new file mode 100644 index 000000000..49af74e84 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-quantile.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_15fed25926ac7261 [label="materialization\npolicy_fp:15fed25926ac7261\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1584935399223751265) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:15fed25926ac7261\nwindow=5000ms\nlookback=Some(5000)"]; + materialization_15fed25926ac7261 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json new file mode 100644 index 000000000..d2650018e --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -0,0 +1,2482 @@ +{ + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.01 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "1584935399223751265": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + }, + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 1584935399223751265, + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "materialization": 1584935399223751265, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 5000, + "slide_ms": 10000, + "pane_origin_ms": 5000 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 1584935399223751265 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + }, + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "quantile by (label_0) (0.9, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 1584935399223751265, + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + }, + "full_window_slide_ms": 10000, + "materialization": 1584935399223751265, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 1584935399223751265, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:8c6676da545712b584409b2a54b01951de988b3590331c037bb25cd5f8a700c4", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:8622a13e6aae8c7c913e566434c07ee5f11f06ec8f716bae8f55169164b50165" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 3294188734724225991, + "selected_manifest": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "quantile by (label_0) (0.9, data)", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "input": 1, + "op": "summary_estimate", + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "query": "quantile by (label_0) (0.9, data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "binding": { + "full_window_slide_ms": 10000, + "materialization": 1584935399223751265, + "output_grouping": { + "keys": [ + "label_0" + ], + "mode": "reduce" + }, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000, + "stored_output_reference": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "stored_output_id": 1584935399223751265 + }, + "window_ms": 5000 + }, + "op": "read_materialization" + }, + "query": "quantile by (label_0) (0.9, data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1584935399223751265:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + } + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + } + }, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [ + "label_0" + ], + "materialization": 1584935399223751265, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "stored_output_id": 1584935399223751265 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1584935399223751265:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + } + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + } + }, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [ + "label_0" + ], + "materialization": 1584935399223751265, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "stored_output_id": 1584935399223751265 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1584935399223751265:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + } + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + } + }, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [ + "label_0" + ], + "materialization": 1584935399223751265, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "stored_output_id": 1584935399223751265 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1584935399223751265:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + } + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + } + }, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [ + "label_0" + ], + "materialization": 1584935399223751265, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "stored_output_id": 1584935399223751265 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:1584935399223751265:build": 1.0, + "state:backend:1584935399223751265:residency": 1.0, + "state:backend:1584935399223751265:retire": 1.0, + "state:backend:1584935399223751265:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:aacf2a06e00c23b41729f1dfb9eb2d7007928ff93dc0f7539f35a75e65a5b9ad", + "logical_root_ids": [ + "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180" + ], + "physical_candidate_id": "asap-explain-v1:physical:4873608f0478bf7a3e11bc6f042a0ea8ea446f89c4fd9ad26faf4659d544e358", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 3294188734724225991, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:531ad57ef0d96fbf11951310fb058acec24083565d8f35e99e9a59f106df66ca", + "logical_root_ids": [ + "asap-explain-v1:root:9b0654914a210104176f61ed642b0dc95ac6acc9b67c992f6ae2ff8858e165e4" + ], + "physical_candidate_id": "asap-explain-v1:physical:7b3a3d11c50075f01e70f113b5e7a95dc622c9eb200e5a0820723065754469e3", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 14256379658571227787, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:7032ab174385eb5dd14e519f412ff9c158f06e7cef1e57c0f3c278a19c15f09d", + "logical_root_ids": [ + "asap-explain-v1:root:fc006c2f113c4378006bca43f27babc279c2f8f22228ab59671e9bb88f161303" + ], + "physical_candidate_id": "asap-explain-v1:physical:8afdcdcaef24201f41e6d76c6e40c6a88bc07fa8911af8329c64b6b29a60ea25", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 18366075381595067177, + "total_cost": 130.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:8c6676da545712b584409b2a54b01951de988b3590331c037bb25cd5f8a700c4", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:8622a13e6aae8c7c913e566434c07ee5f11f06ec8f716bae8f55169164b50165" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md new file mode 100644 index 000000000..67d220017 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -0,0 +1,135 @@ +# spatial-quantile + +`quantile by (label_0) (0.9, data)` + +[Raw selected plan](spatial-quantile.json) · [DAG DOT](spatial-quantile.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `2`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: quantile_0_9/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]}"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: label_0/utf8","1: quantile_0_9/float64"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 1584935399223751265 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `1584935399223751265` → semantic definition `sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 1584935399223751265, + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + }, + "full_window_slide_ms": 10000, + "materialization": 1584935399223751265, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/spatial-sum.dot b/docs/evaluation/issue754-human-review/spatial-sum.dot new file mode 100644 index 000000000..3d279f0b9 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-sum.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_903fe84f27dd8a04 [label="materialization\npolicy_fp:903fe84f27dd8a04\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(10394281891663284740) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (data)"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:903fe84f27dd8a04\nwindow=5000ms\nlookback=Some(5000)"]; + materialization_903fe84f27dd8a04 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json new file mode 100644 index 000000000..ca983d1ef --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -0,0 +1,2189 @@ +{ + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "10394281891663284740": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + }, + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 10394281891663284740, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "materialization": 10394281891663284740, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 5000, + "slide_ms": 10000, + "pane_origin_ms": 5000 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 10394281891663284740 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + }, + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum by (label_0) (data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 10394281891663284740, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "full_window_slide_ms": 10000, + "materialization": 10394281891663284740, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 10394281891663284740, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0e8ec2e29e2ee3e9d29e92d9cd0163ff88c400c101387750fe6f4736c76e62b3", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:e641ec19f0e39893ed797d0e6f1b69267b437ba26f391604251122e6b8ed66e9" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 3688256239081920855, + "selected_manifest": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "sum by (label_0) (data)", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "sum" + }, + "query": "sum by (label_0) (data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "binding": { + "full_window_slide_ms": 10000, + "materialization": 10394281891663284740, + "output_grouping": { + "keys": [ + "label_0" + ], + "mode": "reduce" + }, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 10394281891663284740 + }, + "window_ms": 5000 + }, + "op": "read_materialization" + }, + "query": "sum by (label_0) (data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10394281891663284740:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 10394281891663284740, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 10394281891663284740 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10394281891663284740:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 10394281891663284740, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 10394281891663284740 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10394281891663284740:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 10394281891663284740, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 10394281891663284740 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10394281891663284740:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 5000, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "inputs": [ + { + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 5, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [ + "label_0" + ], + "materialization": 10394281891663284740, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "stored_output_id": 10394281891663284740 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 5000, + "size_ms": 5000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:10394281891663284740:build": 1.0, + "state:backend:10394281891663284740:residency": 1.0, + "state:backend:10394281891663284740:retire": 1.0, + "state:backend:10394281891663284740:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:4a70fea518d6dab33c2f2a78f298c42abea71bb66fd9485e8c74cbfb94b42e25", + "logical_root_ids": [ + "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2" + ], + "physical_candidate_id": "asap-explain-v1:physical:0bba025e586d38df56827bd240a843e616a26e5a7588efd6672636e9d9a3fb1b", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 3688256239081920855, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:05db2206cb2aa389f9ee353e1096458dfe1a228be0fd79a4eeb9fc33e762501f", + "logical_root_ids": [ + "asap-explain-v1:root:4a279f73bd64bf260f10e694b5946239cb55b0ce56642e9ea11ff79be45c773b" + ], + "physical_candidate_id": "asap-explain-v1:physical:d941312282d378c3a4b611e0c968aefd5b1f4fbaae5fc18c51a8720ce9c38484", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 17875413431231421451, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:e6fe46188ba81ced66746ee84f20c831ddf66cfa846d5bbd9f8c0ea60f3b92df", + "logical_root_ids": [ + "asap-explain-v1:root:8429626574248c9dd9fd1ef599028f6dde2d6a2a6bc3beba0cdd9db290df10ce" + ], + "physical_candidate_id": "asap-explain-v1:physical:e7f2ddb58b1e23ab7b3d0955e9f7c5953e6aa146b00d183681e0bfcf4340c002", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 8064649510529993241, + "total_cost": 130.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0e8ec2e29e2ee3e9d29e92d9cd0163ff88c400c101387750fe6f4736c76e62b3", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:e641ec19f0e39893ed797d0e6f1b69267b437ba26f391604251122e6b8ed66e9" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md new file mode 100644 index 000000000..2c1a65bca --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -0,0 +1,130 @@ +# spatial-sum + +`sum by (label_0) (data)` + +[Raw selected plan](spatial-sum.json) · [DAG DOT](spatial-sum.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `1`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 10394281891663284740 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `10394281891663284740` → semantic definition `sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 10394281891663284740, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "full_window_slide_ms": 10000, + "materialization": 10394281891663284740, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/spatial-topk.dot b/docs/evaluation/issue754-human-review/spatial-topk.dot new file mode 100644 index 000000000..aa0ca1060 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-topk.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json new file mode 100644 index 000000000..15bfa4616 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -0,0 +1,781 @@ +{ + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + }, + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + }, + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "source samples" + } + ] + } + }, + { + "id": 1, + "payload": { + "kind": "value", + "operation": { + "MaintainPopulation": { + "population": { + "input": { + "CurrentSeries": { + "grouping": [ + "label_0" + ], + "lookback_ms": 5000, + "matchers": [], + "metric": "data", + "without": false + } + }, + "max_k": 3, + "quantiles": false + } + } + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact members under the declared population semantics" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": { + "ReadPopulation": { + "readout": { + "TopK": { + "k": 3 + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact current-population readout" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "topk by (label_0) (3, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "metric": "data", + "matchers": [], + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "lookback_ms": 5000, + "max_input_lag_ms": 5000, + "history_retention_ms": 0, + "max_series": 100000, + "max_bytes": 1073741824, + "max_k": 3, + "quantiles": false + }, + "readout": { + "kind": "top_k", + "k": 3 + } + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f2f8d4f89996e1d310dabec1eae56741af374212bd944b064ceeb3c1e7da0275" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a0e453badfd9700167ea731d5d85581030bb14b14b0bcd33b79711e47de90a71" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 2697027346875258477, + "selected_manifest": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "topk by (label_0) (3, data)", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": { + "implementation": { + "phase": "build", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": { + "implementation": { + "phase": "residency", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": { + "implementation": { + "phase": "retire", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": { + "implementation": { + "phase": "update", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "inputs": [], + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + }, + "readout": { + "k": 3, + "kind": "top_k" + } + } + }, + "query": "topk by (label_0) (3, data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": 2.0, + "query:compat-query-0:0": 60.0, + "result:compat-query-0": 60.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 2.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:82ef1c5379978f267edbfa6305eb1679f053c47856ce5b9ebe729a7edbc7a41d", + "logical_root_ids": [ + "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:alternative:c2c4a785111dc305b3c462a22fbf65eaac4217373b974139818d7cc7bed8e35b", + "logical_root_ids": [ + "asap-explain-v1:root:2fc6d66c5f484aff0572097783e16eaf908f8ab6d92c0a5c02a84ed603cc7f11" + ], + "physical_candidate_id": "asap-explain-v1:physical:8acd72ca65e4c3f6bea85755346fa366dc743d221b4f5abb8bc6dc6c000ebb93", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5538412219857372274, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:c508f5ffab42611c9991a2ccb74ea7e93ab9f5817614ab64cb866d06e5675c3d", + "logical_root_ids": [ + "asap-explain-v1:root:5e72d408ac5c50ef84252e6f4d9ecdd7cd43156d1d40e6003dbbee495542dfe7" + ], + "physical_candidate_id": "asap-explain-v1:physical:ab5cdb860f91c5dd7aefd3473a4f2594cd383a940559de3e87d2f23470304551", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 2697027346875258477, + "total_cost": 130.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f2f8d4f89996e1d310dabec1eae56741af374212bd944b064ceeb3c1e7da0275" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a0e453badfd9700167ea731d5d85581030bb14b14b0bcd33b79711e47de90a71" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md new file mode 100644 index 000000000..30a1e9fc4 --- /dev/null +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -0,0 +1,82 @@ +# spatial-topk + +`topk by (label_0) (3, data)` + +[Raw selected plan](spatial-topk.json) · [DAG DOT](spatial-topk.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `2`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"kind":"value","operation":{"MaintainPopulation":{"population":{"input":{"CurrentSeries":{"grouping":["label_0"],"lookback_ms":5000,"matchers":[],"metric":"data","without":false}},"max_k":3,"quantiles":false}}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"ReadPopulation":{"readout":{"TopK":{"k":3}}}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +No precompute executable DAG is installed for this selected candidate. + +No summary stored-output binding. Maintained current-series input, when present, is visible in the DAG and QueryPlan. + +### Maintenance configuration + +```json +[] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "metric": "data", + "matchers": [], + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "lookback_ms": 5000, + "max_input_lag_ms": 5000, + "history_retention_ms": 0, + "max_series": 100000, + "max_bytes": 1073741824, + "max_k": 3, + "quantiles": false + }, + "readout": { + "kind": "top_k", + "k": 3 + } + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.dot b/docs/evaluation/issue754-human-review/temporal-quantile.dot new file mode 100644 index 000000000..cf6b48735 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-quantile.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json new file mode 100644 index 000000000..b18e449dd --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -0,0 +1,2295 @@ +{ + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.01 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "3752266711358116078": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + }, + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 3752266711358116078, + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "materialization": 3752266711358116078, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 3752266711358116078 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + }, + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "quantile_over_time(0.9, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 3752266711358116078, + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + }, + "materialization": 3752266711358116078, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 3752266711358116078, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 11818444224054941250, + "selected_manifest": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "quantile_over_time(0.9, data[1m])", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "summary_estimate", + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "query": "quantile_over_time(0.9, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 3752266711358116078, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "stored_output_id": 3752266711358116078 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "quantile_over_time(0.9, data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:3752266711358116078:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [], + "materialization": 3752266711358116078, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "stored_output_id": 3752266711358116078 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:3752266711358116078:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [], + "materialization": 3752266711358116078, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "stored_output_id": 3752266711358116078 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:3752266711358116078:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [], + "materialization": 3752266711358116078, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "stored_output_id": 3752266711358116078 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:3752266711358116078:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "DDSketch", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ], + "family": { + "algorithm": "DDSketch", + "family": "sketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "group_by": [], + "materialization": 3752266711358116078, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "stored_output_id": 3752266711358116078 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:3752266711358116078:build": 1.0, + "state:backend:3752266711358116078:residency": 1.0, + "state:backend:3752266711358116078:retire": 1.0, + "state:backend:3752266711358116078:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:80fd725c0cac8323b4d28dbdd574559b584eacdd6926e7cdafacea48f5fc6642", + "logical_root_ids": [ + "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c" + ], + "physical_candidate_id": "asap-explain-v1:physical:be2c4f9536be9f77e69bb6989a773ef704a97f75fd2c5a7087e968b727bf9b7d", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 11818444224054941250, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:14d9dbcba9af3417ef1b8313c9d116a1f33a9a5e6bc60ef632167441394934aa", + "logical_root_ids": [ + "asap-explain-v1:root:2ff4d49ff1bfd8b7b59f46afafa4dc197316c678c060f08d7456de08f5198389" + ], + "physical_candidate_id": "asap-explain-v1:physical:cf6e33f8720782a4151fc99e0ecaa53cba27acdc86a08f4e843487443cdd9413", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 4754089690189431057, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md new file mode 100644 index 000000000..bf8b8353f --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -0,0 +1,130 @@ +# temporal-quantile + +`quantile_over_time(0.9, data[1m])` + +[Raw selected plan](temporal-quantile.json) · [DAG DOT](temporal-quantile.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `2`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]}"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: ts/timestamp","1: value/float64"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 3752266711358116078 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `3752266711358116078` → semantic definition `sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 3752266711358116078, + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + }, + "materialization": 3752266711358116078, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/temporal-rate.dot b/docs/evaluation/issue754-human-review/temporal-rate.dot new file mode 100644 index 000000000..8f64bbfe6 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-rate.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json new file mode 100644 index 000000000..b63767266 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -0,0 +1,2021 @@ +{ + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "14425999489689100447": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + }, + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "materialization": 14425999489689100447, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 14425999489689100447 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + }, + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "rate(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 14425999489689100447, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a882f5b10bc373b1c6a080372b32c91736a7817a24c31c57bf25266ae678cbf8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d41c5d7c1635317dc9d0bdd9fa62f01c77296d4f3285cfe30401f1480730198d" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": { + "eligible_leaves": 1, + "enumerated_local_masks": 2, + "exhaustive": true, + "scope": "Backend materialization versus Prometheus exact-subquery masks over Planner-authorized leaves; native alternative separate; bounded inventory does not claim an unenumerated optimum" + }, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 1350462962080375017, + "selected_manifest": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "rate(data[1m])", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "rate" + }, + "query": "rate(data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "rate(data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:14425999489689100447:build": 1.0, + "state:backend:14425999489689100447:residency": 1.0, + "state:backend:14425999489689100447:retire": 1.0, + "state:backend:14425999489689100447:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:0ee87c66cd7dd9cee92a618b721a976213a0079bb96754f32e66795584f9e6ef", + "logical_root_ids": [ + "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41" + ], + "physical_candidate_id": "asap-explain-v1:physical:944690ee00ba111cfdcff6933d6ad78b88b726612341b6e73d795be4f1792f7b", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 1350462962080375017, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:304e34cc4f85ed2e97e9950767bd912eb6e56a2a57d3ff54a715d2f5e585148c", + "logical_root_ids": [ + "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41" + ], + "physical_candidate_id": "asap-explain-v1:physical:de9cc74daf3541712e4a1dff0d4a04bfba2eb0a5febcb07a31257f286889badb", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 4863426083951867157, + "total_cost": 122.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:6c9df334ff0c0b85e8d6ea0009c4c41a8f05906f770fa5ca136dbc88d83eec59", + "logical_root_ids": [ + "asap-explain-v1:root:3541b782340d54c916e91e988fdfd43a0cc89044723ddc404fc101f29ff483b7" + ], + "physical_candidate_id": "asap-explain-v1:physical:584ef57861dbdc8405610e94798ad504fbb98aa5b0d642610c2fbcd20d80677e", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 27061497774794526, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a882f5b10bc373b1c6a080372b32c91736a7817a24c31c57bf25266ae678cbf8", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d41c5d7c1635317dc9d0bdd9fa62f01c77296d4f3285cfe30401f1480730198d" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md new file mode 100644 index 000000000..775742d79 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -0,0 +1,125 @@ +# temporal-rate + +`rate(data[1m])` + +[Raw selected plan](temporal-rate.json) · [DAG DOT](temporal-rate.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `1`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 14425999489689100447 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `14425999489689100447` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/temporal-sum.dot b/docs/evaluation/issue754-human-review/temporal-sum.dot new file mode 100644 index 000000000..1b04bcd1a --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-sum.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum_over_time(data[1m])"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json new file mode 100644 index 000000000..3ada5faa7 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -0,0 +1,2002 @@ +{ + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "12984500598014581905": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + }, + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 12984500598014581905, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "materialization": 12984500598014581905, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 12984500598014581905 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + }, + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum_over_time(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum_over_time(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 12984500598014581905, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "materialization": 12984500598014581905, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 12984500598014581905, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:cf34f27ef2a377d476178424410b8c477d1ebb8e5eaa56a0497e364fda7ab004", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:848fdbcd33be545a0d6c0cbe0cb049fdfd9fd399344c8f3d638749ec5d7d1111" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 17891999753521262724, + "selected_manifest": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "sum_over_time(data[1m])", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "sum" + }, + "query": "sum_over_time(data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 12984500598014581905, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "stored_output_id": 12984500598014581905 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "sum_over_time(data[1m])" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:12984500598014581905:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 12984500598014581905, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "stored_output_id": 12984500598014581905 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:12984500598014581905:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 12984500598014581905, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "stored_output_id": 12984500598014581905 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:12984500598014581905:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 12984500598014581905, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "stored_output_id": 12984500598014581905 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:12984500598014581905:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 12984500598014581905, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "stored_output_id": 12984500598014581905 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:12984500598014581905:build": 1.0, + "state:backend:12984500598014581905:residency": 1.0, + "state:backend:12984500598014581905:retire": 1.0, + "state:backend:12984500598014581905:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:009abc3e6e0ba7d0b038243f74b9c5c12b1d152df76dfedbeb68253f9d4d02c6", + "logical_root_ids": [ + "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d" + ], + "physical_candidate_id": "asap-explain-v1:physical:6a94d26b4f66a7c5ff44e4763587e238d243175d11f83237e14dcda9b3a5900b", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 17891999753521262724, + "total_cost": 95.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:62a6f39e7c1f6accc8e9ad1feb8bc01f72009d0d4b684d11524568da2faca86d", + "logical_root_ids": [ + "asap-explain-v1:root:0b313cd8e8c35d108455a9fa3d38a68efc666f92752148e99d340f7564691d60" + ], + "physical_candidate_id": "asap-explain-v1:physical:abaf5777a2a9a8735f32c5cff97d8f6c29cbc18033c636c9939b786b1a96512e", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 3167846180279825593, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:cf34f27ef2a377d476178424410b8c477d1ebb8e5eaa56a0497e364fda7ab004", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:848fdbcd33be545a0d6c0cbe0cb049fdfd9fd399344c8f3d638749ec5d7d1111" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md new file mode 100644 index 000000000..4c01126f9 --- /dev/null +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -0,0 +1,125 @@ +# temporal-sum + +`sum_over_time(data[1m])` + +[Raw selected plan](temporal-sum.json) · [DAG DOT](temporal-sum.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `1`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | + +### Sort expressions + +No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 12984500598014581905 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `12984500598014581905` → semantic definition `sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum_over_time(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 12984500598014581905, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "materialization": 12984500598014581905, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` diff --git a/docs/evaluation/issue754-human-review/topk-rate.dot b/docs/evaluation/issue754-human-review/topk-rate.dot new file mode 100644 index 000000000..83bbfd536 --- /dev/null +++ b/docs/evaluation/issue754-human-review/topk-rate.dot @@ -0,0 +1,25 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_0_1 [label="Logical\nSort"]; + query_0_2 [label="ExactReadout\nRate"]; + query_0_3 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_3 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + query_0_2 -> query_0_1; + query_0_3 -> query_0_2; + } +} diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json new file mode 100644 index 000000000..d849aa170 --- /dev/null +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -0,0 +1,2549 @@ +{ + "envelope": { + "plan_id": 1947004944484088590, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 1947004944484088590, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "14425999489689100447": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1947004944484088590, + "plan_version": 1, + "snapshot_sha256": "3c2e5e458227264136ded8fd8cbaa3556c9c5d48e8bbff2731be198d7992c402" + }, + "envelope": { + "plan_id": 1947004944484088590, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "materialization": 14425999489689100447, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 14425999489689100447 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1947004944484088590, + "plan_version": 1, + "snapshot_sha256": "3c2e5e458227264136ded8fd8cbaa3556c9c5d48e8bbff2731be198d7992c402" + }, + "envelope": { + "plan_id": 1947004944484088590, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 1947004944484088590, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Sort": { + "keys": [ + { + "ascending": false, + "expr": { + "Column": 1 + }, + "nulls_first": false + } + ], + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": { + "Limit": { + "n": 3, + "offset": 0, + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "limit", + "n": 3, + "offset": 0, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "logical", + "operator": { + "kind": "sort", + "descending": true, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 2 + ] + }, + "2": { + "op": "exact_readout", + "input": 3, + "readout": "rate" + }, + "3": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 14425999489689100447, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:99e8fe24fbbd76ea4bbaa45c6b4bf6214a926befd5151ff132b80b749e2208e0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a50d6d62d7220346106b3da03dc6b932401aeb45b39f324d178c6a0e8fbb557c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 4, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "query_index": 0 + } + ], + "schema_version": 1 + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 1947004944484088590, + "selected_manifest": { + "plan_id": 1947004944484088590, + "plan_version": 1, + "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "topk by (label_0) (3, rate(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 1 + ], + "op": "logical", + "operator": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "kind": "limit", + "n": 3, + "offset": 0 + } + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 2 + ], + "op": "logical", + "operator": { + "descending": true, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "kind": "sort" + } + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:2": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 3, + "op": "exact_readout", + "readout": "rate" + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:3": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:14425999489689100447:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "inputs": [ + { + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [], + "materialization": 14425999489689100447, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "stored_output_id": 14425999489689100447 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "query:compat-query-0:2": 30.0, + "query:compat-query-0:3": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:14425999489689100447:build": 1.0, + "state:backend:14425999489689100447:residency": 1.0, + "state:backend:14425999489689100447:retire": 1.0, + "state:backend:14425999489689100447:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:alternative:7bf31d0ab9316192505912b529653f09524d88a0c7ea36e1082febed672fb8ae", + "logical_root_ids": [ + "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49" + ], + "physical_candidate_id": "asap-explain-v1:physical:4a5d7a1c944984c0686fca5b5d0f3d00348e7a458d6adff22b5cf61ba9727362", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 1947004944484088590, + "total_cost": 155.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:alternative:d826e0a1fe67cd1a6225d3455ecfce9ada70d35871cd42b6a6052bab0c060aba", + "logical_root_ids": [ + "asap-explain-v1:root:d53b889d4c5fd077a35df1f50e09a19af63c12366578c9dc11e4d8da261c45c4" + ], + "physical_candidate_id": "asap-explain-v1:physical:99efedd5c9c62bae3c5a049a228f203e672d3b0bdc8952f82f54da2a5a0df91d", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 15833270860732361489, + "total_cost": 61000000000000.0, + "unavailable_reason": null + } + ] + }, + "planner_selection_trace": [ + { + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "query_index": 0 + } + ], + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:99e8fe24fbbd76ea4bbaa45c6b4bf6214a926befd5151ff132b80b749e2208e0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a50d6d62d7220346106b3da03dc6b932401aeb45b39f324d178c6a0e8fbb557c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 4, + "rejected": [], + "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md new file mode 100644 index 000000000..9e5ea275c --- /dev/null +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -0,0 +1,163 @@ +# topk-rate + +`topk by (label_0) (3, rate(data[1m]))` + +[Raw selected plan](topk-rate.json) · [DAG DOT](topk-rate.dot) + +## Planner-selected computation + +IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. + +Root: `4`. + +| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | +| --- | --- | --- | --- | --- | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Sort":{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Limit":{"n":3,"offset":0,"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | + +### Sort expressions + +Node `3`: `{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}` + +Its input is node `2`: `{"kind":"value","operation":"FinalizeExactAccumulator"}`. Column indices refer to that producer's output schema above. + +## Persisted boundaries + +Binding for `compat-query-0`: + +```json +{ + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 14425999489689100447 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] +} +``` + +Stored output `14425999489689100447` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. + +### Maintenance configuration + +```json +[ + { + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } +] +``` + +## Bound query execution + +This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. + +```json +{ + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "limit", + "n": 3, + "offset": 0, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "logical", + "operator": { + "kind": "sort", + "descending": true, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 2 + ] + }, + "2": { + "op": "exact_readout", + "input": 3, + "readout": "rate" + }, + "3": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" +} +``` From ce39acb9059a88ab827701b5ab346666008aa4a0 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sat, 26 Sep 2026 18:25:01 +0000 Subject: [PATCH 12/80] docs: render exported plan dependencies as review diagrams --- .../issue754-human-review/grouped-rate.md | 11 ++++++++++ .../grouped-temporal-sum.md | 7 +++++++ .../issue754-human-review/quantile-ratio.md | 14 +++++++++++++ .../issue754-human-review/render.py | 21 +++++++++++++++++++ .../issue754-human-review/spatial-quantile.md | 9 ++++++++ .../issue754-human-review/spatial-sum.md | 7 +++++++ .../issue754-human-review/spatial-topk.md | 9 ++++++++ .../temporal-quantile.md | 9 ++++++++ .../issue754-human-review/temporal-rate.md | 7 +++++++ .../issue754-human-review/temporal-sum.md | 7 +++++++ .../issue754-human-review/topk-rate.md | 13 ++++++++++++ 11 files changed, 114 insertions(+) diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index 692e91bfd..cfc63be84 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -10,6 +10,17 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `3`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] + N2["2: FinalizeExactAccumulator"] + N3["3: Exact"] + N0 --> N1 + N1 --> N2 + N2 --> N3 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index ea1128ed5..b7a75ffe0 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -10,6 +10,13 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `1`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] + N0 --> N1 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index 5d8a7ff65..da5701702 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -10,6 +10,20 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `4`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.0049751243781094535}}},"PerSubpopulationInstance"]}"] + N2["2: summary_estimate"] + N3["3: summary_estimate"] + N4["4: binary"] + N0 --> N1 + N1 --> N2 + N1 --> N3 + N2 --> N4 + N3 --> N4 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 82d9be9af..7592da80f 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -20,6 +20,18 @@ def operation(payload): 'range': time.get('range')} return payload +def label(node): + payload = node['payload'] + kind = payload['kind'] + if kind == 'fallback': + return 'Source / time range' + if kind == 'summary_agg': + return 'SummaryAgg ' + compact(payload['family']) + if kind == 'value': + op = payload['operation'] + return next(iter(op)) if isinstance(op, dict) else op + return kind + def dtype(value): if isinstance(value, dict) and 'Plain' in value: return value['Plain'] @@ -38,6 +50,15 @@ def block(value): 'IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately.', ''] for dag in plan['query_plan']['selected_dags'].values(): lines += [f"Root: `{dag['root']}`.", '', '| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) |', '| --- | --- | --- | --- | --- |'] + diagram = ['```mermaid', 'flowchart LR'] + for node in dag['nodes']: + text = f"{node['id']}: {label(node)}" + text = text.replace('&', '&').replace('"', '"').replace('<', '<').replace('>', '>') + diagram.append(f' N{node["id"]}["{text}"]') + for edge in dag['edges']: + diagram.append(f" N{edge['producer']} --> N{edge['consumer']}") + diagram += ['```', ''] + lines[-2:-2] = diagram for node in dag['nodes']: deps = [[e['producer'], e['role']] for e in dag['edges'] if e['consumer'] == node['id']] fields = [f"{i}: {f['name']}/{dtype(f['dtype'])}" for i, f in enumerate(node['output_schema']['fields'])] diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index 67d220017..5e4f9b2c8 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -10,6 +10,15 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `2`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]}"] + N2["2: summary_estimate"] + N0 --> N1 + N1 --> N2 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index 2c1a65bca..81e8e40cb 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -10,6 +10,13 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `1`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] + N0 --> N1 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 30a1e9fc4..56f625e54 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -10,6 +10,15 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `2`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: MaintainPopulation"] + N2["2: ReadPopulation"] + N0 --> N1 + N1 --> N2 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index bf8b8353f..6cd4fe8b3 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -10,6 +10,15 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `2`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]}"] + N2["2: summary_estimate"] + N0 --> N1 + N1 --> N2 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index 775742d79..ef4de2df3 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -10,6 +10,13 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `1`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] + N0 --> N1 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index 4c01126f9..b1afa203d 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -10,6 +10,13 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `1`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] + N0 --> N1 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index 9e5ea275c..1e32a7d69 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -10,6 +10,19 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. Root: `4`. +```mermaid +flowchart LR + N0["0: Source / time range"] + N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] + N2["2: FinalizeExactAccumulator"] + N3["3: Sort"] + N4["4: Limit"] + N0 --> N1 + N1 --> N2 + N2 --> N3 + N3 --> N4 +``` + | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | | 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | From dc0dc46fcc62ea46cfe436c775a6d56e9b8c022c Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 14:18:58 +0000 Subject: [PATCH 13/80] test: verify topk-rate ranks the finalized rate expression --- control_plane/tests/issue754_level1.rs | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 6ba2d8137..a1f047c6a 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -119,7 +119,76 @@ fn family_matches(expected: &ExpectedFamily, actual: &SummaryFamilyType) -> bool } } +// Inspect the Planner expression, since the adapter only stores sort direction. +fn assert_rate_sort_expression(dag: &asap_types::executable_plan::OwnedPostAsapDag) { + for sort in &dag.nodes { + let Some(spec) = sort.payload["operation"].get("Sort") else { + continue; + }; + let inputs: Vec<_> = dag + .edges + .iter() + .filter(|edge| edge.consumer == sort.id) + .collect(); + assert_eq!(inputs.len(), 1, "rate ranking requires one producer"); + let producer = dag + .nodes + .iter() + .find(|node| node.id == inputs[0].producer) + .unwrap(); + assert_eq!( + producer.payload["operation"], "FinalizeExactAccumulator", + "ranking must consume finalized per-series rates" + ); + let fields = producer.output_schema["fields"].as_array().unwrap(); + let value = fields + .iter() + .position(|field| field["name"] == "value") + .unwrap(); + assert_eq!( + spec["keys"], + json!([{ + "ascending": false, "expr": {"Column": value}, "nulls_first": false + }]), + "TopK must rank rate values, not timestamps or labels" + ); + let partition = fields + .iter() + .position(|field| field["name"] == "label_0") + .unwrap(); + assert_eq!(spec["partition_by"], json!([partition])); + } +} + +// A descending sort over a timestamp or label must fail the Level 1 contract. +#[test] +fn topk_rate_sort_contract_rejects_wrong_value_expression() { + let artifact: Value = serde_json::from_str(include_str!( + "../../docs/evaluation/issue754-human-review/topk-rate.json" + )) + .unwrap(); + let dag: asap_types::executable_plan::OwnedPostAsapDag = + serde_json::from_value(artifact["query_plan"]["selected_dags"]["compat-query-0"].clone()) + .unwrap(); + assert_rate_sort_expression(&dag); + for column in [0, 2] { + let mut wrong = dag.clone(); + let sort = wrong + .nodes + .iter_mut() + .find(|node| node.payload["operation"].get("Sort").is_some()) + .unwrap(); + sort.payload["operation"]["Sort"]["keys"][0]["expr"] = json!({"Column": column}); + assert!(std::panic::catch_unwind(|| assert_rate_sort_expression(&wrong)).is_err()); + } +} + fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { + if name == "topk-rate" { + for dag in plan.query_plan.selected_dags.values() { + assert_rate_sort_expression(dag); + } + } for materialization in &plan.precompute_plan.materializations { let definition = plan .summary_catalog From 421132267db40fda02e8bff06a851703db490cd3 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:16:05 +0000 Subject: [PATCH 14/80] build: adopt recoverable Planner physical candidates --- Cargo.lock | 14 +++++++------- Cargo.toml | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index be01b30a3..141eb841c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c27cd14b8e052ce1f4641c619488ad539ad71f56#c27cd14b8e052ce1f4641c619488ad539ad71f56" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index 1172c0a36..5cf1a8d86 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c27cd14b8e052ce1f4641c619488ad539ad71f56" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } From c36097b6d471fcfe65b0bf4dc155441c8c435acd Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:22:44 +0000 Subject: [PATCH 15/80] fix: retain root candidates for deployment costing without Cartesian expansion --- control_plane/src/main.rs | 1 + control_plane/src/physical/compiler.rs | 146 +++++++++++++++++--- control_plane/src/physical/workload_cost.rs | 130 +++++++++++++---- control_plane/src/planner_selection.rs | 38 +++++ 4 files changed, 266 insertions(+), 49 deletions(-) diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index 5b4356756..8655f6a8d 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -655,6 +655,7 @@ fn compile_physical_plan_request( .map_err(|error| (StatusCode::UNPROCESSABLE_ENTITY, error.to_string().into()))?; } let compilation_request = physical::compiler::PhysicalCompilationRequest { + planner_candidate_forests: Vec::new(), planner_selection_trace, query_workload: Some(query_workload), data_workload: Some(request.data_workload), diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 53a232af2..a183b4305 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -154,6 +154,9 @@ pub struct SummaryLifecyclePlanningInputs { #[derive(Debug, Clone, Default)] pub struct PhysicalCompilationRequest { + /// Complete Planner candidates retained until deployment admission/pricing. + /// Empty for callers that explicitly supply one already-selected forest. + pub planner_candidate_forests: Vec>, /// Diagnostic projections of the original Planner search; never consumed by selection. pub planner_selection_trace: Vec, /// Enable a composable DAG with SummaryStore materializations and Prometheus exact subtrees. @@ -167,7 +170,7 @@ pub struct PhysicalCompilationRequest { pub query_workload: Option, /// Source evidence supplied independently from query demand. pub data_workload: Option, - /// Workload-lowered roots retained across physical alternative enumeration. + /// Workload-lowered roots retained across physical candidate enumeration. pub canonical_roots: Vec>, pub queries: Vec, pub topk_membership_evidence_by_query_id: HashMap, @@ -625,7 +628,7 @@ pub struct MaterializationLifecycleEstimate { pub enum CompileError { #[error("invalid backend-local workload snapshot: {0}")] Snapshot(String), - #[error("no feasible completely costed alternative: {0}")] + #[error("no feasible completely costed candidate: {0}")] Candidates(serde_json::Value), #[error("planner revision mismatch: request={request}, compiler={compiler}")] PlannerRevision { @@ -932,7 +935,8 @@ impl BackendLocalPlanningInput { exact_costs_by_id.insert(format!("compat-query-{index}"), rows.clone()); } } - let planner_selection_trace = select_logical_roots_with_scoped_evidence_and_trace( + let mut candidate_roots = Vec::new(); + let mut planner_selection_trace = logical_roots_and_candidates( &mut queries, canonical_roots.clone(), &topk_evidence_by_id, @@ -940,6 +944,7 @@ impl BackendLocalPlanningInput { &exact_costs_by_id, self.physical_inputs.erp.as_ref(), self.environment.observed_at_unix_ms, + Some(&mut candidate_roots), )?; for query in &mut queries { prepare_window_implementations( @@ -949,9 +954,36 @@ impl BackendLocalPlanningInput { self.physical_inputs.query_retention_margin_ms, )?; } + let mut planner_candidate_forests = Vec::new(); + for roots in candidate_roots { + let mut forest = queries.clone(); + for (index, root) in roots { + forest[index].selected_plan_root = root; + } + let preparation = forest.iter_mut().try_for_each(|query| { + prepare_window_implementations( + query, + &self.physical_inputs.window_cost_model, + self.environment.target, + self.physical_inputs.query_retention_margin_ms, + ) + }); + if let Err(error) = preparation { + planner_selection_trace.push(serde_json::json!({ + "stage": "deployment.window_feasibility", + "status": "rejected", + "logical_root_ids": forest.iter().map(|query| crate::planner_selection::explained_root_id( + &query.selected_plan_root, &query.accuracy_target)).collect::>(), + "reason": error.to_string(), + })); + continue; + } + planner_candidate_forests.push(forest); + } // Composable lowering residualizes unsafe leaves individually; retain Planner siblings. Ok(( PhysicalCompilationRequest { + planner_candidate_forests, planner_selection_trace, allow_mixed_summary_and_exact_execution: true, require_backend_local_execution: self @@ -1370,7 +1402,7 @@ impl DeploymentPlanCompiler { .flatten() }); // Masks enumerate counter/max choices only. Other selected - // summaries remain required by this physical alternative. + // summaries remain required by this physical candidate. key.is_none_or(|key| policy.contains(&key)) }) }) @@ -2462,6 +2494,28 @@ pub fn select_logical_roots_with_scoped_evidence_and_trace( exact_costs: &HashMap>, erp: Option<&super::erp::ErpPlanningInput>, now_ms: u64, +) -> Result, CompileError> { + logical_roots_and_candidates( + queries, + roots, + evidence, + scoped_evidence, + exact_costs, + erp, + now_ms, + None, + ) +} + +fn logical_roots_and_candidates( + queries: &mut [QueryCompilationInput], + roots: Vec>, + evidence: &HashMap, + scoped_evidence: &HashMap, + exact_costs: &HashMap>, + erp: Option<&super::erp::ErpPlanningInput>, + now_ms: u64, + mut candidates_out: Option<&mut Vec)>>>, ) -> Result, CompileError> { let mut traces = Vec::new(); if roots.len() != queries.len() { @@ -2548,6 +2602,27 @@ pub fn select_logical_roots_with_scoped_evidence_and_trace( AccuracyTarget::Exact => 0.0, }, }; + let mut candidate_assembly_rejections = Vec::new(); + if let Some(output) = candidates_out.as_deref_mut() { + let inventory = crate::planner_selection::enumerate_workload_candidates( + roots.clone(), + accuracy.clone(), + &model, + &QueryEvidence { + topk: certificate, + scoped: scoped_certificate, + now_ms, + }, + &accuracy_model, + ) + .map_err(|error| CompileError::Snapshot(error.to_string()))?; + candidate_assembly_rejections = inventory.rejected_assemblies; + let candidates = inventory.candidates; + // Retain every root's candidates without multiplying independent + // cohorts. Deployment evaluates each root substitution in the + // preferred workload context; this is not exhaustive joint search. + output.extend(candidates); + } let (selected, mut trace) = crate::planner_selection::select_workload_with_accuracy_model_and_trace( roots, @@ -2561,6 +2636,14 @@ pub fn select_logical_roots_with_scoped_evidence_and_trace( &accuracy_model, ) .map_err(|error| CompileError::Snapshot(error.to_string()))?; + trace["candidate_assembly_rejections"] = serde_json::json!(candidate_assembly_rejections); + if candidates_out.is_some() { + trace["computation_search_scope"] = serde_json::json!({ + "inventory": "all_root_candidates", + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "joint_workload_search_exhaustive": false, + }); + } if let Some(evidence) = scoped_certificate { trace["accuracy_evidence_scope"] = serde_json::json!({ "query_id": scope, @@ -2598,7 +2681,7 @@ pub fn select_logical_roots_with_scoped_evidence_and_trace( Ok(traces) } -fn requires_exact_erp_fallback( +pub(super) fn requires_exact_erp_fallback( node: &SummaryNode, accuracy: &AccuracyTarget, erp: &super::erp::ErpPlanningInput, @@ -3395,12 +3478,12 @@ fn select_lifecycle( lifecycle_cost: plan.deployments[0] .alternatives .iter() - .find(|alternative| { - alternative.rejection.is_none() - && alternative.summary_maintenance_lifecycle + .find(|candidate| { + candidate.rejection.is_none() + && candidate.summary_maintenance_lifecycle == guarantee.summary_maintenance_lifecycle }) - .and_then(|alternative| alternative.total_cost) + .and_then(|candidate| candidate.total_cost) .ok_or_else(|| CompileError::Lifecycle { query_id: query.query_id.clone(), reason: "missing selected lifecycle cost".into(), @@ -4739,9 +4822,10 @@ pub(crate) mod tests { ); } - // Capability normalization precedes candidate enumeration, avoiding duplicate exact quotes. + // A larger computation inventory must retain both maintained and native + // execution; its cardinality is not the correctness contract. #[test] - fn counter_only_snapshot_has_distinct_local_and_native_cost_alternatives() { + fn counter_only_snapshot_has_distinct_local_and_native_cost_candidates() { let mut snapshot: BackendLocalPlanningInput = serde_json::from_str(include_str!( "../../../docs/examples/asapquery-planning-snapshot.json" )) @@ -4749,13 +4833,28 @@ pub(crate) mod tests { let entry = &mut snapshot.query_workload.repeating_queries.as_mut().unwrap()[0]; entry.query = Query("rate(m[1m])".into()); entry.requirements.accuracy = AccuracyRequirement::Explicit(AccuracyTarget::Exact); - let (request, _) = snapshot.into_physical_compilation_request().unwrap(); - assert_eq!( + let (request, environment) = snapshot.into_physical_compilation_request().unwrap(); + let candidates = super::super::workload_cost::enumerate_exact_and_materialized_candidates(request) - .unwrap() - .len(), - 3 + .unwrap(); + assert_eq!( + candidates + .iter() + .filter(|candidate| !candidate.allow_mixed_summary_and_exact_execution) + .count(), + 1 ); + let plans = candidates + .into_iter() + .map(|candidate| DeploymentPlanCompiler.compile_promql(candidate, environment.clone())) + .collect::, _>>() + .unwrap(); + assert!(plans + .iter() + .any(|plan| !plan.precompute_plan.materializations.is_empty())); + assert!(plans + .iter() + .any(|plan| plan.precompute_plan.materializations.is_empty())); } // Count and value rankings must configure different state update contracts. @@ -4991,6 +5090,7 @@ pub(crate) mod tests { evidence_by_query.insert(query_id.to_string(), evidence); } Ok(PhysicalCompilationRequest { + planner_candidate_forests: Vec::new(), planner_selection_trace: Vec::new(), canonical_roots: Vec::new(), allow_mixed_summary_and_exact_execution: false, @@ -6999,9 +7099,9 @@ pub(crate) mod tests { } // A tumbling shape pairs only with `Pane` in the validator's - // framework/layout table, so there is no alternative to price against it. + // framework/layout table, so there is no candidate to price against it. #[test] - fn tumbling_shapes_have_no_layout_alternative_to_rank() { + fn tumbling_shapes_have_no_layout_candidate_to_rank() { let cost = planning_snapshot().physical_inputs.window_cost_model.cost; let expr = crate::query_parser::parse_query_expr_canonical( "quantile_over_time(0.5, data[5m])", @@ -7436,7 +7536,8 @@ pub(crate) mod tests { request = super::super::workload_cost::enumerate_exact_and_materialized_candidates(request) .unwrap() - .pop() + .into_iter() + .find(|candidate| !candidate.allow_mixed_summary_and_exact_execution) .unwrap(); let bundle = DeploymentPlanCompiler .compile_promql(request, environment) @@ -8045,7 +8146,7 @@ pub(crate) mod tests { } #[test] - fn checked_in_per_entity_snapshot_preserves_native_alternative() { + fn checked_in_per_entity_snapshot_preserves_native_candidate() { let source = include_str!("../../../docs/examples/asapquery-planning-snapshot.json"); let snapshot: BackendLocalPlanningInput = serde_json::from_str(source).expect("strict canonical workload fixture"); @@ -8122,8 +8223,9 @@ pub(crate) mod tests { let native = crate::physical::workload_cost::enumerate_exact_and_materialized_candidates(request) .unwrap() - .pop() - .unwrap(); + .into_iter() + .find(|candidate| !candidate.allow_mixed_summary_and_exact_execution) + .expect("native candidate retained"); let plan = DeploymentPlanCompiler .compile_promql(native, environment) .expect("native demo compiles"); diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 8a7848717..61ad7cfb0 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -489,7 +489,7 @@ fn candidate_description(candidate: &PhysicalCompilationRequest) -> CandidatePla CandidatePlanEvaluation { candidate_id: complete.then(|| { crate::planner_selection::explain_identity( - "alternative", + "candidate", &( &logical_root_ids, candidate.allow_mixed_summary_and_exact_execution, @@ -522,6 +522,19 @@ fn compile_candidate_for_pricing( Box, > { let mut description = candidate_description(&candidate); + if let Some(policy) = &candidate.erp { + if candidate.queries.iter().any(|query| { + super::compiler::requires_exact_erp_fallback( + &query.selected_plan_root, + &query.accuracy_target, + policy, + ) + }) { + description.unavailable_reason = + Some("candidate does not satisfy ERP accuracy admission".into()); + return Err(Box::new(description)); + } + } let queries = candidate.queries.clone(); let compiled = super::realization::RealizationProvider::compile( &super::realization::ExistingRealizations, @@ -644,9 +657,9 @@ pub fn select_candidates( if let Some(evidence) = evidence { evidence.validate(&env)?; } - if candidates.is_empty() || candidates.len() > 64 { + if candidates.is_empty() || candidates.len() > 4096 { return Err(invalid( - "candidate inventory must contain 1..=64 candidates", + "candidate inventory must contain 1..=4096 candidates", )); } let candidate_key_sets: BTreeSet<_> = candidates @@ -788,17 +801,55 @@ pub fn select_candidates( /// The current executor exposes continuously maintained state and the native /// exact backend. Additional Planner-produced forests can use `select_lowest_cost_candidate` directly. pub fn enumerate_exact_and_materialized_candidates( - request: PhysicalCompilationRequest, + mut request: PhysicalCompilationRequest, +) -> Result, CompileError> { + let forests = std::mem::take(&mut request.planner_candidate_forests); + if forests.is_empty() { + return enumerate_frontier_candidates(request); + } + // Keep the existing deterministic ordering for equal-cost candidates; + // every discovered forest still reaches deployment admission and pricing. + let mut candidates: Vec = Vec::new(); + for forest in std::iter::once(request.queries.clone()).chain(forests) { + let mut candidate = request.clone(); + candidate.queries = forest; + for candidate in enumerate_frontier_candidates(candidate)? { + if !candidates.iter().any(|existing| { + existing.allow_mixed_summary_and_exact_execution + == candidate.allow_mixed_summary_and_exact_execution + && existing.enabled_materialization_keys + == candidate.enabled_materialization_keys + && existing + .queries + .iter() + .zip(&candidate.queries) + .all(|(a, b)| a.selected_plan_root == b.selected_plan_root) + }) { + candidates.push(candidate); + } + if candidates.len() > 4096 { + return Err(invalid( + "deployment candidate inventory exceeds budget; no partial inventory selected", + )); + } + } + } + Ok(candidates) +} + +fn enumerate_frontier_candidates( + mut request: PhysicalCompilationRequest, ) -> Result, CompileError> { + request.planner_candidate_forests.clear(); let mut candidates = materialization_candidates(request)?; let roots: Vec<_> = candidates .last() - .expect("exact alternative") + .expect("exact candidate") .queries .iter() .map(|q| match &q.selected_plan_root.expr { planner_types::post_asap::SummaryExpr::KeepPreAsap(root) => std::rc::Rc::clone(root), - _ => unreachable!("native alternative retains canonical roots"), + _ => unreachable!("native candidate retains canonical roots"), }) .collect(); let strategy = @@ -813,11 +864,11 @@ pub fn enumerate_exact_and_materialized_candidates( .collect(); if maintained_roots.iter().any(Option::is_some) { // Current-series rules are compatible with window summaries in other - // workload roots. Preserve each priced temporal alternative and mask. + // workload roots. Preserve each priced temporal candidate and mask. let maintained: Vec<_> = candidates .iter() - .map(|alternative| { - let mut candidate = alternative.clone(); + .map(|candidate| { + let mut candidate = candidate.clone(); for (query, selected) in candidate.queries.iter_mut().zip(&maintained_roots) { if let Some(selected) = selected { query.selected_plan_root = std::rc::Rc::clone(selected); @@ -889,7 +940,7 @@ fn materialization_candidates( &query.selected_plan_root, ) { Ok(found) => keys.extend(found), - // A failed local projection must not make the native alternative + // A failed local projection must not make the native candidate // disappear. Compile/select_lowest_cost_candidate retains its concrete unavailability. Err(_) => return Ok(vec![request, exact]), } @@ -921,6 +972,34 @@ mod tests { use super::super::compiler::BackendLocalPlanningInput; use super::*; + /// Deployment pricing must see candidate sketch families, not only an + /// upstream winner chosen before runtime resource evidence is applied. + #[test] + fn planner_quantile_inventory_reaches_backend_before_family_selection() { + let mut input = fixture(); + let queries = input.query_workload.repeating_queries.as_mut().unwrap(); + queries.truncate(1); + queries[0].query = planner_types::workload::Query("quantile_over_time(0.9,m[1m])".into()); + queries[0].requirements.accuracy = planner_types::workload::AccuracyRequirement::Explicit( + crate::types::AccuracyTarget::Epsilon(0.05), + ); + let (request, _) = input.into_physical_compilation_request().unwrap(); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let roots = candidates + .iter() + .flat_map(|c| &c.queries) + .map(|q| format!("{:?}", q.selected_plan_root)) + .collect::>(); + assert!( + roots.iter().any(|r| r.contains("Kll")), + "KLL disappeared before backend pricing" + ); + assert!( + roots.iter().any(|r| r.contains("DDSketch")), + "DDSketch disappeared before backend pricing" + ); + } + /// A deployment without external execution rejects native candidates before pricing. #[test] fn local_only_deployment_rejects_external_candidate_before_pricing() { @@ -1256,7 +1335,7 @@ mod tests { let (mut request, env) = fixture().into_physical_compilation_request().unwrap(); request.allow_mixed_summary_and_exact_execution = false; request.queries[0].window_realization_candidates.clear(); - let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let candidates = enumerate_frontier_candidates(request).unwrap(); let (manifests, explanations) = compile_candidates_for_pricing( candidates, env, @@ -1382,7 +1461,7 @@ mod tests { crate::types::AccuracyTarget::Exact, ); let (request, environment) = snapshot.into_physical_compilation_request().unwrap(); - let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let candidates = enumerate_frontier_candidates(request).unwrap(); assert_eq!( candidates.len(), 5, @@ -1446,7 +1525,7 @@ mod tests { WorkloadCostEvidence, ) { let (request, env) = fixture().into_physical_compilation_request().unwrap(); - let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let candidates = enumerate_frontier_candidates(request).unwrap(); let quotes = candidates .iter() .map(|candidate| { @@ -1480,7 +1559,7 @@ mod tests { // Retained local input is priced once per metric, separate from the native service. #[test] - fn counter_materialization_manifest_prices_owned_state_and_distinct_native_alternative() { + fn counter_materialization_manifest_prices_owned_state_and_distinct_native_candidate() { use planner_types::workload::{AccuracyRequirement, Query}; let mut snapshot = fixture(); let entry = &mut snapshot.query_workload.repeating_queries.as_mut().unwrap()[0]; @@ -1535,19 +1614,14 @@ mod tests { ), ("sum_over_time(m[1m]) + count_over_time(m[1m])", vec!["m"]), ] { - let (mut request, env) = fixture().into_physical_compilation_request().unwrap(); - request.queries[0].query_string = query.into(); - request - .query_workload - .as_mut() - .unwrap() - .repeating_queries - .as_mut() - .unwrap()[0] - .query = planner_types::workload::Query(query.into()); + let mut input = fixture(); + input.query_workload.repeating_queries.as_mut().unwrap()[0].query = + planner_types::workload::Query(query.into()); + let (request, env) = input.into_physical_compilation_request().unwrap(); let exact = enumerate_exact_and_materialized_candidates(request) .unwrap() - .pop() + .into_iter() + .find(|candidate| !candidate.allow_mixed_summary_and_exact_execution) .unwrap(); let plan = DeploymentPlanCompiler .compile_promql(exact.clone(), env.clone()) @@ -1663,7 +1737,9 @@ mod tests { assert!(plan.cost_comparison.unwrap().candidate_evaluations[0] .unavailable_reason .is_some()); - evidence.quotes[1].executable = false; + for quote in &mut evidence.quotes[1..] { + quote.executable = false; + } assert!(select_lowest_cost_candidate(candidates.clone(), env.clone(), &evidence).is_err()); let (_, _, mut evidence) = quoted(); evidence @@ -1764,7 +1840,7 @@ mod tests { } #[test] - fn exact_alternative_does_not_require_unused_state_implementation_evidence() { + fn exact_candidate_does_not_require_unused_state_implementation_evidence() { let (candidates, env, evidence) = quoted(); let mut exact = candidates[1].clone(); assert_eq!( diff --git a/control_plane/src/planner_selection.rs b/control_plane/src/planner_selection.rs index a97342bb1..1221e0cce 100644 --- a/control_plane/src/planner_selection.rs +++ b/control_plane/src/planner_selection.rs @@ -331,6 +331,44 @@ pub fn select_workload_with_accuracy_model_and_trace( Ok((selected, trace)) } +/// Preserve Planner candidates for deployment admission and pricing. This +/// does not select a winner or interpret an absent runtime quote as illegality. +/// Each returned forest has one root; independent roots remain factored rather +/// than materializing the workload's Cartesian product. +pub fn enumerate_workload_candidates( + roots: Vec<(usize, Rc)>, + accuracy: AccuracyTarget, + cost_model: &ControlPlaneCostModel, + evidence: &dyn AccuracyEvidenceProvider, + accuracy_model: &dyn AccuracyModel, +) -> Result, SelectionError> { + let strategies = replacement_strategies(cost_model, evidence, accuracy_model); + let space = asap_aware_mapping::search_workload_with_targets( + roots + .into_iter() + .map(|(id, root)| (id, root, Some(accuracy.clone()))) + .collect(), + &strategies, + accuracy_model, + ); + let mut inventory = asap_aware_mapping::replacement::CandidateDagInventory { + candidates: Vec::new(), + rejected_assemblies: Vec::new(), + }; + for (id, _) in &space.roots { + let root = space + .enumerate_candidate_dags_for_root(id, 65_536) + .map_err(|error| SelectionError::Workload(error.to_string()))?; + inventory.candidates.extend(root.candidates); + inventory.rejected_assemblies.extend( + root.rejected_assemblies + .into_iter() + .map(|reason| format!("query {id}: {reason}")), + ); + } + Ok(inventory) +} + /// The [`ReplacementStrategy`] set this deployment registers, carrying its own /// cost and accuracy models. This is deliberately not Planner's /// `default_strategies_with`: two of the strategies that list would give us are From cb3fb3839edc87abf239ac77ebface9dbbec67c5 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:28:06 +0000 Subject: [PATCH 16/80] test: distinguish admissible candidates from accuracy rejections in level 1 --- control_plane/tests/issue754_level1.rs | 67 +++++++++++++++ .../issue754-human-review/render.py | 82 ++++++++++++------- 2 files changed, 118 insertions(+), 31 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index a1f047c6a..ca7a9ca72 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -471,6 +471,73 @@ fn issue754_queries_have_valid_physical_plans() { } let mut input: BackendLocalPlanningInput = serde_json::from_value(snapshot).unwrap(); let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + if case.name == "spatial-quantile" { + // The fixture's admissible sketch families must reach deployment + // costing; the initially preferred family is not the inventory. + let mut families = std::collections::BTreeSet::new(); + for forest in &request.planner_candidate_forests { + for query in forest { + let dag = + planner_types::post_asap::compile_executable_dag(&query.selected_plan_root) + .unwrap(); + for node in dag.nodes { + if let planner_types::post_asap::ExecutableOperatorPayload::SummaryAgg { + family: SummaryFamilyType::Sketch(kind, _), + .. + } = node.payload + { + families.insert(format!("{:?}", kind.algorithm())); + } + } + } + } + assert!( + families.contains("Kll") + || request + .planner_selection_trace + .iter() + .flat_map(|trace| trace["groups"].as_array().into_iter().flatten()) + .flat_map(|group| group["rejected"].as_array().into_iter().flatten()) + .any(|rejection| rejection["description"] + .as_str() + .is_some_and(|s| s.contains("Kll")) + && rejection["reason"] + .as_str() + .is_some_and(|s| s.contains("does not satisfy"))), + "a missing KLL candidate needs an explicit accuracy rejection" + ); + let mut relaxed = input.clone(); + relaxed.query_workload.repeating_queries.as_mut().unwrap()[0] + .requirements + .accuracy = planner_types::workload::AccuracyRequirement::Explicit( + planner_types::types::AccuracyTarget::Epsilon(0.05), + ); + let (relaxed, _) = relaxed.into_physical_compilation_request().unwrap(); + let roots = relaxed + .planner_candidate_forests + .iter() + .flatten() + .map(|query| format!("{:?}", query.selected_plan_root)) + .collect::>(); + assert!( + roots.iter().any(|root| root.contains("Kll")), + "admissible KLL disappeared before deployment costing" + ); + assert!( + roots.iter().any(|root| root.contains("DDSketch")), + "admissible DDSketch disappeared before deployment costing" + ); + assert!( + families.contains("DDSketch"), + "DDSketch disappeared before deployment costing" + ); + assert!( + request.planner_selection_trace.iter().any(|trace| trace + ["computation_search_scope"]["joint_workload_search_exhaustive"] + == false), + "root substitutions must not be reported as exhaustive joint search" + ); + } let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let mut valid_plans = Vec::new(); let mut quotes = Vec::new(); diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 7592da80f..1c7cdf057 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -41,12 +41,14 @@ def block(value): return '```json\n' + json.dumps(value, indent=2) + '\n```\n' rows = [] +planner_revisions = set() for path in sorted(BASE.glob('*.json')): plan = json.loads(path.read_text()) + planner_revisions.add(plan['envelope']['planner_revision']) entry = next(iter(plan['query_plan']['entries'].values())) lines = ['# ' + path.stem, '', '`' + entry['canonical_query'] + '`', '', f'[Raw selected plan]({path.name}) · [DAG DOT]({path.stem}.dot)', '', - '## Planner-selected computation', '', + '## Selected computation: logical provenance', '', 'IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately.', ''] for dag in plan['query_plan']['selected_dags'].values(): lines += [f"Root: `{dag['root']}`.", '', '| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) |', '| --- | --- | --- | --- | --- |'] @@ -77,6 +79,25 @@ def block(value): lines += [f"Its input is node `{producer['id']}`: {cell(producer['payload'])}. Column indices refer to that producer's output schema above.", ''] if not found: lines += ['No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table.', ''] + report = plan.get('cost_comparison') or {} + lines += ['## Candidate admission and costing', '', + 'Costs below come from the controlled Level 1 fixture, not production measurements.', ''] + traces = report.get('logical_selection', []) + for trace in traces: + if trace.get('computation_search_scope'): + lines += [block(trace['computation_search_scope'])] + for group in trace.get('groups', []): + for rejected in group.get('rejected', []): + description = rejected.get('description', '').replace('alternatives', 'candidates') + lines += [f"- {description}: {rejected.get('reason', '')}"] + lines += ['', '| Candidate | Status | Fixture cost | Rejection / unavailable reason |', + '| --- | --- | --- | --- |'] + for index, candidate in enumerate(report.get('candidates', [])): + lines.append(f"| {index} | {cell(candidate.get('status'))} | {cell(candidate.get('total_cost'))} | {cell(candidate.get('unavailable_reason'))} |") + exported = sorted((BASE / 'candidates').glob(path.stem + '-*.json')) + if exported: + lines += ['', 'Successfully compiled candidate plans: ' + ', '.join( + f'[{candidate.stem}](candidates/{candidate.name})' for candidate in exported), ''] lines += ['## Persisted boundaries', ''] if not plan['precompute_plan'].get('executable_dags', {}): lines += ['No precompute executable DAG is installed for this selected candidate.', ''] @@ -92,47 +113,46 @@ def block(value): (BASE / (path.stem + '.md')).write_text('\n'.join(lines)) rows.append(f"| [{path.stem}]({path.stem}.md) | `{entry['canonical_query']}` |") -intro = '''# Issue #754 plans for human review +intro = """# Issue #754 plans for human review -These are the ten **actual selected plans** exported by #728's existing Level 1 -fixture, not hand-written expected plans. This artifact does not record human -approval. No plan behavior or test assertion was changed for this export. +These are actual plans exported by the Level 1 fixture. No human approval is +recorded. Selected plans and successfully compiled candidate plans are retained +as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. -Backend source revision is in [source-commit.txt](source-commit.txt); Planner is -pinned to `c27cd14b8e052ce1f4641c619488ad539ad71f56`. The source revision differs -from the export execution revision only by inherited documentation merges. +Backend source revision is in [source-commit.txt](source-commit.txt). Planner: +. -Each page contains the full Planner operation payloads, dependency edges, output -column indices/types, timing, sort expressions, persisted boundaries, maintenance -windows and the installed query adapter. Raw JSON and DOT are retained beside it. -`fallback` in a Planner source payload is an IR tag: it does not by itself prove -that execution forwards to an exact backend. Inspect the bound QueryPlan and -Level 2 provenance to determine execution behavior. +## Current implementation boundary -## Review order +These exports describe the current Backend implementation. They do **not** prove +completion of the Planner physical-candidate installation/execution handoff. +The displayed computation is logical provenance; the installed Backend adapter +and stored-output bindings are shown separately. Deployment Rate → heap storage +E2E and latest-value spatial TopK remain outstanding. -1. Follow source → transformation → grouping/window → readout for each query. -2. Check persisted producer nodes against read bindings and pane coverage. -3. For topk-rate, inspect the Sort input and column index, not just descending. -4. Check guarantees and admission evidence in raw JSON for approximate queries. +Candidate discovery preserves each root's admitted computations. Deployment +currently evaluates single-root substitutions in a preferred workload context; +it does not exhaustively enumerate joint workload combinations. Fixture costs +are not evidence of production-optimal placement. -The topk-rate export explicitly sorts `Column(1)` descending, partitioned by -column 2 (`label_0`). Its producer is `FinalizeExactAccumulator` over per-series -Rate state, with column 1 named `value`. The QueryPlan adapter has an implicit -value sort and does not itself serialize an explicit sort-key expression. -This exposes the relevant mapping for review; it is not an additional assertion. +## Review order -The grouped-temporal-sum cost-reversal test covers only that query. The other -selected plans use fixture costs; these exports do not prove production-optimal -placement or an exhaustive search over maintenance/query-time alternatives. +1. Check source, value transformations, grouping, windows and readouts. +2. Compare candidate rejection reasons with the query's accuracy requirement. +3. Check persisted boundaries, definition IDs and requested pane coverage. +4. For topk-rate, check the actual rate-value sort expression and partition keys. +5. Compare costs and rejected candidates before reviewing the selected adapter. -Legacy `residual` module/type names still exist in code. They are not presented -here as a new architectural layer; renaming or removing that adapter is separate -from the bound-query SDS migration. +The strict spatial-quantile fixture rejects the default KLL guarantee. A separate +assertion with relaxed accuracy verifies that both KLL and DDSketch reach costing +when admitted. The grouped-temporal-sum test checks cost-dependent placement; +it does not establish this for every query. Sort-key mutation tests reject ranking +by timestamp or label instead of the finalized rate value. | Query | PromQL | | --- | --- | -''' +""" +intro = intro.replace('', ', '.join(f'`{revision}`' for revision in sorted(planner_revisions))) ending = ''' ## Reproduce From e0bf5bdac5854dd7ff643e9c06b97d948787e827 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:29:55 +0000 Subject: [PATCH 17/80] docs: export current query plans and candidate admission evidence --- .../issue754-human-review/README.md | 56 +- .../candidates/grouped-rate-0.dot | 23 + .../candidates/grouped-rate-0.json | 1446 ++++++++++++ .../candidates/grouped-rate-1.dot | 11 + .../candidates/grouped-rate-1.json | 316 +++ .../candidates/grouped-temporal-sum-0.dot | 21 + .../candidates/grouped-temporal-sum-0.json | 1299 +++++++++++ .../candidates/grouped-temporal-sum-1.dot | 11 + .../candidates/grouped-temporal-sum-1.json | 402 ++++ .../candidates/grouped-temporal-sum-3.dot | 23 + .../candidates/grouped-temporal-sum-3.json | 1530 +++++++++++++ .../candidates/quantile-ratio-0.dot | 26 + .../candidates/quantile-ratio-0.json | 1929 +++++++++++++++++ .../candidates/quantile-ratio-1.dot | 11 + .../candidates/quantile-ratio-1.json | 556 +++++ .../candidates/quantile-ratio-2.dot | 11 + .../candidates/quantile-ratio-2.json | 556 +++++ .../candidates/spatial-quantile-0.dot | 21 + .../candidates/spatial-quantile-0.json | 1294 +++++++++++ .../candidates/spatial-quantile-1.dot | 11 + .../candidates/spatial-quantile-1.json | 243 +++ .../candidates/spatial-quantile-2.dot | 11 + .../candidates/spatial-quantile-2.json | 569 +++++ .../candidates/spatial-quantile-3.dot | 11 + .../candidates/spatial-quantile-3.json | 243 +++ .../candidates/spatial-sum-0.dot | 21 + .../candidates/spatial-sum-0.json | 1116 ++++++++++ .../candidates/spatial-sum-1.dot | 11 + .../candidates/spatial-sum-1.json | 219 ++ .../candidates/spatial-sum-2.dot | 11 + .../candidates/spatial-sum-2.json | 540 +++++ .../candidates/spatial-sum-3.dot | 11 + .../candidates/spatial-sum-3.json | 223 ++ .../candidates/spatial-topk-1.dot | 11 + .../candidates/spatial-topk-1.json | 162 ++ .../candidates/spatial-topk-2.dot | 11 + .../candidates/spatial-topk-2.json | 495 +++++ .../candidates/temporal-quantile-0.dot | 21 + .../candidates/temporal-quantile-0.json | 1203 ++++++++++ .../candidates/temporal-quantile-1.dot | 11 + .../candidates/temporal-quantile-1.json | 243 +++ .../candidates/temporal-quantile-2.dot | 11 + .../candidates/temporal-quantile-2.json | 243 +++ .../candidates/temporal-rate-0.dot | 21 + .../candidates/temporal-rate-0.json | 1027 +++++++++ .../candidates/temporal-rate-1.dot | 11 + .../candidates/temporal-rate-1.json | 223 ++ .../candidates/temporal-rate-2.dot | 11 + .../candidates/temporal-rate-2.json | 219 ++ .../candidates/temporal-rate-3.dot | 11 + .../candidates/temporal-rate-3.json | 223 ++ .../candidates/temporal-sum-0.dot | 21 + .../candidates/temporal-sum-0.json | 1025 +++++++++ .../candidates/temporal-sum-1.dot | 11 + .../candidates/temporal-sum-1.json | 219 ++ .../candidates/temporal-sum-2.dot | 11 + .../candidates/temporal-sum-2.json | 223 ++ .../candidates/topk-rate-0.dot | 25 + .../candidates/topk-rate-0.json | 1562 +++++++++++++ .../candidates/topk-rate-1.dot | 11 + .../candidates/topk-rate-1.json | 290 +++ .../candidates/topk-rate-2.dot | 15 + .../candidates/topk-rate-2.json | 327 +++ .../issue754-human-review/grouped-rate.json | 76 +- .../issue754-human-review/grouped-rate.md | 23 +- .../grouped-temporal-sum.json | 96 +- .../grouped-temporal-sum.md | 24 +- .../issue754-human-review/quantile-ratio.json | 92 +- .../issue754-human-review/quantile-ratio.md | 25 +- .../issue754-human-review/render.py | 2 +- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 78 +- .../issue754-human-review/spatial-quantile.md | 29 +- .../issue754-human-review/spatial-sum.json | 74 +- .../issue754-human-review/spatial-sum.md | 24 +- .../issue754-human-review/spatial-topk.json | 60 +- .../issue754-human-review/spatial-topk.md | 23 +- .../temporal-quantile.json | 72 +- .../temporal-quantile.md | 28 +- .../issue754-human-review/temporal-rate.json | 74 +- .../issue754-human-review/temporal-rate.md | 24 +- .../issue754-human-review/temporal-sum.json | 68 +- .../issue754-human-review/temporal-sum.md | 23 +- .../issue754-human-review/topk-rate.dot | 8 +- .../issue754-human-review/topk-rate.json | 364 +++- .../issue754-human-review/topk-rate.md | 35 +- 86 files changed, 21610 insertions(+), 393 deletions(-) create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-0.json create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-1.json create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-2.json diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 5a42551fa..8747b7f70 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -1,40 +1,38 @@ # Issue #754 plans for human review -These are the ten **actual selected plans** exported by #728's existing Level 1 -fixture, not hand-written expected plans. This artifact does not record human -approval. No plan behavior or test assertion was changed for this export. +These are actual plans exported by the Level 1 fixture. No human approval is +recorded. Selected plans and successfully compiled candidate plans are retained +as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. -Backend source revision is in [source-commit.txt](source-commit.txt); Planner is -pinned to `c27cd14b8e052ce1f4641c619488ad539ad71f56`. The source revision differs -from the export execution revision only by inherited documentation merges. +Backend source revision is in [source-commit.txt](source-commit.txt). Planner: +`2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986`. -Each page contains the full Planner operation payloads, dependency edges, output -column indices/types, timing, sort expressions, persisted boundaries, maintenance -windows and the installed query adapter. Raw JSON and DOT are retained beside it. -`fallback` in a Planner source payload is an IR tag: it does not by itself prove -that execution forwards to an exact backend. Inspect the bound QueryPlan and -Level 2 provenance to determine execution behavior. +## Current implementation boundary -## Review order - -1. Follow source → transformation → grouping/window → readout for each query. -2. Check persisted producer nodes against read bindings and pane coverage. -3. For topk-rate, inspect the Sort input and column index, not just descending. -4. Check guarantees and admission evidence in raw JSON for approximate queries. +These exports describe the current Backend implementation. They do **not** prove +completion of the Planner physical-candidate installation/execution handoff. +The displayed computation is logical provenance; the installed Backend adapter +and stored-output bindings are shown separately. Deployment Rate → heap storage +E2E and latest-value spatial TopK remain outstanding. -The topk-rate export explicitly sorts `Column(1)` descending, partitioned by -column 2 (`label_0`). Its producer is `FinalizeExactAccumulator` over per-series -Rate state, with column 1 named `value`. The QueryPlan adapter has an implicit -value sort and does not itself serialize an explicit sort-key expression. -This exposes the relevant mapping for review; it is not an additional assertion. +Candidate discovery preserves each root's admitted computations. Deployment +currently evaluates single-root substitutions in a preferred workload context; +it does not exhaustively enumerate joint workload combinations. Fixture costs +are not evidence of production-optimal placement. -The grouped-temporal-sum cost-reversal test covers only that query. The other -selected plans use fixture costs; these exports do not prove production-optimal -placement or an exhaustive search over maintenance/query-time alternatives. +## Review order -Legacy `residual` module/type names still exist in code. They are not presented -here as a new architectural layer; renaming or removing that adapter is separate -from the bound-query SDS migration. +1. Check source, value transformations, grouping, windows and readouts. +2. Compare candidate rejection reasons with the query's accuracy requirement. +3. Check persisted boundaries, definition IDs and requested pane coverage. +4. For topk-rate, check the actual rate-value sort expression and partition keys. +5. Compare costs and rejected candidates before reviewing the selected adapter. + +The strict spatial-quantile fixture rejects the default KLL guarantee. A separate +assertion with relaxed accuracy verifies that both KLL and DDSketch reach costing +when admitted. The grouped-temporal-sum test checks cost-dependent placement; +it does not establish this for every query. Sort-key mutation tests reject ranking +by timestamp or label instead of the finalized rate value. | Query | PromQL | | --- | --- | diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot new file mode 100644 index 000000000..c9fb85791 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot @@ -0,0 +1,23 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_0_1 [label="ExactReadout\nRate"]; + query_0_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_2 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + query_0_2 -> query_0_1; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json new file mode 100644 index 000000000..632d92022 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -0,0 +1,1446 @@ +{ + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + }, + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 3, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5849823772717530049, + "plan_version": 1, + "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + }, + "envelope": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 5849823772717530049, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Exact": { + "Aggregate": { + "having": null, + "measures": [ + { + "col": null, + "kind": "sum" + } + ], + "output_names": [ + "" + ], + "reduction": { + "Reduce": [ + 2 + ] + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 3 + } + }, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "aggregate", + "operation": "sum", + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "exact_readout", + "input": 2, + "readout": "rate" + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot new file mode 100644 index 000000000..a3edc5e20 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json new file mode 100644 index 000000000..047aac38d --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -0,0 +1,316 @@ +{ + "envelope": { + "plan_id": 741363842036532054, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 741363842036532054, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 741363842036532054, + "plan_version": 1, + "snapshot_sha256": "5021409fc6aa6b0871c33c64216eabdf16b6fe3e2600b417b3701a594e382197" + }, + "envelope": { + "plan_id": 741363842036532054, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 741363842036532054, + "plan_version": 1, + "snapshot_sha256": "5021409fc6aa6b0871c33c64216eabdf16b6fe3e2600b417b3701a594e382197" + }, + "envelope": { + "plan_id": 741363842036532054, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 741363842036532054, + "plan_version": 1, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot new file mode 100644 index 000000000..691e8e32e --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json new file mode 100644 index 000000000..5d21bedb3 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -0,0 +1,1299 @@ +{ + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "13322971198486020251": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + }, + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 13322971198486020251, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", + "schema_version": 1, + "materialization": 13322971198486020251, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 13322971198486020251 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 398383639928265061, + "plan_version": 1, + "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + }, + "envelope": { + "plan_id": 398383639928265061, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 398383639928265061, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum by (label_0) (sum_over_time(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 13322971198486020251, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "materialization": 13322971198486020251, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 13322971198486020251, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": null, + "provenance": "LogicalRewrite", + "rank": 1, + "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", + "replacement_kind": "rewrite", + "runtime_support_status": "supported", + "selected": false, + "status": "unselected", + "strategy": "SemanticEquivalentRewriteStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 2, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": false, + "status": "unselected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot new file mode 100644 index 000000000..2696ac2a6 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json new file mode 100644 index 000000000..acc649e1c --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -0,0 +1,402 @@ +{ + "envelope": { + "plan_id": 375190931036314940, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 375190931036314940, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 375190931036314940, + "plan_version": 1, + "snapshot_sha256": "660c4121b4fd9dc03cb63ef0136345337b3125f02744c7d2267930d7a5ecbf3e" + }, + "envelope": { + "plan_id": 375190931036314940, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 375190931036314940, + "plan_version": 1, + "snapshot_sha256": "660c4121b4fd9dc03cb63ef0136345337b3125f02744c7d2267930d7a5ecbf3e" + }, + "envelope": { + "plan_id": 375190931036314940, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 375190931036314940, + "plan_version": 1, + "entries": { + "sum by (label_0) (sum_over_time(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": null, + "provenance": "LogicalRewrite", + "rank": 1, + "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", + "replacement_kind": "rewrite", + "runtime_support_status": "supported", + "selected": false, + "status": "unselected", + "strategy": "SemanticEquivalentRewriteStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 2, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": false, + "status": "unselected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot new file mode 100644 index 000000000..474e4b80d --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot @@ -0,0 +1,23 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a545abfa310f89ae [label="materialization\npolicy_fp:a545abfa310f89ae\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11909113880704420270) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_0_1 [label="ExactReadout\nSum"]; + query_0_2 [label="ReadMaterialization\npolicy_fp:a545abfa310f89ae\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a545abfa310f89ae -> query_0_2 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + query_0_2 -> query_0_1; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json new file mode 100644 index 000000000..58ae6b582 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -0,0 +1,1530 @@ +{ + "envelope": { + "plan_id": 3225737927651639557, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3225737927651639557, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11909113880704420270": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3225737927651639557, + "plan_version": 1, + "snapshot_sha256": "c7646d01552ed81c2644a9fc353010b259e81c2465328a254a1e97cc218e69e1" + }, + "envelope": { + "plan_id": 3225737927651639557, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11909113880704420270, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11909113880704420270", + "schema_version": 1, + "materialization": 11909113880704420270, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11909113880704420270 + } + }, + "query_sink": 3, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3225737927651639557, + "plan_version": 1, + "snapshot_sha256": "c7646d01552ed81c2644a9fc353010b259e81c2465328a254a1e97cc218e69e1" + }, + "envelope": { + "plan_id": 3225737927651639557, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3225737927651639557, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Exact": { + "Aggregate": { + "having": null, + "measures": [ + { + "col": null, + "kind": "sum" + } + ], + "output_names": [ + "" + ], + "reduction": { + "Reduce": [ + 2 + ] + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 3 + } + }, + "entries": { + "sum by (label_0) (sum_over_time(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "aggregate", + "operation": "sum", + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "exact_readout", + "input": 2, + "readout": "sum" + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11909113880704420270, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "materialization": 11909113880704420270, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11909113880704420270, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": null, + "provenance": "LogicalRewrite", + "rank": 1, + "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", + "replacement_kind": "rewrite", + "runtime_support_status": "supported", + "selected": false, + "status": "unselected", + "strategy": "SemanticEquivalentRewriteStrategy" + }, + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "not_selected_by_planner", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 2, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": false, + "status": "unselected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot new file mode 100644 index 000000000..32daac6aa --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot @@ -0,0 +1,26 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_0_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_0_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_0_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_0_2 [style=dashed, color=gray40, label="reads"]; + query_0_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_0_1 -> query_0_0; + query_0_3 -> query_0_0; + query_0_2 -> query_0_1; + query_0_2 -> query_0_3; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json new file mode 100644 index 000000000..98bbe3922 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -0,0 +1,1929 @@ +{ + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.0049751243781094535, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.0049751243781094535 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "2776719732314936823": { + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + }, + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 2776719732314936823, + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", + "schema_version": 1, + "materialization": 2776719732314936823, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true, + "alpha": 0.0049751243781094535 + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 2776719732314936823 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14871479243635342203, + "plan_version": 1, + "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + }, + "envelope": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 14871479243635342203, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.5 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "binary", + "operator": { + "checked_finite_division": false, + "checked_relative_division": false, + "kind": { + "Arithmetic": "Div" + }, + "vector_match": null + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 1, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 4, + "role": "Left", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Right", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "binary", + "inputs": [ + 1, + 3 + ], + "operator": "Div" + }, + "1": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "2": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 2776719732314936823, + "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + }, + "materialization": 2776719732314936823, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "3": { + "op": "summary_estimate", + "input": 2, + "query": { + "kind": "quantile", + "q": 0.5 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 2776719732314936823, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "accuracy_evidence_scope": { + "data_snapshot_id": "issue-754-level1", + "hll": null, + "observed_at_unix_ms": 9500, + "query_id": "compat-query-0", + "source": "issue-754-finite-generator" + }, + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 131072.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 131072.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 4, + "rejected": [ + { + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 5, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 6, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot new file mode 100644 index 000000000..25de0220f --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json new file mode 100644 index 000000000..f760d6575 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -0,0 +1,556 @@ +{ + "envelope": { + "plan_id": 5752356276213301876, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 5752356276213301876, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5752356276213301876, + "plan_version": 1, + "snapshot_sha256": "da92d04cc473b203b23c785b5b6a0ee1ddb12f29b5e82f245ac636ef47fb9cad" + }, + "envelope": { + "plan_id": 5752356276213301876, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5752356276213301876, + "plan_version": 1, + "snapshot_sha256": "da92d04cc473b203b23c785b5b6a0ee1ddb12f29b5e82f245ac636ef47fb9cad" + }, + "envelope": { + "plan_id": 5752356276213301876, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 5752356276213301876, + "plan_version": 1, + "entries": { + "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "accuracy_evidence_scope": { + "data_snapshot_id": "issue-754-level1", + "hll": null, + "observed_at_unix_ms": 9500, + "query_id": "compat-query-0", + "source": "issue-754-finite-generator" + }, + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 131072.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 131072.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 4, + "rejected": [ + { + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 5, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 6, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot new file mode 100644 index 000000000..25de0220f --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json new file mode 100644 index 000000000..9921e2913 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -0,0 +1,556 @@ +{ + "envelope": { + "plan_id": 12971657221408630864, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 12971657221408630864, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 12971657221408630864, + "plan_version": 1, + "snapshot_sha256": "59bd2d2fcdc457e2f0b6fd69b34d69c94d12cb251016be429c8d54a23c82046b" + }, + "envelope": { + "plan_id": 12971657221408630864, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 12971657221408630864, + "plan_version": 1, + "snapshot_sha256": "59bd2d2fcdc457e2f0b6fd69b34d69c94d12cb251016be429c8d54a23c82046b" + }, + "envelope": { + "plan_id": 12971657221408630864, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 12971657221408630864, + "plan_version": 1, + "entries": { + "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "accuracy_evidence_scope": { + "data_snapshot_id": "issue-754-level1", + "hll": null, + "observed_at_unix_ms": 9500, + "query_id": "compat-query-0", + "source": "issue-754-finite-generator" + }, + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 131072.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 131072.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.010000000000000002 + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "zero" + }, + { + "op": "zero" + } + ] + }, + "metric": "relative_value", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.0049751243781094535 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.0049751243781094535 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.0049751243781094535 + } + } + } + ] + }, + "input_index": 1, + "kind": "child_guarantee" + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 0, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "contract": "complete finite issue-754 generator population", + "input_index": 1, + "kind": "input_value_domain", + "lower": 10.0, + "max_samples": 14408, + "upper": 1600.0 + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_division" + }, + "rule": "relative_division" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.5 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 4, + "rejected": [ + { + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 5, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 6, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot new file mode 100644 index 000000000..49af74e84 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_15fed25926ac7261 [label="materialization\npolicy_fp:15fed25926ac7261\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1584935399223751265) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:15fed25926ac7261\nwindow=5000ms\nlookback=Some(5000)"]; + materialization_15fed25926ac7261 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json new file mode 100644 index 000000000..ebe1bec4b --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -0,0 +1,1294 @@ +{ + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.01 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "1584935399223751265": { + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + }, + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 1584935399223751265, + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", + "schema_version": 1, + "materialization": 1584935399223751265, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 5000, + "slide_ms": 10000, + "pane_origin_ms": 5000 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", + "nodes": { + "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + }, + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 1584935399223751265 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3294188734724225991, + "plan_version": 1, + "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + }, + "envelope": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3294188734724225991, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "quantile by (label_0) (0.9, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 1584935399223751265, + "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + }, + "full_window_slide_ms": 10000, + "materialization": 1584935399223751265, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 1584935399223751265, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot new file mode 100644 index 000000000..72aef70d0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json new file mode 100644 index 000000000..82f1d9074 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -0,0 +1,243 @@ +{ + "envelope": { + "plan_id": 14256379658571227787, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 14256379658571227787, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14256379658571227787, + "plan_version": 1, + "snapshot_sha256": "e83203acc81b4c9a80aa3467e511ef13d1ca72e7d530f2d3b4154a7124e80fa1" + }, + "envelope": { + "plan_id": 14256379658571227787, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14256379658571227787, + "plan_version": 1, + "snapshot_sha256": "e83203acc81b4c9a80aa3467e511ef13d1ca72e7d530f2d3b4154a7124e80fa1" + }, + "envelope": { + "plan_id": 14256379658571227787, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 14256379658571227787, + "plan_version": 1, + "entries": { + "quantile by (label_0) (0.9, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot new file mode 100644 index 000000000..907d6c7da --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json new file mode 100644 index 000000000..47cd44d23 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -0,0 +1,569 @@ +{ + "envelope": { + "plan_id": 18366075381595067177, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 18366075381595067177, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 18366075381595067177, + "plan_version": 1, + "snapshot_sha256": "a50ca7b888d90687444a3c78f51565aa4f92f48f748a0c1d22f5a5c1d89a80da" + }, + "envelope": { + "plan_id": 18366075381595067177, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 18366075381595067177, + "plan_version": 1, + "snapshot_sha256": "a50ca7b888d90687444a3c78f51565aa4f92f48f748a0c1d22f5a5c1d89a80da" + }, + "envelope": { + "plan_id": 18366075381595067177, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 18366075381595067177, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "source samples" + } + ] + } + }, + { + "id": 1, + "payload": { + "kind": "value", + "operation": { + "MaintainPopulation": { + "population": { + "input": { + "CurrentSeries": { + "grouping": [ + "label_0" + ], + "lookback_ms": 5000, + "matchers": [], + "metric": "data", + "without": false + } + }, + "max_k": 0, + "quantiles": true + } + } + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact members under the declared population semantics" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": { + "ReadPopulation": { + "readout": { + "Quantile": { + "q": 0.9 + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "quantile_0_9", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact current-population readout" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "quantile by (label_0) (0.9, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "metric": "data", + "matchers": [], + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "lookback_ms": 5000, + "max_input_lag_ms": 5000, + "history_retention_ms": 0, + "max_series": 100000, + "max_bytes": 1073741824, + "max_k": 0, + "quantiles": true + }, + "readout": { + "kind": "quantile", + "q": 0.9 + } + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot new file mode 100644 index 000000000..72aef70d0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json new file mode 100644 index 000000000..308411893 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -0,0 +1,243 @@ +{ + "envelope": { + "plan_id": 7667691247138405742, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 7667691247138405742, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 7667691247138405742, + "plan_version": 1, + "snapshot_sha256": "0753a8d648c301f37202296a41f8a62dc12431d7b1ffe0783be9fcfc490a0fe0" + }, + "envelope": { + "plan_id": 7667691247138405742, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 7667691247138405742, + "plan_version": 1, + "snapshot_sha256": "0753a8d648c301f37202296a41f8a62dc12431d7b1ffe0783be9fcfc490a0fe0" + }, + "envelope": { + "plan_id": 7667691247138405742, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 7667691247138405742, + "plan_version": 1, + "entries": { + "quantile by (label_0) (0.9, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile by (label_0) (0.9, data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot new file mode 100644 index 000000000..3d279f0b9 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_903fe84f27dd8a04 [label="materialization\npolicy_fp:903fe84f27dd8a04\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(10394281891663284740) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (data)"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:903fe84f27dd8a04\nwindow=5000ms\nlookback=Some(5000)"]; + materialization_903fe84f27dd8a04 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json new file mode 100644 index 000000000..e92de8b92 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -0,0 +1,1116 @@ +{ + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "10394281891663284740": { + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + }, + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 10394281891663284740, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", + "schema_version": 1, + "materialization": 10394281891663284740, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 5000, + "slide_ms": 10000, + "pane_origin_ms": 5000 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", + "nodes": { + "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "grouped", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 5, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 5000, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 10394281891663284740 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3688256239081920855, + "plan_version": 1, + "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + }, + "envelope": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3688256239081920855, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum by (label_0) (data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 10394281891663284740, + "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + }, + "full_window_slide_ms": 10000, + "materialization": 10394281891663284740, + "output_grouping": { + "mode": "reduce", + "keys": [ + "label_0" + ] + }, + "window_ms": 5000, + "pane_origin_ms": 5000, + "readout_lookback_ms": 5000 + } + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 10394281891663284740, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot new file mode 100644 index 000000000..ebd59a548 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (data)"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json new file mode 100644 index 000000000..0028371dc --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -0,0 +1,219 @@ +{ + "envelope": { + "plan_id": 17875413431231421451, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 17875413431231421451, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17875413431231421451, + "plan_version": 1, + "snapshot_sha256": "30281263668785b9e14aa808c84a05be99b49dbb9694ec42c58e75a96e08ad1f" + }, + "envelope": { + "plan_id": 17875413431231421451, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17875413431231421451, + "plan_version": 1, + "snapshot_sha256": "30281263668785b9e14aa808c84a05be99b49dbb9694ec42c58e75a96e08ad1f" + }, + "envelope": { + "plan_id": 17875413431231421451, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 17875413431231421451, + "plan_version": 1, + "entries": { + "sum by (label_0) (data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot new file mode 100644 index 000000000..9962ac0e7 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json new file mode 100644 index 000000000..95c6d47f4 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -0,0 +1,540 @@ +{ + "envelope": { + "plan_id": 8064649510529993241, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 8064649510529993241, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 8064649510529993241, + "plan_version": 1, + "snapshot_sha256": "33a4956677db5b5ed51bfc4698419fcfadc91daddb4de6f612570a1ed564b4e9" + }, + "envelope": { + "plan_id": 8064649510529993241, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 8064649510529993241, + "plan_version": 1, + "snapshot_sha256": "33a4956677db5b5ed51bfc4698419fcfadc91daddb4de6f612570a1ed564b4e9" + }, + "envelope": { + "plan_id": 8064649510529993241, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 8064649510529993241, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "source samples" + } + ] + } + }, + { + "id": 1, + "payload": { + "kind": "value", + "operation": { + "MaintainPopulation": { + "population": { + "input": { + "CurrentSeries": { + "grouping": [ + "label_0" + ], + "lookback_ms": 5000, + "matchers": [], + "metric": "data", + "without": false + } + }, + "max_k": 0, + "quantiles": false + } + } + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact members under the declared population semantics" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": { + "ReadPopulation": { + "readout": "Sum" + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact current-population readout" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "sum by (label_0) (data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "metric": "data", + "matchers": [], + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "lookback_ms": 5000, + "max_input_lag_ms": 5000, + "history_retention_ms": 0, + "max_series": 100000, + "max_bytes": 1073741824, + "max_k": 0, + "quantiles": false + }, + "readout": { + "kind": "sum" + } + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot new file mode 100644 index 000000000..e7f3fb88d --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (data)"; + query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json new file mode 100644 index 000000000..f32688267 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -0,0 +1,223 @@ +{ + "envelope": { + "plan_id": 10907830462850005469, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 10907830462850005469, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 10907830462850005469, + "plan_version": 1, + "snapshot_sha256": "ec56196657331e1e051f4d64053f6df9fa199fccbfe479209e749f3f92bb8447" + }, + "envelope": { + "plan_id": 10907830462850005469, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 10907830462850005469, + "plan_version": 1, + "snapshot_sha256": "ec56196657331e1e051f4d64053f6df9fa199fccbfe479209e749f3f92bb8447" + }, + "envelope": { + "plan_id": 10907830462850005469, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 10907830462850005469, + "plan_version": 1, + "entries": { + "sum by (label_0) (data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "exact_subquery", + "query": "sum by (label_0) (data)" + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot new file mode 100644 index 000000000..e0cf0ab2e --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json new file mode 100644 index 000000000..4f56be447 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -0,0 +1,162 @@ +{ + "envelope": { + "plan_id": 5538412219857372274, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 5538412219857372274, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5538412219857372274, + "plan_version": 1, + "snapshot_sha256": "af5f675dbc7f8c213a47dad50ead551eea15b03e9affe2812086904c35775a0d" + }, + "envelope": { + "plan_id": 5538412219857372274, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5538412219857372274, + "plan_version": 1, + "snapshot_sha256": "af5f675dbc7f8c213a47dad50ead551eea15b03e9affe2812086904c35775a0d" + }, + "envelope": { + "plan_id": 5538412219857372274, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 5538412219857372274, + "plan_version": 1, + "entries": { + "topk by (label_0) (3, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, data)", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot new file mode 100644 index 000000000..aa0ca1060 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json new file mode 100644 index 000000000..ad5cd7289 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -0,0 +1,495 @@ +{ + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + }, + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 2697027346875258477, + "plan_version": 1, + "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + }, + "envelope": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 5 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "source samples" + } + ] + } + }, + { + "id": 1, + "payload": { + "kind": "value", + "operation": { + "MaintainPopulation": { + "population": { + "input": { + "CurrentSeries": { + "grouping": [ + "label_0" + ], + "lookback_ms": 5000, + "matchers": [], + "metric": "data", + "without": false + } + }, + "max_k": 3, + "quantiles": false + } + } + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact members under the declared population semantics" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": { + "ReadPopulation": { + "readout": { + "TopK": { + "k": 3 + } + } + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "exact current-population readout" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "topk by (label_0) (3, data)": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, data)", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "metric": "data", + "matchers": [], + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "lookback_ms": 5000, + "max_input_lag_ms": 5000, + "history_retention_ms": 0, + "max_series": 100000, + "max_bytes": 1073741824, + "max_k": 3, + "quantiles": false + }, + "readout": { + "kind": "top_k", + "k": 3 + } + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 5000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot new file mode 100644 index 000000000..cf6b48735 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json new file mode 100644 index 000000000..5e70b4ab0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -0,0 +1,1203 @@ +{ + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "Sketch": [ + { + "category": "Quantile", + "algorithm": "DDSketch", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "alpha": 0.01, + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "dd_sketch_relative_error", + "alpha": 0.01 + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "3752266711358116078": { + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + }, + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 3752266711358116078, + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", + "schema_version": 1, + "materialization": 3752266711358116078, + "family": { + "family": "sketch", + "algorithm": "DDSketch", + "parameters": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "sketchlib_protobuf_v1", + "sketch_core_msgpack_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { + "operation": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "DDSketch", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true, + "alpha": 0.01 + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 3752266711358116078 + } + }, + "query_sink": 2, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11818444224054941250, + "plan_version": 1, + "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + }, + "envelope": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 11818444224054941250, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": null + }, + { + "id": 2, + "payload": { + "kind": "summary_estimate", + "query": { + "Quantile": { + "q": 0.9 + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "DDSketch", + "category": "Quantile", + "params": { + "DDSketch": { + "alpha": 0.01 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 2 + } + }, + "entries": { + "quantile_over_time(0.9, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "summary_estimate", + "input": 1, + "query": { + "kind": "quantile", + "q": 0.9 + } + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 3752266711358116078, + "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + }, + "materialization": 3752266711358116078, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [ + { + "asap_tier_native_shapes": [ + "quantile", + "quantile_over_time", + "rate", + "sum", + "avg", + "min", + "max" + ], + "name": "data", + "targets": [ + { + "engine": "asap_query" + } + ] + } + ], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 3752266711358116078, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot new file mode 100644 index 000000000..cf6bbb474 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json new file mode 100644 index 000000000..3635a1f43 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -0,0 +1,243 @@ +{ + "envelope": { + "plan_id": 4754089690189431057, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 4754089690189431057, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 4754089690189431057, + "plan_version": 1, + "snapshot_sha256": "c89664e439f4d33e1861c699707fcc8ff80c566d2cb218216a35029f0e417fd4" + }, + "envelope": { + "plan_id": 4754089690189431057, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 4754089690189431057, + "plan_version": 1, + "snapshot_sha256": "c89664e439f4d33e1861c699707fcc8ff80c566d2cb218216a35029f0e417fd4" + }, + "envelope": { + "plan_id": 4754089690189431057, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 4754089690189431057, + "plan_version": 1, + "entries": { + "quantile_over_time(0.9, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot new file mode 100644 index 000000000..cf6bbb474 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json new file mode 100644 index 000000000..6a897a089 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -0,0 +1,243 @@ +{ + "envelope": { + "plan_id": 11545774673163874085, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 11545774673163874085, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11545774673163874085, + "plan_version": 1, + "snapshot_sha256": "c2d9e705eadbc7ad976f425ffe05194332a7fe7ceba1c5abf15d83f52070635a" + }, + "envelope": { + "plan_id": 11545774673163874085, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11545774673163874085, + "plan_version": 1, + "snapshot_sha256": "c2d9e705eadbc7ad976f425ffe05194332a7fe7ceba1c5abf15d83f52070635a" + }, + "envelope": { + "plan_id": 11545774673163874085, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 11545774673163874085, + "plan_version": 1, + "entries": { + "quantile_over_time(0.9, data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "quantile_over_time(0.9, data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 65536.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 65536.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "op": "zero" + }, + "metric": "relative_value", + "provenance": [ + { + "algorithm": "DDSketch", + "contract": "ddsketch_relative_error_alpha_v1", + "kind": "sketch_readout", + "params": { + "DDSketch": { + "alpha": 0.01 + } + }, + "query": "Quantile { q: 0.9 }" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "exact_input" + }, + { + "kind": "accuracy_target", + "target": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + } + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [ + { + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", + "status": "rejected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot new file mode 100644 index 000000000..8f64bbfe6 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json new file mode 100644 index 000000000..e4ace32b6 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -0,0 +1,1027 @@ +{ + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "14425999489689100447": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + }, + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_version": 1, + "materialization": 14425999489689100447, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 14425999489689100447 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 1350462962080375017, + "plan_version": 1, + "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + }, + "envelope": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 1350462962080375017, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "rate(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 14425999489689100447, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 14425999489689100447, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 14425999489689100447, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot new file mode 100644 index 000000000..cba155e28 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json new file mode 100644 index 000000000..9a9db7618 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -0,0 +1,223 @@ +{ + "envelope": { + "plan_id": 4863426083951867157, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 4863426083951867157, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 4863426083951867157, + "plan_version": 1, + "snapshot_sha256": "041bcc4ae7d3908c160ca40f3ef7d68e0dc37fa5010cfe78aed88180c472acef" + }, + "envelope": { + "plan_id": 4863426083951867157, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 4863426083951867157, + "plan_version": 1, + "snapshot_sha256": "041bcc4ae7d3908c160ca40f3ef7d68e0dc37fa5010cfe78aed88180c472acef" + }, + "envelope": { + "plan_id": 4863426083951867157, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 4863426083951867157, + "plan_version": 1, + "entries": { + "rate(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "exact_subquery", + "query": "rate(data[1m])" + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot new file mode 100644 index 000000000..ea166db93 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json new file mode 100644 index 000000000..48b826087 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -0,0 +1,219 @@ +{ + "envelope": { + "plan_id": 27061497774794526, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 27061497774794526, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 27061497774794526, + "plan_version": 1, + "snapshot_sha256": "0f481d092a0bb716d2eefae569e452f3aaaead3f06e26fdfed66df4878e2ac8a" + }, + "envelope": { + "plan_id": 27061497774794526, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 27061497774794526, + "plan_version": 1, + "snapshot_sha256": "0f481d092a0bb716d2eefae569e452f3aaaead3f06e26fdfed66df4878e2ac8a" + }, + "envelope": { + "plan_id": 27061497774794526, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 27061497774794526, + "plan_version": 1, + "entries": { + "rate(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot new file mode 100644 index 000000000..cba155e28 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json new file mode 100644 index 000000000..b74cd02b4 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -0,0 +1,223 @@ +{ + "envelope": { + "plan_id": 3235857638904289352, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3235857638904289352, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3235857638904289352, + "plan_version": 1, + "snapshot_sha256": "9b394eab4010ef72b9a949cba5f04fe68189b9e2d9f2103336c644d255c7539c" + }, + "envelope": { + "plan_id": 3235857638904289352, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3235857638904289352, + "plan_version": 1, + "snapshot_sha256": "9b394eab4010ef72b9a949cba5f04fe68189b9e2d9f2103336c644d255c7539c" + }, + "envelope": { + "plan_id": 3235857638904289352, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3235857638904289352, + "plan_version": 1, + "entries": { + "rate(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "rate(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "exact_subquery", + "query": "rate(data[1m])" + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot new file mode 100644 index 000000000..1b04bcd1a --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot @@ -0,0 +1,21 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum_over_time(data[1m])"; + query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json new file mode 100644 index 000000000..172aed6f1 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -0,0 +1,1025 @@ +{ + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "12984500598014581905": { + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + }, + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 12984500598014581905, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", + "schema_version": 1, + "materialization": 12984500598014581905, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 12984500598014581905 + } + }, + "query_sink": 1, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17891999753521262724, + "plan_version": 1, + "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + }, + "envelope": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 17891999753521262724, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + } + }, + "entries": { + "sum_over_time(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum_over_time(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "sum" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 12984500598014581905, + "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + }, + "materialization": 12984500598014581905, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 12984500598014581905, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot new file mode 100644 index 000000000..1086253fd --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum_over_time(data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json new file mode 100644 index 000000000..4f02fed1a --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -0,0 +1,219 @@ +{ + "envelope": { + "plan_id": 3167846180279825593, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3167846180279825593, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3167846180279825593, + "plan_version": 1, + "snapshot_sha256": "3773d72986b0e243fc81008c5269c627bd10c9ccdc73e2badaa7aee7c5e15de3" + }, + "envelope": { + "plan_id": 3167846180279825593, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3167846180279825593, + "plan_version": 1, + "snapshot_sha256": "3773d72986b0e243fc81008c5269c627bd10c9ccdc73e2badaa7aee7c5e15de3" + }, + "envelope": { + "plan_id": 3167846180279825593, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3167846180279825593, + "plan_version": 1, + "entries": { + "sum_over_time(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum_over_time(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot new file mode 100644 index 000000000..fa9d6bdbb --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: sum_over_time(data[1m])"; + query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json new file mode 100644 index 000000000..1a0318545 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -0,0 +1,223 @@ +{ + "envelope": { + "plan_id": 17637043547591721229, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 17637043547591721229, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17637043547591721229, + "plan_version": 1, + "snapshot_sha256": "953f830872fb25e81dd7f0d72fd13c52d57160e35ccbac04fbcfa7a46cab37fc" + }, + "envelope": { + "plan_id": 17637043547591721229, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 17637043547591721229, + "plan_version": 1, + "snapshot_sha256": "953f830872fb25e81dd7f0d72fd13c52d57160e35ccbac04fbcfa7a46cab37fc" + }, + "envelope": { + "plan_id": 17637043547591721229, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 17637043547591721229, + "plan_version": 1, + "entries": { + "sum_over_time(data[1m])": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum_over_time(data[1m])", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "exact_subquery", + "query": "sum_over_time(data[1m])" + }, + "inputs": [] + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot new file mode 100644 index 000000000..7e569e6bf --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot @@ -0,0 +1,25 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_0_1 [label="Logical\nSort"]; + query_0_2 [label="ExactReadout\nRate"]; + query_0_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_3 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + query_0_2 -> query_0_1; + query_0_3 -> query_0_2; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json new file mode 100644 index 000000000..89ea4cc83 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -0,0 +1,1562 @@ +{ + "envelope": { + "plan_id": 14733843382488271694, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 14733843382488271694, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14733843382488271694, + "plan_version": 1, + "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + }, + "envelope": { + "plan_id": 14733843382488271694, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "nodes": { + "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 4, + "query_plan_sink": 0, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 14733843382488271694, + "plan_version": 1, + "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + }, + "envelope": { + "plan_id": 14733843382488271694, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 14733843382488271694, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Sort": { + "keys": [ + { + "ascending": false, + "expr": { + "Column": 1 + }, + "nulls_first": false + } + ], + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": { + "Limit": { + "n": 3, + "offset": 0, + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "limit", + "n": 3, + "offset": 0, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 1 + ] + }, + "1": { + "op": "logical", + "operator": { + "kind": "sort", + "descending": true, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 2 + ] + }, + "2": { + "op": "exact_readout", + "input": 3, + "readout": "rate" + }, + "3": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot new file mode 100644 index 000000000..87545f9fd --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot @@ -0,0 +1,11 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json new file mode 100644 index 000000000..cff6343a0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -0,0 +1,290 @@ +{ + "envelope": { + "plan_id": 15833270860732361489, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 15833270860732361489, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 15833270860732361489, + "plan_version": 1, + "snapshot_sha256": "d33232b7b98c627b6d530deac83577fe8d6e9c88268d75815eed930034214651" + }, + "envelope": { + "plan_id": 15833270860732361489, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 15833270860732361489, + "plan_version": 1, + "snapshot_sha256": "d33232b7b98c627b6d530deac83577fe8d6e9c88268d75815eed930034214651" + }, + "envelope": { + "plan_id": 15833270860732361489, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 15833270860732361489, + "plan_version": 1, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "exact_fallback", + "reason": "post-ASAP node requires exact execution" + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot new file mode 100644 index 000000000..f185c5b2a --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot @@ -0,0 +1,15 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_0_2 [label="Logical\nExactSubquery"]; + query_0_3 [label="Logical\nSort"]; + query_0_3 -> query_0_0; + query_0_2 -> query_0_3; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json new file mode 100644 index 000000000..b240155e2 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -0,0 +1,327 @@ +{ + "envelope": { + "plan_id": 5379663311087285901, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 5379663311087285901, + "plan_version": 1, + "summary_descriptors": {}, + "data_descriptors": {}, + "outputs": {}, + "definitions": {} + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5379663311087285901, + "plan_version": 1, + "snapshot_sha256": "c7f25e4059eb188819d2ca40a9d47afd269d55c1b6ca1b27d719b82fd7a17c04" + }, + "envelope": { + "plan_id": 5379663311087285901, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [], + "producers": [], + "materializations": [] + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 5379663311087285901, + "plan_version": 1, + "snapshot_sha256": "c7f25e4059eb188819d2ca40a9d47afd269d55c1b6ca1b27d719b82fd7a17c04" + }, + "envelope": { + "plan_id": 5379663311087285901, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 5379663311087285901, + "plan_version": 1, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 0, + "nodes": { + "0": { + "op": "logical", + "operator": { + "kind": "limit", + "n": 3, + "offset": 0, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 3 + ] + }, + "2": { + "op": "logical", + "operator": { + "kind": "exact_subquery", + "query": "rate(data[1m])" + }, + "inputs": [] + }, + "3": { + "op": "logical", + "operator": { + "kind": "sort", + "descending": true, + "grouping": { + "labels": [ + "label_0" + ], + "without": false + } + }, + "inputs": [ + 2 + ] + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "query_index": 0 + } + ], + "schema_version": 1 + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index 36a23c667..bc37cbfe8 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -662,7 +662,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1236,12 +1236,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1249,7 +1255,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4af1bdc6e5bab64c357c0c89ef18805faa08f220aa91e0ac7abc623c63876710", + "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,13 +1346,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:53c03cad8bb9b88fdddf35b6e57c192de4d4a0563c46a8d0fd914c992bb5a690" + "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1411,26 +1417,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", "query_index": 0 } ], @@ -1444,7 +1450,7 @@ "selected_manifest": { "plan_id": 5849823772717530049, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2334,11 +2340,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:1881507fce13dcdd6c6b4401f63c944b6bcda96b87a9ee2d106b3fa3091692c0", + "candidate_id": "asap-explain-v1:candidate:d6db39de81236cadb39d0f344017e83bdddac8cde0f9ecbfe1689f43a3f4ff81", "logical_root_ids": [ - "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145" + "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f" ], - "physical_candidate_id": "asap-explain-v1:physical:64927444bd25ee414baae05725b6c90be53266df84357fc3ca672cbae891eec1", + "physical_candidate_id": "asap-explain-v1:physical:4163ad99861a7322461c3665c94b32ad6930f7cdc75bc2941b8575acbbd13b43", "identity_unavailable_reason": null, "status": "selected", "plan_id": 5849823772717530049, @@ -2346,27 +2352,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:ef813d49b0c3a2323542994bb4b98f4d657ffa326afab67056acd811c434d15b", + "candidate_id": "asap-explain-v1:candidate:34122d33407874c13d8e6a20b1d6990905cfd505d9e4bdfa2a70dfbb04684c91", "logical_root_ids": [ - "asap-explain-v1:root:12796b78853d3268e8d3cb900cc6b7b73e512c29e302c5f0c7a873c696750b40" + "asap-explain-v1:root:e18e99d25c603e21232cfe55f304543b3d2f4239e6cac10cdd22291a46994e79" ], - "physical_candidate_id": "asap-explain-v1:physical:a928dbf49ff4d59446b8370710264536c9d833a6082e8a269782db2fb8b855ad", + "physical_candidate_id": "asap-explain-v1:physical:e3b6e952e5fd8393d4623d336a0b1344efd0d328fa5e860e267cf49d38d99695", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 741363842036532054, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:fb57271b20533ca5205ed0c2d749da0888e87e89b88c78e3737ec76cac3fdeb4", + "logical_root_ids": [ + "asap-explain-v1:root:613b393ef327a3459bb8d6f4024033cb1538c39b1ccbdbd72cc0255eba60a584" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2374,7 +2398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4af1bdc6e5bab64c357c0c89ef18805faa08f220aa91e0ac7abc623c63876710", + "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2465,13 +2489,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:53c03cad8bb9b88fdddf35b6e57c192de4d4a0563c46a8d0fd914c992bb5a690" + "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2536,26 +2560,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:70998b0079408214377c548cec51242c1d6afe78fdc98bb4b5c28773ae0a8145", + "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index cfc63be84..e64eb8b10 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -4,7 +4,7 @@ [Raw selected plan](grouped-rate.json) · [DAG DOT](grouped-rate.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -32,6 +32,27 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `125.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | + +Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index 0e587187f..a653126f8 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1003,12 +1003,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1016,7 +1022,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ab7db3bbc7ed1ca918df30762f2e4d4ca66325e8546b2f9153be4aacaf682440", + "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1079,7 +1085,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a5b4c98ba8245ef0e129d0eab4708d6c09cd95f618e94c04f6217731297ddd79", + "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1102,7 +1108,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0e6b3f0f76949706786820ecb64f81d600487bad6313d2b14fd1016d9e46c2a8", + "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1193,13 +1199,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4b96313ced8c642aed61e3f2c024ec7ac4042550d5361f950b6ade8604710224" + "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc749bf69e7816ccedb27d1932cde9b3accecf1e46a74a65d259cfe4a1cff881", + "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1264,26 +1270,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d580bc05eada559d4aea6ff30b91e4dc20fed51991fa964814a87e887a686fb8" + "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", "query_index": 0 } ], @@ -1297,7 +1303,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2229,11 +2235,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:69dfe9b7160b66582f2ed526083c112cb6642b98d20621a81208980ab9a3f8d9", + "candidate_id": "asap-explain-v1:candidate:e1801cc41ad06e000b81869c2c82067c3a100d10af868f50daad14ea0c0053ea", "logical_root_ids": [ - "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272" + "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04" ], - "physical_candidate_id": "asap-explain-v1:physical:16b3061c392376b3c856d9f47d62b6523e5815058b7bad4defbe76a9078320a6", + "physical_candidate_id": "asap-explain-v1:physical:d36f54157906ee1366f2a0f82f1b68d84e50d8211fd3efd6a05556203d5c433a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2241,27 +2247,57 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:2af5314cfeabcb89885c97c3d9250f382dc0cc25a4590f8cc7376e1174cad6fe", + "candidate_id": "asap-explain-v1:candidate:37a17e2b502a7b663988f5f0db4db9748d35b7f7f57fae7a4ac8691398f06e12", "logical_root_ids": [ - "asap-explain-v1:root:7580061ba297977ef92cef1e6c50eda173f4a390e1fa756b7982302118e9962d" + "asap-explain-v1:root:9d51d1db7e0e2c7a4128d548f36a96fb72c5acc8cf6f285e1e3d6e147fdfaedb" ], - "physical_candidate_id": "asap-explain-v1:physical:6dd9f2a995b4f4ca9127f702a0e6ed3041f63eae521acfe7e1432d4786c976c2", + "physical_candidate_id": "asap-explain-v1:physical:2b727359b17fd6cc7c2d38749c38d8a86ada7b85af7460d3b3d595dbdda4e939", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:a6976e89d47e9d87802b79684f81d259fc7d6bdec63702767fa5cbb3488fa2b8", + "logical_root_ids": [ + "asap-explain-v1:root:88b9906eecd25158a6cf932bd911c5a0a7f40001f19b3130eff2f7a9b076f481" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:eb61df79fa1ba705362f51ef4f084cebe6a717221220564563a3053c9c12032e", + "logical_root_ids": [ + "asap-explain-v1:root:8e24c34cd7632baf1e8cbc17e15561d9d505d50890a377eda242a1a7acbadebf" + ], + "physical_candidate_id": "asap-explain-v1:physical:ed7c096f1e5492ef259c61b0ab5da271f12086638bea9b8e5c0ca0ef83abc768", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 3225737927651639557, + "total_cost": 125.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2269,7 +2305,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ab7db3bbc7ed1ca918df30762f2e4d4ca66325e8546b2f9153be4aacaf682440", + "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2332,7 +2368,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a5b4c98ba8245ef0e129d0eab4708d6c09cd95f618e94c04f6217731297ddd79", + "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2355,7 +2391,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0e6b3f0f76949706786820ecb64f81d600487bad6313d2b14fd1016d9e46c2a8", + "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2446,13 +2482,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4b96313ced8c642aed61e3f2c024ec7ac4042550d5361f950b6ade8604710224" + "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc749bf69e7816ccedb27d1932cde9b3accecf1e46a74a65d259cfe4a1cff881", + "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2517,26 +2553,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d580bc05eada559d4aea6ff30b91e4dc20fed51991fa964814a87e887a686fb8" + "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:11a38f3e7aeda27788bf686d762dde49bbb94ae220de950b6f012fe245502272", + "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index b7a75ffe0..841b8164b 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -4,7 +4,7 @@ [Raw selected plan](grouped-temporal-sum.json) · [DAG DOT](grouped-temporal-sum.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -26,6 +26,28 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 3 | `"unselected"` | `125.0` | `null` | + +Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index 2c5e5a805..d6a0fce72 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -651,7 +651,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1486,12 +1486,18 @@ "query_id": "compat-query-0", "source": "issue-754-finite-generator" }, + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1499,7 +1505,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5315807d41445e58cc908ca80736716b0a548c0ab37be11f9408f1df13846652", + "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1690,13 +1696,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:612b6b11c321c663ec092e983ee396ec294bd79fe0be44f3bd7f20379deb7c9c" + "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1785,27 +1791,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ccd7f3d5846d3abc31910f4a8707a1936f62136a2eea7c9153282db63187f8", + "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1894,26 +1900,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:12d0483f8c18a35ba1dc127a322b3963ff83e3838e1f084d743cdda6471061e2" + "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", "query_index": 0 } ], @@ -1927,7 +1933,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2905,11 +2911,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:b0105d61d875bc883cfc596871f46b08cec8a8b3b07911bdc2de504e982e32b7", + "candidate_id": "asap-explain-v1:candidate:4f60dbf73b8d271d152beedd53ccfd5a05b64469a1e029bed01ac7fd35386f5e", "logical_root_ids": [ - "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c" + "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010" ], - "physical_candidate_id": "asap-explain-v1:physical:eb80befd041f21a1ef1f4361b31b8eb059116c72791e7ca7d9471882deb0fc4d", + "physical_candidate_id": "asap-explain-v1:physical:923954009ce4f8ea5c2d1b4d823b5136ca634916d7332d0bb759d4855e4df223", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2917,16 +2923,28 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:938638be7c5bc3ebbd96e5fc998b1f9091bd3f4d224aadb5e75fb58be466299f", + "candidate_id": "asap-explain-v1:candidate:47078e86e67d1de287ebb64e95d3644e7003e8d574d5d49cbc521cf0d95dfc43", "logical_root_ids": [ - "asap-explain-v1:root:46f5e2592c1bfa71a74045bfd35806d0e3c763ac56002d25e0c5e4f657c25ebe" + "asap-explain-v1:root:a57d491b9deb293f15e94bf4a02e0241b073b4cc566622f32c1d9e5862e59dbb" ], - "physical_candidate_id": "asap-explain-v1:physical:39887308c366236c09380e80937606fd5b69c2de333031b5760f11ec2359f6e1", + "physical_candidate_id": "asap-explain-v1:physical:3d316330a549c6bcf95127fbb1b827d0e9615babd8308f69c2f9b6286371f104", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:6483fb9a9f32c5737a91f52668d389dd0d8dd42dadef76d50c75bd404ba96818", + "logical_root_ids": [ + "asap-explain-v1:root:e6f0c18f8bbc7ba20bef2acb3de137c0fd33e05d90a3da39ffe07f66e4e2fcdb" + ], + "physical_candidate_id": "asap-explain-v1:physical:a25ff54c4875d477147023144d515b4906284091c2129e4045b490b9ac6dfd50", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 12971657221408630864, + "total_cost": 61000000000000.0, + "unavailable_reason": null } ] }, @@ -2939,12 +2957,18 @@ "query_id": "compat-query-0", "source": "issue-754-finite-generator" }, + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2952,7 +2976,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5315807d41445e58cc908ca80736716b0a548c0ab37be11f9408f1df13846652", + "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3143,13 +3167,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:612b6b11c321c663ec092e983ee396ec294bd79fe0be44f3bd7f20379deb7c9c" + "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3238,27 +3262,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ccd7f3d5846d3abc31910f4a8707a1936f62136a2eea7c9153282db63187f8", + "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3347,26 +3371,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:12d0483f8c18a35ba1dc127a322b3963ff83e3838e1f084d743cdda6471061e2" + "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2b05d26be253722469c57a458456405cf59f61a401b5230bd2c88077a55c529c", + "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index da5701702..9ed387c17 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -4,7 +4,7 @@ [Raw selected plan](quantile-ratio.json) · [DAG DOT](quantile-ratio.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -36,6 +36,29 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + +- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } +- quantile(q=0.5) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `155.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `61000000000000.0` | `null` | + +Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 1c7cdf057..fe5630991 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -88,7 +88,7 @@ def block(value): lines += [block(trace['computation_search_scope'])] for group in trace.get('groups', []): for rejected in group.get('rejected', []): - description = rejected.get('description', '').replace('alternatives', 'candidates') + description = rejected.get('description', '').split(' — ', 1)[0] lines += [f"- {description}: {rejected.get('reason', '')}"] lines += ['', '| Candidate | Status | Fixture cost | Rejection / unavailable reason |', '| --- | --- | --- | --- |'] diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 975ca10d0..b1d31f821 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -ca1122c373b6eb9e3a345ffdcfbe6164b4b1e15d +cb3fb3839edc87abf239ac77ebface9dbbec67c5 diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index d2650018e..24216bc29 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -438,8 +438,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [ @@ -714,7 +714,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1157,12 +1157,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1170,7 +1176,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8c6676da545712b584409b2a54b01951de988b3590331c037bb25cd5f8a700c4", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1259,26 +1265,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:8622a13e6aae8c7c913e566434c07ee5f11f06ec8f716bae8f55169164b50165" + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", "query_index": 0 } ], @@ -1292,7 +1298,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2312,11 +2318,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:aacf2a06e00c23b41729f1dfb9eb2d7007928ff93dc0f7539f35a75e65a5b9ad", + "candidate_id": "asap-explain-v1:candidate:a130e21a7e1986d0caeba87540049e38a85c891b7f66f3e07f99c118fa570af2", "logical_root_ids": [ - "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180" + "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69" ], - "physical_candidate_id": "asap-explain-v1:physical:4873608f0478bf7a3e11bc6f042a0ea8ea446f89c4fd9ad26faf4659d544e358", + "physical_candidate_id": "asap-explain-v1:physical:37a7835dc4eb9aeddd2dc1468fceee34f2d31b14dcdec0aae7e6a31a968406e0", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2324,11 +2330,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:531ad57ef0d96fbf11951310fb058acec24083565d8f35e99e9a59f106df66ca", + "candidate_id": "asap-explain-v1:candidate:9a286d1953b78e8a1b2939d0ba9453485a9ce111840543264741ad8a18144c81", "logical_root_ids": [ - "asap-explain-v1:root:9b0654914a210104176f61ed642b0dc95ac6acc9b67c992f6ae2ff8858e165e4" + "asap-explain-v1:root:4c23a03041f3d5247b397919d9166e88e9ee44c5e9453eaedfcfd5718153bbb1" ], - "physical_candidate_id": "asap-explain-v1:physical:7b3a3d11c50075f01e70f113b5e7a95dc622c9eb200e5a0820723065754469e3", + "physical_candidate_id": "asap-explain-v1:physical:05aa3a6397616961e6f8724100f695b262af39d6d85775bd7689d4d456811a7e", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2336,27 +2342,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:7032ab174385eb5dd14e519f412ff9c158f06e7cef1e57c0f3c278a19c15f09d", + "candidate_id": "asap-explain-v1:candidate:f4db756e036d1a89a90b9260fe8fce9c5e22278fda82b8eecd36c79cc9480b68", "logical_root_ids": [ - "asap-explain-v1:root:fc006c2f113c4378006bca43f27babc279c2f8f22228ab59671e9bb88f161303" + "asap-explain-v1:root:3960604dfad179f86453c1b0d1d44b5ce4eadab848daefc0146dc40c996bcc81" ], - "physical_candidate_id": "asap-explain-v1:physical:8afdcdcaef24201f41e6d76c6e40c6a88bc07fa8911af8329c64b6b29a60ea25", + "physical_candidate_id": "asap-explain-v1:physical:49f68b91144edf7cbd606edc54258586de0a442804434fd79dd3e77d7bb28cd8", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, "total_cost": 130.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:3fae39385200834a54d9aa5515bb5bc47bfb6740024e70ea329d1c2f22999c73", + "logical_root_ids": [ + "asap-explain-v1:root:53918f1f6676c34b356d3086375d54b3c017dc0bf87fc33984b804999276884a" + ], + "physical_candidate_id": "asap-explain-v1:physical:b2522af9c37d52b09647e1016a80595d6a3596eaf117c480aaf1d7f1e52896fa", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 7667691247138405742, + "total_cost": 61000000000000.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2364,7 +2388,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8c6676da545712b584409b2a54b01951de988b3590331c037bb25cd5f8a700c4", + "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2453,26 +2477,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:8622a13e6aae8c7c913e566434c07ee5f11f06ec8f716bae8f55169164b50165" + "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3c8eaaef13d88273ec956ba1dd18245aa0c71e977b458cb1bab9a57b78eeb180", + "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index 5e4f9b2c8..b170d677a 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -4,7 +4,7 @@ [Raw selected plan](spatial-quantile.json) · [DAG DOT](spatial-quantile.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -29,6 +29,29 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + +- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `130.0` | `null` | +| 3 | `"unselected"` | `61000000000000.0` | `null` | + +Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) + ## Persisted boundaries Binding for `compat-query-0`: @@ -62,8 +85,8 @@ Stored output `1584935399223751265` → semantic definition `sds-v1:1fd0b827ec01 "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [ diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index ca983d1ef..2267140c1 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -690,7 +690,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1003,12 +1003,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1016,7 +1022,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0e8ec2e29e2ee3e9d29e92d9cd0163ff88c400c101387750fe6f4736c76e62b3", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1081,26 +1087,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e641ec19f0e39893ed797d0e6f1b69267b437ba26f391604251122e6b8ed66e9" + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", "query_index": 0 } ], @@ -1114,7 +1120,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2043,11 +2049,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:4a70fea518d6dab33c2f2a78f298c42abea71bb66fd9485e8c74cbfb94b42e25", + "candidate_id": "asap-explain-v1:candidate:5aa1f21aae0867367d5202030cb29a211eeb59b5fe9947cc10dc718f92db74ff", "logical_root_ids": [ - "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2" + "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6" ], - "physical_candidate_id": "asap-explain-v1:physical:0bba025e586d38df56827bd240a843e616a26e5a7588efd6672636e9d9a3fb1b", + "physical_candidate_id": "asap-explain-v1:physical:ebf0390e0cecdd3266d32389192e9ee28fb0bebece8cb7883ba60c8398c6e652", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2055,11 +2061,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:05db2206cb2aa389f9ee353e1096458dfe1a228be0fd79a4eeb9fc33e762501f", + "candidate_id": "asap-explain-v1:candidate:6de93f9d7ccaf2b33b51a3521d5690576ec30bc313fa9f6c2ad04908c672335c", "logical_root_ids": [ - "asap-explain-v1:root:4a279f73bd64bf260f10e694b5946239cb55b0ce56642e9ea11ff79be45c773b" + "asap-explain-v1:root:363fd3d251f1a8a324101fea3b8f40cc39d9d445276b2f16f662b15314602ac0" ], - "physical_candidate_id": "asap-explain-v1:physical:d941312282d378c3a4b611e0c968aefd5b1f4fbaae5fc18c51a8720ce9c38484", + "physical_candidate_id": "asap-explain-v1:physical:9164983d602e77ad98074a262946216b460c234947325d47aa805e73c0f99720", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2067,27 +2073,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:e6fe46188ba81ced66746ee84f20c831ddf66cfa846d5bbd9f8c0ea60f3b92df", + "candidate_id": "asap-explain-v1:candidate:c977d92c71eded2cb66c43dea90b50c840a6ad3490defb13d298e2e280808cbe", "logical_root_ids": [ - "asap-explain-v1:root:8429626574248c9dd9fd1ef599028f6dde2d6a2a6bc3beba0cdd9db290df10ce" + "asap-explain-v1:root:9e1f8f9dc0392e4b14373ba7c2febbf42274d74033799643e0d7d877f2996bdc" ], - "physical_candidate_id": "asap-explain-v1:physical:e7f2ddb58b1e23ab7b3d0955e9f7c5953e6aa146b00d183681e0bfcf4340c002", + "physical_candidate_id": "asap-explain-v1:physical:056116923329542998d2d4d5fcda20308aa0a2c47fbf09e4cf6417cebc891e4a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, "total_cost": 130.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:54acf571c1faa830bb51a81df4ce4cea2e3f3018ee3ff5a9d4012b518d723f2f", + "logical_root_ids": [ + "asap-explain-v1:root:b49752b85614a55fb32b4899664b5268405a90a933f8cc5f3f3e07bab3725288" + ], + "physical_candidate_id": "asap-explain-v1:physical:34e5c8106cc7e9660acc2bc37faf19b7bfe2d3f707f1a020ac0d94d9f1d7dcfa", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 10907830462850005469, + "total_cost": 122.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2095,7 +2119,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0e8ec2e29e2ee3e9d29e92d9cd0163ff88c400c101387750fe6f4736c76e62b3", + "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2160,26 +2184,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e641ec19f0e39893ed797d0e6f1b69267b437ba26f391604251122e6b8ed66e9" + "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:83e02641b9301f119eee7e8a5fc38237fe3361a296db04ca4c14bea5a235b2d2", + "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index 81e8e40cb..283fe596c 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -4,7 +4,7 @@ [Raw selected plan](spatial-sum.json) · [DAG DOT](spatial-sum.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -26,6 +26,28 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `130.0` | `null` | +| 3 | `"unselected"` | `122.0` | `null` | + +Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index 15bfa4616..a1b9b3ccd 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -439,12 +439,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -453,33 +459,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f2f8d4f89996e1d310dabec1eae56741af374212bd944b064ceeb3c1e7da0275" + "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a0e453badfd9700167ea731d5d85581030bb14b14b0bcd33b79711e47de90a71" + "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", "query_index": 0 } ], @@ -493,7 +499,7 @@ "selected_manifest": { "plan_id": 2697027346875258477, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -692,9 +698,9 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:82ef1c5379978f267edbfa6305eb1679f053c47856ce5b9ebe729a7edbc7a41d", + "candidate_id": "asap-explain-v1:candidate:73438d3380394e8858e1cfb9415a85a5957284be0062ed392d84e3aff3b13371", "logical_root_ids": [ - "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b" + "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -704,11 +710,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:alternative:c2c4a785111dc305b3c462a22fbf65eaac4217373b974139818d7cc7bed8e35b", + "candidate_id": "asap-explain-v1:candidate:bc572300e38e65fdfc1319b98fcdae41a055d8b2a9774b87753bd296f6488be2", "logical_root_ids": [ - "asap-explain-v1:root:2fc6d66c5f484aff0572097783e16eaf908f8ab6d92c0a5c02a84ed603cc7f11" + "asap-explain-v1:root:c029c6d71ef47e48903d231ad801a6506050878b98e67c1b18524740e7fa0fb3" ], - "physical_candidate_id": "asap-explain-v1:physical:8acd72ca65e4c3f6bea85755346fa366dc743d221b4f5abb8bc6dc6c000ebb93", + "physical_candidate_id": "asap-explain-v1:physical:f60b70141ac07e57a993f59e98e3252479c2c3bdc76dc75646358954347c3874", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5538412219857372274, @@ -716,11 +722,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:c508f5ffab42611c9991a2ccb74ea7e93ab9f5817614ab64cb866d06e5675c3d", + "candidate_id": "asap-explain-v1:candidate:1794cfccb25d26b6304f82136eabf78ec9995373b13a1889a979184ebb4f3a80", "logical_root_ids": [ - "asap-explain-v1:root:5e72d408ac5c50ef84252e6f4d9ecdd7cd43156d1d40e6003dbbee495542dfe7" + "asap-explain-v1:root:7cb7848feb7f20a98d3a4ff7619d9822ddfc3e5fe2022b0bcc22c80d8bff8937" ], - "physical_candidate_id": "asap-explain-v1:physical:ab5cdb860f91c5dd7aefd3473a4f2594cd383a940559de3e87d2f23470304551", + "physical_candidate_id": "asap-explain-v1:physical:3a3956c13d4d7270dea0874283050b3d367c12726d3a5eca54a74e019f48d77d", "identity_unavailable_reason": null, "status": "selected", "plan_id": 2697027346875258477, @@ -731,12 +737,18 @@ }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -745,33 +757,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f2f8d4f89996e1d310dabec1eae56741af374212bd944b064ceeb3c1e7da0275" + "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a0e453badfd9700167ea731d5d85581030bb14b14b0bcd33b79711e47de90a71" + "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b13ee0ae563e5e37c2578890a4bdd96221657389150c4ad4eb46f2c9c4410b93" + "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27693b7b58c0f53bc0a9d15c6752b0f253ce1f348e30072e7928ae29ab2eb15b", + "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 56f625e54..6c4994ed3 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -4,7 +4,7 @@ [Raw selected plan](spatial-topk.json) · [DAG DOT](spatial-topk.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -29,6 +29,27 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"selected"` | `130.0` | `null` | + +Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) + ## Persisted boundaries No precompute executable DAG is installed for this selected candidate. diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index b18e449dd..a753eda75 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -400,8 +400,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [] @@ -651,7 +651,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1066,12 +1066,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1079,7 +1085,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1168,26 +1174,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", "query_index": 0 } ], @@ -1201,7 +1207,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2137,11 +2143,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:80fd725c0cac8323b4d28dbdd574559b584eacdd6926e7cdafacea48f5fc6642", + "candidate_id": "asap-explain-v1:candidate:6356c68368c4a8ab69ea08c5f048e05dbc8cb4e1464ac96fec81a98c709fd028", "logical_root_ids": [ - "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c" + "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3" ], - "physical_candidate_id": "asap-explain-v1:physical:be2c4f9536be9f77e69bb6989a773ef704a97f75fd2c5a7087e968b727bf9b7d", + "physical_candidate_id": "asap-explain-v1:physical:ee89586c0fc5f5dcc991c3d65a03c439fb9aac95b8ecb60fb93d4fee6cdde050", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2149,27 +2155,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:14d9dbcba9af3417ef1b8313c9d116a1f33a9a5e6bc60ef632167441394934aa", + "candidate_id": "asap-explain-v1:candidate:88db77696c65677c4d1e5d6ddfffa53742d59589a3f1db53b53e0839cb935a7d", "logical_root_ids": [ - "asap-explain-v1:root:2ff4d49ff1bfd8b7b59f46afafa4dc197316c678c060f08d7456de08f5198389" + "asap-explain-v1:root:4a758cc9084cef48407062b5cae84ad61507dd5293b9bd30f95d09d9c5085c7a" ], - "physical_candidate_id": "asap-explain-v1:physical:cf6e33f8720782a4151fc99e0ecaa53cba27acdc86a08f4e843487443cdd9413", + "physical_candidate_id": "asap-explain-v1:physical:50a5547d6ad8e29b2964630921eecbc33f9fe755f41517e82e91627cda24d521", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:e344c01bf3e91d67834eb8d1a93317c02241c583f12c454093da25c945b07308", + "logical_root_ids": [ + "asap-explain-v1:root:7122424bf0ca16f7bbc3a19b534bb827c6b5765c0c06a848a9bd124a98358947" + ], + "physical_candidate_id": "asap-explain-v1:physical:819b7ec65e83ab56698d30f40a06d0f4511f88828980a4a5bd206a2b54c5e415", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 11545774673163874085, + "total_cost": 61000000000000.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -2177,7 +2201,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:46c180553e09a8d74b1ce0913ac52b6e9cb2224060d5661714e13fc29f7f9d81", + "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2266,26 +2290,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:828b3226db7194d7afcdfbb059d50408f61e79816fab03ebfd54186a606857d1" + "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a72b17a3dab6e5c35c12e4da1fef2ab724f4dcd1cb2875d7b6b5b3c7a62b875c", + "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index 6cd4fe8b3..a32d60445 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -4,7 +4,7 @@ [Raw selected plan](temporal-quantile.json) · [DAG DOT](temporal-quantile.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -29,6 +29,28 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + +- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `61000000000000.0` | `null` | + +Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) + ## Persisted boundaries Binding for `compat-query-0`: @@ -62,8 +84,8 @@ Stored output `3752266711358116078` → semantic definition `sds-v1:2fde0175b6e4 "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [] diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index b63767266..efd69b80a 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -629,7 +629,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -914,12 +914,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -927,7 +933,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a882f5b10bc373b1c6a080372b32c91736a7817a24c31c57bf25266ae678cbf8", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -992,26 +998,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d41c5d7c1635317dc9d0bdd9fa62f01c77296d4f3285cfe30401f1480730198d" + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", "query_index": 0 } ], @@ -1030,7 +1036,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1875,11 +1881,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:0ee87c66cd7dd9cee92a618b721a976213a0079bb96754f32e66795584f9e6ef", + "candidate_id": "asap-explain-v1:candidate:e608848d98cbf09ff430f1a1fe80bd31b8a8512ea96549d32488e9ed60c516c0", "logical_root_ids": [ - "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41" + "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677" ], - "physical_candidate_id": "asap-explain-v1:physical:944690ee00ba111cfdcff6933d6ad78b88b726612341b6e73d795be4f1792f7b", + "physical_candidate_id": "asap-explain-v1:physical:15ab1eda619199a1bc2c493ce32dfee2a7351937526759e36da7ac4cf96ddee9", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1887,11 +1893,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:304e34cc4f85ed2e97e9950767bd912eb6e56a2a57d3ff54a715d2f5e585148c", + "candidate_id": "asap-explain-v1:candidate:ebc26c5e7a2a20d330eace266a7649b32026f3209e825e66bda394869aa64c89", "logical_root_ids": [ - "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41" + "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677" ], - "physical_candidate_id": "asap-explain-v1:physical:de9cc74daf3541712e4a1dff0d4a04bfba2eb0a5febcb07a31257f286889badb", + "physical_candidate_id": "asap-explain-v1:physical:014a4e35aac0a50a93350a865f9dbffc776c79a7e629a978b84f40066a57cb6a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1899,27 +1905,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:6c9df334ff0c0b85e8d6ea0009c4c41a8f05906f770fa5ca136dbc88d83eec59", + "candidate_id": "asap-explain-v1:candidate:375f05db22ac3bb5e16ad1d60859dc496df7f1bbd0dc7cbde0cfeff2bf9f39ff", "logical_root_ids": [ - "asap-explain-v1:root:3541b782340d54c916e91e988fdfd43a0cc89044723ddc404fc101f29ff483b7" + "asap-explain-v1:root:a87e6041756f25ac33ff5d0c41547626008961f82cbfdcc470ff097fb2fdfd79" ], - "physical_candidate_id": "asap-explain-v1:physical:584ef57861dbdc8405610e94798ad504fbb98aa5b0d642610c2fbcd20d80677e", + "physical_candidate_id": "asap-explain-v1:physical:11acceb4f2fc5191f991096aaa59d0c3363dfa70a3354b26be76f5c618a725f4", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:c64c4bf6b475ab652bc5f038c7960f13fd4401f86328167fe3c4355b26d9d1e5", + "logical_root_ids": [ + "asap-explain-v1:root:f801689f42997219ce41f9321b4862327134578e6c3f38dcfe30f94dd9e84f15" + ], + "physical_candidate_id": "asap-explain-v1:physical:f809d3ec672d22a42318a7fea6d7dc6ea676bfcea55914bf9be1ff6c0abbcd2a", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 3235857638904289352, + "total_cost": 122.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1927,7 +1951,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a882f5b10bc373b1c6a080372b32c91736a7817a24c31c57bf25266ae678cbf8", + "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1992,26 +2016,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d41c5d7c1635317dc9d0bdd9fa62f01c77296d4f3285cfe30401f1480730198d" + "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b0aaaac5df3eb5c9cb1f3b9b2a9750b1b1578ae8ca998d3d00ccbf22fc050c41", + "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index ef4de2df3..88e8a1d28 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -4,7 +4,7 @@ [Raw selected plan](temporal-rate.json) · [DAG DOT](temporal-rate.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -26,6 +26,28 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `122.0` | `null` | +| 2 | `"unselected"` | `61000000000000.0` | `null` | +| 3 | `"unselected"` | `122.0` | `null` | + +Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index 3ada5faa7..255918e94 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -627,7 +627,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -912,12 +912,18 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -925,7 +931,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:cf34f27ef2a377d476178424410b8c477d1ebb8e5eaa56a0497e364fda7ab004", + "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -990,26 +996,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:848fdbcd33be545a0d6c0cbe0cb049fdfd9fd399344c8f3d638749ec5d7d1111" + "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", "query_index": 0 } ], @@ -1023,7 +1029,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1868,11 +1874,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:009abc3e6e0ba7d0b038243f74b9c5c12b1d152df76dfedbeb68253f9d4d02c6", + "candidate_id": "asap-explain-v1:candidate:e73f9fbc9a6120e2be65b3f8eacef80b8b90c930797bed16175d50e63bde7b4c", "logical_root_ids": [ - "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d" + "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c" ], - "physical_candidate_id": "asap-explain-v1:physical:6a94d26b4f66a7c5ff44e4763587e238d243175d11f83237e14dcda9b3a5900b", + "physical_candidate_id": "asap-explain-v1:physical:659a1b0fb18d7d0d71472b6bc33d6c9a06e8f7fd4468352bb00ddf1dd702cb31", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1880,27 +1886,45 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:62a6f39e7c1f6accc8e9ad1feb8bc01f72009d0d4b684d11524568da2faca86d", + "candidate_id": "asap-explain-v1:candidate:fad080a79a34be4dd960a09a1542504344cb6add40e73daf065bba5d7d432cb3", "logical_root_ids": [ - "asap-explain-v1:root:0b313cd8e8c35d108455a9fa3d38a68efc666f92752148e99d340f7564691d60" + "asap-explain-v1:root:eecaa208c68ef0af790d7346199a87c1bd2216523240cfabb65975633aed4511" ], - "physical_candidate_id": "asap-explain-v1:physical:abaf5777a2a9a8735f32c5cff97d8f6c29cbc18033c636c9939b786b1a96512e", + "physical_candidate_id": "asap-explain-v1:physical:ace541644b59cdc4950290eb437500743e7528ef0cee972e55be91c9cadcee0d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:ebbd5c3687019c18226feb69a4972715ebbce477cc07fc396bf3e528e9b26086", + "logical_root_ids": [ + "asap-explain-v1:root:1e4ef8dee585ba06e19fafb616eddc8574ebb4e9b7637a0c86b3cacdfd42de7f" + ], + "physical_candidate_id": "asap-explain-v1:physical:15fe5af5f7a08493ae6ef9fbb4cefa466628532520e2c56c26c9b5f9ca286b77", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 17637043547591721229, + "total_cost": 122.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ @@ -1908,7 +1932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:cf34f27ef2a377d476178424410b8c477d1ebb8e5eaa56a0497e364fda7ab004", + "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1973,26 +1997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:848fdbcd33be545a0d6c0cbe0cb049fdfd9fd399344c8f3d638749ec5d7d1111" + "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:adac5d1e201f9102c71aa380d5df8fd70f255641e8858165035b21a5c59bcb72" + "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:02597f2a8bd34c77f16a905fc986a4b7019710a0f146e4e1cf8a13c13970b53f" + "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:dc9d12593f5211470aae1051a9ecab59dfb7adbb9585c50253edf1759750356d", + "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index b1afa203d..5978556b9 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -4,7 +4,7 @@ [Raw selected plan](temporal-sum.json) · [DAG DOT](temporal-sum.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -26,6 +26,27 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `95.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `122.0` | `null` | + +Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) + ## Persisted boundaries Binding for `compat-query-0`: diff --git a/docs/evaluation/issue754-human-review/topk-rate.dot b/docs/evaluation/issue754-human-review/topk-rate.dot index 83bbfd536..7e569e6bf 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.dot +++ b/docs/evaluation/issue754-human-review/topk-rate.dot @@ -3,11 +3,11 @@ digraph compiled_physical_plan { node [shape=box, fontname=Helvetica]; subgraph cluster_precompute { label="PrecomputePlan"; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; subgraph cluster_precompute_dag_0 { label="compat-query-0"; precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; precompute_0_0 -> precompute_0_1 [label="Input"]; } } @@ -16,8 +16,8 @@ digraph compiled_physical_plan { query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; query_0_1 [label="Logical\nSort"]; query_0_2 [label="ExactReadout\nRate"]; - query_0_3 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_3 [style=dashed, color=gray40, label="reads"]; + query_0_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_3 [style=dashed, color=gray40, label="reads"]; query_0_1 -> query_0_0; query_0_2 -> query_0_1; query_0_3 -> query_0_2; diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index d849aa170..bfe1e6fb2 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -1,17 +1,17 @@ { "envelope": { - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { "schema_version": 4, - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, "summary_descriptors": { "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { @@ -39,8 +39,8 @@ } }, "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", "source": { "time_series": { "metric": "data" @@ -48,16 +48,18 @@ }, "value_projection": "sample_value", "population_filter_canonical": "", - "group_by_keys": [], + "group_by_keys": [ + "label_0" + ], "partitioning": "per_entity", "observation_semantics": "asap.timestamped-observations.v2" } }, "outputs": { - "14425999489689100447": { + "11966640087163441478": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { @@ -184,18 +186,18 @@ "precompute_plan": { "summary_catalog": { "schema_version": 4, - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, - "snapshot_sha256": "3c2e5e458227264136ded8fd8cbaa3556c9c5d48e8bbff2731be198d7992c402" + "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" }, "envelope": { - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -209,12 +211,12 @@ "schemas": [ { "stored_output_reference": { - "stored_output_id": 14425999489689100447, + "stored_output_id": 11966640087163441478, "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" }, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, - "materialization": 14425999489689100447, + "materialization": 11966640087163441478, "family": { "family": "exact", "kind": "rate" @@ -225,7 +227,9 @@ } }, "value_projection": "sample_value", - "group_by": [], + "group_by": [ + "label_0" + ], "window": { "kind": "sliding", "size_ms": 60000, @@ -358,7 +362,9 @@ "promql_right_closed": true }, "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "partitioning": "per_entity", "aggregated_labels": { @@ -630,7 +636,7 @@ }, "1": { "placement": "materialization", - "stored_output": 14425999489689100447 + "stored_output": 11966640087163441478 } }, "query_sink": 4, @@ -645,18 +651,18 @@ "transmission_plan": { "summary_catalog": { "schema_version": 4, - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, - "snapshot_sha256": "3c2e5e458227264136ded8fd8cbaa3556c9c5d48e8bbff2731be198d7992c402" + "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" }, "envelope": { - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -668,7 +674,7 @@ "rules": [] }, "query_plan": { - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, "selected_dags": { "compat-query-0": { @@ -1329,10 +1335,10 @@ "op": "read_materialization", "binding": { "stored_output_reference": { - "stored_output_id": 14425999489689100447, + "stored_output_id": 11966640087163441478, "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" }, - "materialization": 14425999489689100447, + "materialization": 11966640087163441478, "output_grouping": { "mode": "per_entity" }, @@ -1358,7 +1364,7 @@ }, "lifecycle_estimates": [ { - "materialization": 14425999489689100447, + "materialization": 11966640087163441478, "consumer_query_ids": [ "compat-query-0" ], @@ -1372,34 +1378,97 @@ "cost_comparison": { "logical_selection": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ { - "candidates": [], + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:99e8fe24fbbd76ea4bbaa45c6b4bf6214a926befd5151ff132b80b749e2208e0" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:a50d6d62d7220346106b3da03dc6b932401aeb45b39f324d178c6a0e8fbb557c" + "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1462,28 +1531,28 @@ } ], "consumer_count": 1, - "group_id": 2, + "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" }, { "candidates": [], "consumer_count": 1, - "group_id": 3, + "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, - "group_id": 4, + "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", "query_index": 0 } ], @@ -1493,11 +1562,11 @@ "materialization_search_coverage": null, "data_snapshot_id": "issue-754-level1", "model_version": "deterministic-test-costs", - "selected_plan_id": 1947004944484088590, + "selected_plan_id": 14733843382488271694, "selected_manifest": { - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "plan_version": 1, - "planner_revision": "c27cd14b8e052ce1f4641c619488ad539ad71f56", + "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1602,7 +1671,7 @@ }, "node": { "binding": { - "materialization": 14425999489689100447, + "materialization": 11966640087163441478, "output_grouping": { "mode": "per_entity" }, @@ -1610,7 +1679,7 @@ "readout_lookback_ms": 60000, "stored_output_reference": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 + "stored_output_id": 11966640087163441478 }, "window_ms": 10000 }, @@ -1649,7 +1718,7 @@ "unit": "horizon", "multiplicity": 1.0 }, - "state:backend:14425999489689100447:build": { + "state:backend:11966640087163441478:build": { "implementation": { "binding": { "location": "backend", @@ -1660,7 +1729,9 @@ "aggregation_sub_type": "", "aggregation_type": "Rate", "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "metric": "data", "num_aggregates_to_retain": 7, @@ -1805,9 +1876,11 @@ "family": "exact", "kind": "rate" }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, "source": { "TimeSeries": { @@ -1816,7 +1889,7 @@ }, "stored_output_reference": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 + "stored_output_id": 11966640087163441478 }, "value_projection": "sample_value", "window": { @@ -1833,7 +1906,7 @@ "unit": "horizon", "multiplicity": 1.0 }, - "state:backend:14425999489689100447:residency": { + "state:backend:11966640087163441478:residency": { "implementation": { "binding": { "location": "backend", @@ -1844,7 +1917,9 @@ "aggregation_sub_type": "", "aggregation_type": "Rate", "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "metric": "data", "num_aggregates_to_retain": 7, @@ -1989,9 +2064,11 @@ "family": "exact", "kind": "rate" }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, "source": { "TimeSeries": { @@ -2000,7 +2077,7 @@ }, "stored_output_reference": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 + "stored_output_id": 11966640087163441478 }, "value_projection": "sample_value", "window": { @@ -2017,7 +2094,7 @@ "unit": "horizon", "multiplicity": 1.0 }, - "state:backend:14425999489689100447:retire": { + "state:backend:11966640087163441478:retire": { "implementation": { "binding": { "location": "backend", @@ -2028,7 +2105,9 @@ "aggregation_sub_type": "", "aggregation_type": "Rate", "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "metric": "data", "num_aggregates_to_retain": 7, @@ -2173,9 +2252,11 @@ "family": "exact", "kind": "rate" }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, "source": { "TimeSeries": { @@ -2184,7 +2265,7 @@ }, "stored_output_reference": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 + "stored_output_id": 11966640087163441478 }, "value_projection": "sample_value", "window": { @@ -2201,7 +2282,7 @@ "unit": "horizon", "multiplicity": 1.0 }, - "state:backend:14425999489689100447:update": { + "state:backend:11966640087163441478:update": { "implementation": { "binding": { "location": "backend", @@ -2212,7 +2293,9 @@ "aggregation_sub_type": "", "aggregation_type": "Rate", "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "metric": "data", "num_aggregates_to_retain": 7, @@ -2357,9 +2440,11 @@ "family": "exact", "kind": "rate" }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, "source": { "TimeSeries": { @@ -2368,7 +2453,7 @@ }, "stored_output_reference": { "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 + "stored_output_id": 11966640087163441478 }, "value_projection": "sample_value", "window": { @@ -2394,68 +2479,143 @@ "query:compat-query-0:3": 30.0, "result:compat-query-0": 30.0, "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:14425999489689100447:build": 1.0, - "state:backend:14425999489689100447:residency": 1.0, - "state:backend:14425999489689100447:retire": 1.0, - "state:backend:14425999489689100447:update": 1.0 + "state:backend:11966640087163441478:build": 1.0, + "state:backend:11966640087163441478:residency": 1.0, + "state:backend:11966640087163441478:retire": 1.0, + "state:backend:11966640087163441478:update": 1.0 }, "candidates": [ { - "candidate_id": "asap-explain-v1:alternative:7bf31d0ab9316192505912b529653f09524d88a0c7ea36e1082febed672fb8ae", + "candidate_id": "asap-explain-v1:candidate:fdac027a88c101347508f7dddd29c425f00bf57e7d041250adeda79e20feade9", "logical_root_ids": [ - "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49" + "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531" ], - "physical_candidate_id": "asap-explain-v1:physical:4a5d7a1c944984c0686fca5b5d0f3d00348e7a458d6adff22b5cf61ba9727362", + "physical_candidate_id": "asap-explain-v1:physical:f905fa68b827932b76a3a8d291c04c15e279506a12620dd73b7bc15b35481ed0", "identity_unavailable_reason": null, "status": "selected", - "plan_id": 1947004944484088590, + "plan_id": 14733843382488271694, "total_cost": 155.0, "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:alternative:d826e0a1fe67cd1a6225d3455ecfce9ada70d35871cd42b6a6052bab0c060aba", + "candidate_id": "asap-explain-v1:candidate:2500903454bd4e7a80ae60d6a5e96a42d73856c542862dfcff4092cb9935f526", "logical_root_ids": [ - "asap-explain-v1:root:d53b889d4c5fd077a35df1f50e09a19af63c12366578c9dc11e4d8da261c45c4" + "asap-explain-v1:root:f554257ff34dff6c20bcf592c8d1ac91ee218db15f21cd251849bf42f092d318" ], - "physical_candidate_id": "asap-explain-v1:physical:99efedd5c9c62bae3c5a049a228f203e672d3b0bdc8952f82f54da2a5a0df91d", + "physical_candidate_id": "asap-explain-v1:physical:7bd9159e6511febda1b498048849d4cae2fcca079fa0f4cb179f87f8b2685e0d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 15833270860732361489, "total_cost": 61000000000000.0, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:8291cce7c2decb3461cfbd909606b8edca36ea3045577a5ff5334cd8f731acce", + "logical_root_ids": [ + "asap-explain-v1:root:61a64cb98140bf77623f5948ff61e553a283066830872571034990e65f8271f4" + ], + "physical_candidate_id": "asap-explain-v1:physical:993be477fa9a622f9b7509ed67d4b84ec0c387dda5aabb74980630d81abbfbd4", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5379663311087285901, + "total_cost": 242.0, + "unavailable_reason": null } ] }, "planner_selection_trace": [ { + "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", "query_index": 0 } ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, "deployment_overrides": [], "group_id_scope": "this_selection", "groups": [ { - "candidates": [], + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:99e8fe24fbbd76ea4bbaa45c6b4bf6214a926befd5151ff132b80b749e2208e0" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:a50d6d62d7220346106b3da03dc6b932401aeb45b39f324d178c6a0e8fbb557c" + "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5d1e04b41b9b08e9d95d45bf9901d5d04f8753370cfd1514952f0c810ac2401e", + "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2518,28 +2678,28 @@ } ], "consumer_count": 1, - "group_id": 2, + "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a3a9acb3549f6001ac4363b3c5ff60902e6b2c7a6b616908bdbbdc664d803871" + "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" }, { "candidates": [], "consumer_count": 1, - "group_id": 3, + "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:512c493adcba61b4e2671361d40d5de1504e9764d0460e910e0af51f79687b2c" + "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" }, { "candidates": [], "consumer_count": 1, - "group_id": 4, + "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:e783e17c1544b382e37e5f2e9044762b2690f41d6bfbb80f8b2b7db8881ec1fd" + "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:81ef074b5004020517dfe3b08372f20d4733d60c94cbdd5d152e8c59d741de49", + "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index 1e32a7d69..15169f351 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -4,7 +4,7 @@ [Raw selected plan](topk-rate.json) · [DAG DOT](topk-rate.dot) -## Planner-selected computation +## Selected computation: logical provenance IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. @@ -37,6 +37,27 @@ Node `3`: `{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}] Its input is node `2`: `{"kind":"value","operation":"FinalizeExactAccumulator"}`. Column indices refer to that producer's output schema above. +## Candidate admission and costing + +Costs below come from the controlled Level 1 fixture, not production measurements. + +```json +{ + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false +} +``` + + +| Candidate | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | +| 0 | `"selected"` | `155.0` | `null` | +| 1 | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `"unselected"` | `242.0` | `null` | + +Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json) + ## Persisted boundaries Binding for `compat-query-0`: @@ -49,7 +70,7 @@ Binding for `compat-query-0`: }, "1": { "placement": "materialization", - "stored_output": 14425999489689100447 + "stored_output": 11966640087163441478 } }, "query_sink": 4, @@ -60,7 +81,7 @@ Binding for `compat-query-0`: } ``` -Stored output `14425999489689100447` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. +Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. ### Maintenance configuration @@ -73,7 +94,9 @@ Stored output `14425999489689100447` → semantic definition `sds-v1:528d2a7adb5 "promql_right_closed": true }, "grouping_labels": { - "labels": [] + "labels": [ + "label_0" + ] }, "partitioning": "per_entity", "aggregated_labels": { @@ -153,10 +176,10 @@ This is the emitted adapter representation, including dependencies, pane size, r "op": "read_materialization", "binding": { "stored_output_reference": { - "stored_output_id": 14425999489689100447, + "stored_output_id": 11966640087163441478, "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" }, - "materialization": 14425999489689100447, + "materialization": 11966640087163441478, "output_grouping": { "mode": "per_entity" }, From 9a2f3ca3c133c89f131760feef8e38ec74b45cb4 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:44:56 +0000 Subject: [PATCH 18/80] fix: execute persisted SQL physical DAGs without request-time lowering --- control_plane/src/physical/compiler.rs | 2 + control_plane/src/query_plan.rs | 14 +- control_plane/src/query_plan/residual.rs | 1 + crates/asap_types/src/query_plan.rs | 9 +- crates/asap_types/src/query_plan/native.rs | 326 ++++++++++++++++++ .../accelerator.rs | 6 +- .../asap_clickhouse_query_engine/execution.rs | 159 +++------ .../query_engines/asap_query_engine/engine.rs | 2 + .../asap_query_engine/exact_subqueries.rs | 1 + .../asap_query_engine/live_serve.rs | 1 + .../asap_query_engine/logical_dag.rs | 4 + .../asap_query_engine/post_asap_readout.rs | 4 + .../asap_query_engine/test_plan.rs | 1 + .../sketch_db/current_series.rs | 1 + .../types/hot_reload_config.rs | 1 + data_plane/tests/support/physical_fixture.rs | 1 + 16 files changed, 419 insertions(+), 114 deletions(-) create mode 100644 crates/asap_types/src/query_plan/native.rs diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index a183b4305..7c3f97533 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -2046,6 +2046,7 @@ impl DeploymentPlanCompiler { .expect("compiled Planner DAG"); query_node_bindings.insert((query_index, compiled.dag.root), root); Ok(crate::query_plan::QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: query.query_id.clone(), canonical_query: canonical.clone(), @@ -2077,6 +2078,7 @@ impl DeploymentPlanCompiler { // Keep native semantics instead of lowering an unbound summary. let root = crate::query_plan::QueryNodeId(0); Ok(crate::query_plan::QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: query.query_id.clone(), canonical_query: canonical.clone(), diff --git a/control_plane/src/query_plan.rs b/control_plane/src/query_plan.rs index b75e4ea49..003e7a5f9 100644 --- a/control_plane/src/query_plan.rs +++ b/control_plane/src/query_plan.rs @@ -41,6 +41,7 @@ where }; let root = compiler.lower(root)?; Ok(QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id, canonical_query, @@ -80,7 +81,8 @@ where lowered: Some(&mut lowered), }; let root = compiler.lower(root)?; - Ok(QueryPlanEntry { + let mut entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::ClickHouseSql, query_id, canonical_query, @@ -89,7 +91,9 @@ where nodes: compiler.nodes, instant, fallback, - }) + }; + entry.compile_relational_physical_dag()?; + Ok(entry) } /// Compile a composable query while exposing the stable mapping from @@ -123,6 +127,7 @@ where }; let root = compiler.lower(root)?; let mut entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id, canonical_query, @@ -977,6 +982,7 @@ mod catalog_binding_tests { config.pane_origin_ms = Some(0); let catalog = SummaryCatalog::from_materializations(7, 2, &[config.clone()]).unwrap(); let entry = QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: "q".into(), canonical_query: "sum_over_time(m[1m])".into(), @@ -1232,6 +1238,7 @@ mod tests { #[test] fn language_tag_preserves_query_entry_serde() { let entry = QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: "q".into(), canonical_query: canonical_promql("up").unwrap(), @@ -1259,6 +1266,7 @@ mod tests { #[test] fn language_catalog_keys_keep_equal_query_text_distinct() { let base = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: "prom".into(), canonical_query: "shared".into(), @@ -1329,6 +1337,7 @@ mod tests { }, ); let entry = QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: "q".into(), canonical_query: "up".into(), @@ -1355,6 +1364,7 @@ mod tests { reason: "prepared".into(), }; let entry = QueryPlanEntry { + physical_dag: None, language: crate::query_plan::QueryLanguage::PromQl, query_id: "q".into(), canonical_query: "topk(2, rate(m[5m]))".into(), diff --git a/control_plane/src/query_plan/residual.rs b/control_plane/src/query_plan/residual.rs index dabd5e047..0083566d8 100644 --- a/control_plane/src/query_plan/residual.rs +++ b/control_plane/src/query_plan/residual.rs @@ -298,6 +298,7 @@ pub fn compile_logical( }; let root = lower.lower(&expr)?; let entry = QueryPlanEntry { + physical_dag: None, language: super::QueryLanguage::PromQl, query_id, canonical_query, diff --git a/crates/asap_types/src/query_plan.rs b/crates/asap_types/src/query_plan.rs index b4c1182b2..a11aa0f2f 100644 --- a/crates/asap_types/src/query_plan.rs +++ b/crates/asap_types/src/query_plan.rs @@ -6,6 +6,7 @@ //! searching for compatible materializations. pub mod current_series; +mod native; pub mod residual; use std::collections::{BTreeMap, BTreeSet}; @@ -295,6 +296,9 @@ pub use crate::executable_plan::QueryNodeId; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(deny_unknown_fields)] pub struct QueryPlanEntry { + /// Planner-selected native computation, persisted before activation. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub physical_dag: Option, #[serde(default)] pub language: QueryLanguage, pub query_id: String, @@ -391,8 +395,10 @@ impl QueryPlanEntry { self.query_id, self.root.0 ))); } + if self.relation_output_schema()?.is_some() || self.physical_dag.is_some() { + self.recover_relational_physical_dag()?; + } for (id, node) in &self.nodes { - validate_native_relation(*id, node)?; if let QueryPlanNode::Logical { operator, inputs } = node { operator.validate(inputs.len())?; } @@ -773,6 +779,7 @@ mod contract_tests { } /// Bind portable relation semantics before an installed plan can access its sources. +#[cfg(test)] fn validate_native_relation(id: QueryNodeId, node: &QueryPlanNode) -> Result<(), QueryPlanError> { use planner_types::post_asap::{ ExecutableDagNode, ExecutableOperatorPayload as Payload, ExecutionDataState, PostAsapNodeId, diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs new file mode 100644 index 000000000..e05572f78 --- /dev/null +++ b/crates/asap_types/src/query_plan/native.rs @@ -0,0 +1,326 @@ +//! Installation of native SQL fragments; recovery only decodes physical operators. +use super::*; +use asap_physical_operators::{dag, physical_planner::CompiledPhysicalDag}; +use planner_types::post_asap::{ + ExecutableDagNode, ExecutableOperatorPayload as Payload, ExecutionDataState, PostAsapNodeId, + SummarySchema, +}; +use std::sync::Arc; + +impl QueryPlanEntry { + /// Invoke during plan compilation, after external/storage boundaries are fixed. + pub fn compile_relational_physical_dag(&mut self) -> Result<(), QueryPlanError> { + let Some(expected) = self.relation_output_schema()? else { + self.physical_dag = None; + return Ok(()); + }; + let compiled = self + .compile_relation(self.root, &expected) + .map_err(QueryPlanError::Invalid)?; + self.physical_dag = Some( + serde_json::from_slice( + &compiled + .encode() + .map_err(|error| QueryPlanError::Invalid(error.to_string()))?, + ) + .map_err(|error| QueryPlanError::Invalid(error.to_string()))?, + ); + Ok(()) + } + + fn compile_relation( + &self, + root: QueryNodeId, + expected: &SummarySchema, + ) -> Result { + let mut pending = vec![(root, expected.clone())]; + let mut schemas = BTreeMap::::new(); + let mut operations = BTreeMap::new(); + let mut sources = Vec::new(); + // Bind the entire computation before reading any storage source. + while let Some((id, expected)) = pending.pop() { + if let Some(previous) = schemas.get(&id) { + if previous != &expected { + return Err("inconsistent relation schemas".into()); + } + continue; + } + schemas.insert(id, expected.clone()); + let (payload, inputs) = match self.nodes.get(&id) { + Some(QueryPlanNode::Relational { + input, + operation, + input_schema, + output_schema, + }) => { + if output_schema != &expected { + return Err("relational output schema mismatch".into()); + } + let operation = + serde_json::from_value(operation.clone()).map_err(|e| e.to_string())?; + ( + Payload::Value { operation }, + vec![(*input, input_schema.clone())], + ) + } + Some(QueryPlanNode::RelationalJoin { + inputs, + join_kind, + pred, + left_schema, + right_schema, + output_schema, + pruning, + }) => { + if output_schema != &expected { + return Err("join output schema mismatch".into()); + } + if pruning.is_some() { + return Err( + "candidate pruning is not bound for this relation source".into() + ); + } + ( + Payload::RelationalJoin { + join_kind: join_kind.clone(), + pred: serde_json::from_value(pred.clone()) + .map_err(|e| e.to_string())?, + pruning: None, + }, + vec![ + (inputs[0], left_schema.clone()), + (inputs[1], right_schema.clone()), + ], + ) + } + Some(_) => { + sources.push(id); + continue; + } + None => return Err("missing relation node".into()), + }; + let node = ExecutableDagNode { + id: PostAsapNodeId( + u32::try_from(id.0).map_err(|_| "relation node ID exceeds Planner range")?, + ), + payload, + output_state: ExecutionDataState::QUERY_ROWS, + output_schema: expected, + guarantee: None, + }; + let op = dag::planner::compile_node( + &node, + &inputs + .iter() + .map(|(_, schema)| Arc::new(schema.clone())) + .collect::>(), + ) + .map_err(|e| e.to_string())?; + operations.insert( + id, + (inputs.iter().map(|(id, _)| id.0).collect::>(), op), + ); + pending.extend(inputs); + } + let compiled = + asap_physical_operators::physical_planner::CompiledPhysicalDag::from_operators( + sources + .iter() + .map(|id| { + ( + id.0, + asap_physical_operators::physical_planner::InputContract::bounded( + Arc::new(schemas[id].clone()), + ), + ) + }) + .collect(), + operations.into_iter().map(|(id, op)| (id.0, op)).collect(), + vec![root.0], + ) + .map_err(|e| e.to_string())?; + Ok(compiled) + } + + pub fn relation_output_schema(&self) -> Result, QueryPlanError> { + match self.nodes.get(&self.root) { + Some( + QueryPlanNode::Relational { output_schema, .. } + | QueryPlanNode::RelationalJoin { output_schema, .. }, + ) => Ok(Some(output_schema.clone())), + Some(QueryPlanNode::ExternalExact { request, .. }) => match &request.output { + ExternalExactOutput::Relation { schema } => serde_json::from_value(schema.clone()) + .map(Some) + .map_err(|error| QueryPlanError::Invalid(error.to_string())), + _ => Ok(None), + }, + _ => Ok(None), + } + } + + /// Validate persisted computation and boundary schemas without logical lowering. + pub fn recover_relational_physical_dag(&self) -> Result { + let invalid = |message: String| QueryPlanError::Invalid(message); + let value = self + .physical_dag + .as_ref() + .ok_or_else(|| invalid("missing installed physical DAG".into()))?; + let dag = CompiledPhysicalDag::decode( + &serde_json::to_vec(value).map_err(|e| invalid(e.to_string()))?, + ) + .map_err(|e| invalid(e.to_string()))?; + if dag.roots() != [self.root.0] { + return Err(invalid( + "installed physical root differs from query root".into(), + )); + } + let expected = self + .relation_output_schema()? + .ok_or_else(|| invalid("physical relation has no output schema".into()))?; + if *dag + .output_contract(self.root.0) + .map_err(|e| invalid(e.to_string()))? + .schema + != expected + { + return Err(invalid("installed physical output schema mismatch".into())); + } + let mut expected_inputs = BTreeMap::new(); + let mut pending = vec![(self.root, expected)]; + let mut seen = BTreeMap::new(); + while let Some((id, schema)) = pending.pop() { + if let Some(previous) = seen.insert(id, schema.clone()) { + if previous != schema { + return Err(invalid("inconsistent relation schemas".into())); + } + continue; + } + match self.nodes.get(&id) { + Some(QueryPlanNode::Relational { + input, + input_schema, + output_schema, + .. + }) => { + if output_schema != &schema { + return Err(invalid("relation output schema mismatch".into())); + } + pending.push((*input, input_schema.clone())); + } + Some(QueryPlanNode::RelationalJoin { + inputs, + left_schema, + right_schema, + output_schema, + .. + }) => { + if output_schema != &schema { + return Err(invalid("join output schema mismatch".into())); + } + pending.extend([ + (inputs[0], left_schema.clone()), + (inputs[1], right_schema.clone()), + ]); + } + Some(_) => { + expected_inputs.insert(id.0, schema); + } + None => { + return Err(invalid( + "physical input references absent query node".into(), + )) + } + } + } + let actual: BTreeMap<_, _> = dag + .input_contracts() + .map(|(id, c)| (id, c.schema.as_ref().clone())) + .collect(); + if actual != expected_inputs { + return Err(invalid( + "physical input boundaries differ from installed bindings".into(), + )); + } + Ok(dag) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use planner_types::{ + post_asap::{SummaryFamilyType, SummaryField}, + pre_asap::DataType, + }; + + fn installed() -> QueryPlanEntry { + let schema = SummarySchema { + fields: vec![SummaryField { + name: "value".into(), + dtype: SummaryFamilyType::Plain(DataType::Float64), + nullable: false, + }], + time_index: None, + }; + let mut entry = QueryPlanEntry { + physical_dag: None, + language: QueryLanguage::ClickHouseSql, + query_id: "native".into(), + canonical_query: "SELECT value".into(), + fixed_evaluation: None, + root: QueryNodeId(0), + nodes: BTreeMap::from([( + QueryNodeId(0), + QueryPlanNode::ExternalExact { + request: ExternalExactRequest { + language: QueryLanguage::ClickHouseSql, + expression: "SELECT value".into(), + output: ExternalExactOutput::Relation { + schema: serde_json::to_value(schema).unwrap(), + }, + parameters: BTreeMap::new(), + start_parameter: None, + end_parameter: None, + input_contracts: vec![], + }, + inputs: vec![], + }, + )]), + instant: InstantExecution { + lookback_ms: 0, + full_history: false, + cumulative_readout: false, + }, + fallback: FallbackPolicy::Reject, + }; + entry.compile_relational_physical_dag().unwrap(); + entry + } + + // Restart keeps the physical program; unknown formats and stale bindings fail activation. + #[test] + fn recovery_validates_physical_version_roots_and_input_schema() { + let entry = installed(); + let encoded = serde_json::to_vec(&entry).unwrap(); + let restored: QueryPlanEntry = serde_json::from_slice(&encoded).unwrap(); + restored.validate(&BTreeSet::new()).unwrap(); + let mut corrupt = restored.clone(); + corrupt.physical_dag.as_mut().unwrap()["version"] = serde_json::json!(99); + assert!(corrupt.validate(&BTreeSet::new()).is_err()); + let mut corrupt = restored.clone(); + corrupt.root = QueryNodeId(1); + assert!(corrupt.validate(&BTreeSet::new()).is_err()); + let mut corrupt = restored.clone(); + if let QueryPlanNode::ExternalExact { request, .. } = + corrupt.nodes.get_mut(&QueryNodeId(0)).unwrap() + { + if let ExternalExactOutput::Relation { schema } = &mut request.output { + schema["fields"][0]["name"] = serde_json::json!("different"); + } + } + assert!(corrupt.validate(&BTreeSet::new()).is_err()); + let mut missing = restored; + missing.physical_dag = None; + assert!(missing.validate(&BTreeSet::new()).is_err()); + } +} diff --git a/data_plane/src/query_engines/asap_clickhouse_query_engine/accelerator.rs b/data_plane/src/query_engines/asap_clickhouse_query_engine/accelerator.rs index 3e2f11496..29fb3715d 100644 --- a/data_plane/src/query_engines/asap_clickhouse_query_engine/accelerator.rs +++ b/data_plane/src/query_engines/asap_clickhouse_query_engine/accelerator.rs @@ -496,6 +496,7 @@ mod tests { }, ); entry.root = project; + entry.compile_relational_physical_dag().unwrap(); entry } @@ -574,6 +575,7 @@ mod tests { let sort = QueryNodeId(4); let root = QueryNodeId(5); let executable = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::ClickHouseSql, query_id: "SELECT value FROM samples".into(), canonical_query: "SELECT value FROM samples".into(), @@ -707,7 +709,8 @@ mod tests { } else { BTreeMap::new() }; - let entry = QueryPlanEntry { + let mut entry = QueryPlanEntry { + physical_dag: None, query_id: sql.clone(), canonical_query: canonical_sql.clone(), language: QueryLanguage::ClickHouseSql, @@ -721,6 +724,7 @@ mod tests { instant: executable.instant, fallback: executable.fallback, }; + entry.compile_relational_physical_dag().unwrap(); let query_plan = QueryPlan { plan_id: 41, plan_version: 1, diff --git a/data_plane/src/query_engines/asap_clickhouse_query_engine/execution.rs b/data_plane/src/query_engines/asap_clickhouse_query_engine/execution.rs index ae0681c05..59438d33c 100644 --- a/data_plane/src/query_engines/asap_clickhouse_query_engine/execution.rs +++ b/data_plane/src/query_engines/asap_clickhouse_query_engine/execution.rs @@ -79,117 +79,25 @@ impl RelationDagExecutor<'_> { use super::relational_adapter::native; use asap_physical_operators::dag::{self, operators::Operator}; use futures::{FutureExt, StreamExt}; - use planner_types::post_asap::{ - ExecutableDagNode, ExecutableOperatorPayload as Payload, ExecutionDataState, - PostAsapNodeId, SummarySchema, - }; - use std::sync::Arc; - let mut pending = vec![(root, expected.clone())]; - let mut schemas = BTreeMap::::new(); - let mut operations = BTreeMap::new(); - let mut sources = Vec::new(); - // Bind the entire computation before reading any storage source. - while let Some((id, expected)) = pending.pop() { - if let Some(previous) = schemas.get(&id) { - if previous != &expected { - return Err("inconsistent relation schemas".into()); - } - continue; - } - schemas.insert(id, expected.clone()); - let (payload, inputs) = match self.entry.nodes.get(&id) { - Some(QueryPlanNode::Relational { - input, - operation, - input_schema, - output_schema, - }) => { - if output_schema != &expected { - return Err("relational output schema mismatch".into()); - } - let operation = - serde_json::from_value(operation.clone()).map_err(|e| e.to_string())?; - ( - Payload::Value { operation }, - vec![(*input, input_schema.clone())], - ) - } - Some(QueryPlanNode::RelationalJoin { - inputs, - join_kind, - pred, - left_schema, - right_schema, - output_schema, - pruning, - }) => { - if output_schema != &expected { - return Err("join output schema mismatch".into()); - } - if pruning.is_some() { - return Err( - "candidate pruning is not bound for this relation source".into() - ); - } - ( - Payload::RelationalJoin { - join_kind: join_kind.clone(), - pred: serde_json::from_value(pred.clone()) - .map_err(|e| e.to_string())?, - pruning: None, - }, - vec![ - (inputs[0], left_schema.clone()), - (inputs[1], right_schema.clone()), - ], - ) - } - Some(_) => { - sources.push(id); - continue; - } - None => return Err("missing relation node".into()), - }; - let node = ExecutableDagNode { - id: PostAsapNodeId( - u32::try_from(id.0).map_err(|_| "relation node ID exceeds Planner range")?, - ), - payload, - output_state: ExecutionDataState::QUERY_ROWS, - output_schema: expected, - guarantee: None, - }; - let op = dag::planner::compile_node( - &node, - &inputs - .iter() - .map(|(_, schema)| Arc::new(schema.clone())) - .collect::>(), - ) + let compiled = self + .entry + .recover_relational_physical_dag() .map_err(|e| e.to_string())?; - operations.insert( - id, - (inputs.iter().map(|(id, _)| id.0).collect::>(), op), - ); - pending.extend(inputs); + if compiled.roots() != [root.0] + || compiled + .output_contract(root.0) + .map_err(|e| e.to_string())? + .schema + .as_ref() + != expected + { + return Err("requested relation differs from installed physical root".into()); } - let compiled = - asap_physical_operators::physical_planner::CompiledPhysicalDag::from_operators( - sources - .iter() - .map(|id| { - ( - id.0, - asap_physical_operators::physical_planner::InputContract::bounded( - Arc::new(schemas[id].clone()), - ), - ) - }) - .collect(), - operations.into_iter().map(|(id, op)| (id.0, op)).collect(), - vec![root.0], - ) - .map_err(|e| e.to_string())?; + let schemas: BTreeMap<_, _> = compiled + .input_contracts() + .map(|(id, contract)| (QueryNodeId(id), contract.schema.as_ref().clone())) + .collect(); + let sources: Vec<_> = schemas.keys().copied().collect(); let mut resolved_inputs = BTreeMap::new(); let context = dag::RunContext::new( dag::Scope::Query { @@ -575,6 +483,7 @@ mod tests { fn external_entry(schema: &SummarySchema) -> QueryPlanEntry { QueryPlanEntry { + physical_dag: None, language: QueryLanguage::ClickHouseSql, query_id: "shared-external".into(), canonical_query: "SELECT x".into(), @@ -609,7 +518,8 @@ mod tests { #[test] fn relation_dag_memoizes_a_shared_node_and_enforces_one_edge_schema() { let schema = relation_schema("x"); - let entry = external_entry(&schema); + let mut entry = external_entry(&schema); + entry.compile_relational_physical_dag().unwrap(); let relation = ClickHouseRelation::from_json_compact( &schema, br#"{"meta":[{"name":"x","type":"Int64"}],"data":[[1]]}"#, @@ -664,6 +574,9 @@ mod tests { }, ); entry.root = QueryNodeId(1); + entry.compile_relational_physical_dag().unwrap(); + let encoded = serde_json::to_vec(&entry).unwrap(); + let entry: QueryPlanEntry = serde_json::from_slice(&encoded).unwrap(); let relation = ClickHouseRelation::from_json_compact( &schema, br#"{"meta":[{"name":"x","type":"Int64"}],"data":[[1],[2]]}"#, @@ -697,6 +610,32 @@ mod tests { ); } + // Missing installed computation must not trigger serving-time re-lowering. + #[test] + fn relation_execution_requires_an_installed_physical_dag() { + let schema = relation_schema("x"); + let entry = external_entry(&schema); + let relation = ClickHouseRelation::from_json_compact( + &schema, + br#"{"meta":[{"name":"x","type":"Int64"}],"data":[[1]]}"#, + ) + .unwrap(); + let prepared = BTreeMap::from([(QueryNodeId(0), relation)]); + let index = SketchStore::new(); + let mut executor = RelationDagExecutor { + index: &index, + entry: &entry, + prepared: &prepared, + t0_ms: 0, + t1_ms: 1, + is_cumulative: false, + memo: BTreeMap::new(), + schemas: BTreeMap::new(), + evaluations: BTreeMap::new(), + }; + assert!(executor.execute(entry.root, &schema).is_err()); + } + #[test] fn exact_accumulator_window_end_coverage_includes_its_pane_start() { assert!(complete_pane_coverage( diff --git a/data_plane/src/query_engines/asap_query_engine/engine.rs b/data_plane/src/query_engines/asap_query_engine/engine.rs index 6725b4e39..ede83919d 100644 --- a/data_plane/src/query_engines/asap_query_engine/engine.rs +++ b/data_plane/src/query_engines/asap_query_engine/engine.rs @@ -105,6 +105,7 @@ mod forwarding_policy_tests { let query = "sum(rate(m[5m]))"; let canonical = asap_types::query_plan::canonical_promql(query).unwrap(); let entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: canonical.clone(), canonical_query: canonical, @@ -2738,6 +2739,7 @@ mod range_stitch_tests { plan.query_plan.entries.insert( asap_types::query_plan::QueryPlan::catalog_key(QueryLanguage::MetricsQl, &identity), QueryPlanEntry { + physical_dag: None, language: QueryLanguage::MetricsQl, query_id: "vm-scalar".into(), canonical_query: identity.clone(), diff --git a/data_plane/src/query_engines/asap_query_engine/exact_subqueries.rs b/data_plane/src/query_engines/asap_query_engine/exact_subqueries.rs index d717030e5..de8a0c90c 100644 --- a/data_plane/src/query_engines/asap_query_engine/exact_subqueries.rs +++ b/data_plane/src/query_engines/asap_query_engine/exact_subqueries.rs @@ -447,6 +447,7 @@ mod tests { use asap_types::query_plan::{FallbackPolicy, InstantExecution}; fn entry(nodes: BTreeMap) -> QueryPlanEntry { QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "remote-cut".into(), canonical_query: "a / b".into(), diff --git a/data_plane/src/query_engines/asap_query_engine/live_serve.rs b/data_plane/src/query_engines/asap_query_engine/live_serve.rs index 8c9e26466..fdf481272 100644 --- a/data_plane/src/query_engines/asap_query_engine/live_serve.rs +++ b/data_plane/src/query_engines/asap_query_engine/live_serve.rs @@ -174,6 +174,7 @@ mod tests { ); } let entry = asap_types::query_plan::QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "q-sum".into(), canonical_query: "sum_over_time(bytes[1s])".into(), diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs index 262be3552..96eaf5ccb 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs @@ -1377,6 +1377,7 @@ mod topk_tests { TemporalOperation::Rate, ] { let entry = QueryPlanEntry { + physical_dag: None, language, query_id: "labels".into(), canonical_query: "test".into(), @@ -1454,6 +1455,7 @@ mod topk_tests { let summary = QueryNodeId(0); let root = QueryNodeId(1); let entry = QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "summary-rate-topk".into(), canonical_query: "topk(2, rate(requests_total[5m]))".into(), @@ -1605,6 +1607,7 @@ mod topk_tests { let filter = QueryNodeId(2); let root = QueryNodeId(3); let entry = QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "candidate-topk".into(), canonical_query: "topk(1, rate(requests_total[5m]))".into(), @@ -1771,6 +1774,7 @@ mod shared_runtime_tests { fn entry() -> QueryPlanEntry { QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: "shared-grid".into(), canonical_query: "shared-grid".into(), diff --git a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs index 813312ca4..e4805b193 100644 --- a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs +++ b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs @@ -1127,6 +1127,7 @@ mod tests { #[test] fn multi_root_readout_uses_one_parent_context() { let entry = asap_types::query_plan::QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "shared".into(), canonical_query: "1+1".into(), @@ -1411,6 +1412,7 @@ mod tests { .unwrap(); idx.register(metadata); let mut entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::MetricsQl, query_id: "quantile".into(), canonical_query: "quantile_over_time(0.9, latency_ms[1s])".into(), @@ -1849,6 +1851,7 @@ mod tests { } let entry = asap_types::query_plan::QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "q-rate".into(), canonical_query: "rate(requests_total[1m])".into(), @@ -1950,6 +1953,7 @@ mod tests { idx.append_precompute(7, BTreeMap::new(), (0, 60_000), Box::new(accumulator)); let entry = asap_types::query_plan::QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: "q-rate".into(), canonical_query: "rate(requests_total[1m])".into(), diff --git a/data_plane/src/query_engines/asap_query_engine/test_plan.rs b/data_plane/src/query_engines/asap_query_engine/test_plan.rs index ef0a54c52..7da038b36 100644 --- a/data_plane/src/query_engines/asap_query_engine/test_plan.rs +++ b/data_plane/src/query_engines/asap_query_engine/test_plan.rs @@ -44,6 +44,7 @@ pub(super) fn entry( ) -> QueryPlanEntry { let canonical = canonical_promql(query).unwrap(); QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: canonical.clone(), canonical_query: canonical, diff --git a/data_plane/src/storage_engines/sketch_db/current_series.rs b/data_plane/src/storage_engines/sketch_db/current_series.rs index 2b99ea3ed..1887647ff 100644 --- a/data_plane/src/storage_engines/sketch_db/current_series.rs +++ b/data_plane/src/storage_engines/sketch_db/current_series.rs @@ -586,6 +586,7 @@ mod tests { plan.entries.insert( "test".into(), QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: "test".into(), canonical_query: "quantile by (job) (0.5, a)".into(), diff --git a/data_plane/src/storage_engines/types/hot_reload_config.rs b/data_plane/src/storage_engines/types/hot_reload_config.rs index 8bc2e7ef6..096d2f41e 100644 --- a/data_plane/src/storage_engines/types/hot_reload_config.rs +++ b/data_plane/src/storage_engines/types/hot_reload_config.rs @@ -763,6 +763,7 @@ mod tests { fn readout_programs_follow_replaced_query_plan_bindings() { use asap_types::query_plan::*; let entry = |id: u64| QueryPlanEntry { + physical_dag: None, language: asap_types::QueryLanguage::PromQl, query_id: "sum_over_time(m[1m])".into(), canonical_query: "sum_over_time(m[1m])".into(), diff --git a/data_plane/tests/support/physical_fixture.rs b/data_plane/tests/support/physical_fixture.rs index 1b9b03823..e86a100e9 100644 --- a/data_plane/tests/support/physical_fixture.rs +++ b/data_plane/tests/support/physical_fixture.rs @@ -147,6 +147,7 @@ pub fn artifact_from_materializations( query_plan.entries.insert( canonical.clone(), QueryPlanEntry { + physical_dag: None, language: asap_types::query_plan::QueryLanguage::PromQl, query_id: canonical.clone(), canonical_query: canonical, From 0fa6be7a12982fc9d451e1f55b9f23b089922b0f Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 20:58:54 +0000 Subject: [PATCH 19/80] build: adopt typed physical output persistence codecs --- Cargo.lock | 14 +++++++------- Cargo.toml | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 141eb841c..d156b753c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986#2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index 5cf1a8d86..01d38f16d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } From 9a812802f78f71de3e7a3daa922741e11631b43d Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 21:23:58 +0000 Subject: [PATCH 20/80] feat: persist and recover bound native physical summary outputs --- Cargo.lock | 14 +- Cargo.toml | 12 +- crates/asap_types/src/precompute_plan.rs | 68 ++- .../asap_types/src/precompute_plan/catalog.rs | 2 +- .../sketch_db/index/maintenance.rs | 39 +- .../storage_engines/sketch_db/index/mod.rs | 3 + .../storage_engines/sketch_db/index/native.rs | 572 ++++++++++++++++++ .../sketch_db/persistence/part.rs | 1 + .../catalog-physical-plan-runtime.md | 31 + 9 files changed, 721 insertions(+), 21 deletions(-) create mode 100644 data_plane/src/storage_engines/sketch_db/index/native.rs diff --git a/Cargo.lock b/Cargo.lock index d156b753c..53360cc36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=26542909b0b37a45220d8f9d1e4b7963c8938dc0#26542909b0b37a45220d8f9d1e4b7963c8938dc0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index 01d38f16d..74a9f2478 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "26542909b0b37a45220d8f9d1e4b7963c8938dc0" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/crates/asap_types/src/precompute_plan.rs b/crates/asap_types/src/precompute_plan.rs index 32a46c010..96c558ce9 100644 --- a/crates/asap_types/src/precompute_plan.rs +++ b/crates/asap_types/src/precompute_plan.rs @@ -152,6 +152,8 @@ pub struct IngestContract { pub enum StateEncoding { SketchlibProtobufV1, SketchCoreMsgpackV1, + /// Backend-produced typed physical output, distinct from legacy sketch frames. + NativeBatchV1, ExactAccumulatorV1, /// Persisted backend state with explicit Planner family and population layout. PlannerExactAccumulatorV1, @@ -855,7 +857,7 @@ impl PrecomputePlan { crate::WindowKind::Session => None, } || schema.window.pane_origin_ms != materialization.pane_origin_ms - || schema.encodings != state_encodings(&accumulator.family) + || !state_encodings_match(&accumulator.family, &schema.encodings) { return Err(PrecomputePlanError::InvalidSchema { schema_id: schema.schema_id.clone(), @@ -903,8 +905,22 @@ pub(crate) fn state_schema_id(fingerprint: crate::PolicyFingerprint) -> String { format!("{}:summary-state:v1:{}", BACKEND_COMPAT, fingerprint.0) } +// Persisted schemas may declare a subset of formats. Adding a decoder must +// not invalidate existing installed plans that use only older supported codecs. +pub(crate) fn state_encodings_match( + family: &SummaryFamilyType, + encodings: &[StateEncoding], +) -> bool { + let supported = state_encodings(family); + !encodings.is_empty() + && encodings.iter().collect::>().len() == encodings.len() + && encodings + .iter() + .all(|encoding| supported.contains(encoding)) +} + pub(crate) fn state_encodings(family: &SummaryFamilyType) -> Vec { - match family { + let mut encodings = match family { SummaryFamilyType::ExactAggregate( planner_types::post_asap::ExactKind::Increase | planner_types::post_asap::ExactKind::Rate, @@ -932,7 +948,25 @@ pub(crate) fn state_encodings(family: &SummaryFamilyType) -> Vec StateEncoding::SketchCoreMsgpackV1, ], _ => Vec::new(), + }; + if matches!( + family, + SummaryFamilyType::ExactAggregate( + planner_types::post_asap::ExactKind::Sum + | planner_types::post_asap::ExactKind::Count + | planner_types::post_asap::ExactKind::Min + | planner_types::post_asap::ExactKind::Max + | planner_types::post_asap::ExactKind::Rate + | planner_types::post_asap::ExactKind::Increase, + _ + ) + ) || matches!(family, SummaryFamilyType::Sketch(kind, _) if matches!(kind.algorithm(), + SketchAlgorithm::Kll | SketchAlgorithm::DDSketch | SketchAlgorithm::Hll | + SketchAlgorithm::CmsWithHeap | SketchAlgorithm::CountSketchWithHeap)) + { + encodings.push(StateEncoding::NativeBatchV1); } + encodings } #[cfg(test)] @@ -950,6 +984,36 @@ mod source_window_cohort_tests { })) .unwrap() } + // New native-format support must not invalidate persisted older codec subsets. + #[test] + fn older_encoding_subsets_remain_valid_and_unknown_codecs_fail() { + use planner_types::post_asap::{SketchKind, SketchParams}; + let family = SummaryFamilyType::Sketch( + SketchKind::new(SketchAlgorithm::Kll, SketchParams::Kll { k: 200 }), + Default::default(), + ); + assert!(state_encodings_match( + &family, + &[ + StateEncoding::SketchlibProtobufV1, + StateEncoding::SketchCoreMsgpackV1 + ] + )); + assert!(state_encodings_match( + &family, + &[StateEncoding::NativeBatchV1] + )); + assert!(!state_encodings_match(&family, &[])); + assert!(!state_encodings_match( + &family, + &[StateEncoding::ExactAccumulatorV1] + )); + assert!(!state_encodings_match( + &family, + &[StateEncoding::NativeBatchV1, StateEncoding::NativeBatchV1] + )); + } + #[test] fn producer_roster_roundtrip_and_watermark_scope() { let envelope = PlanEnvelope { diff --git a/crates/asap_types/src/precompute_plan/catalog.rs b/crates/asap_types/src/precompute_plan/catalog.rs index f2322cd93..4307f13e0 100644 --- a/crates/asap_types/src/precompute_plan/catalog.rs +++ b/crates/asap_types/src/precompute_plan/catalog.rs @@ -207,7 +207,7 @@ impl PrecomputePlan { schema_id: schema.schema_id.clone(), }); } - if schema.encodings != state_encodings(&family) { + if !state_encodings_match(&family, &schema.encodings) { return Err(invalid("encoding does not match state family")); } if config.num_aggregates_to_retain == Some(0) { diff --git a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs index 3224b7248..bf31f27d8 100644 --- a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs +++ b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs @@ -275,6 +275,28 @@ impl SketchStore { generation: &Arc, expected_windows: &BTreeSet<(u64, u64)>, group: &BTreeMap, + ) -> Result { + self.read_frozen_windows_with( + sid, + definition, + generation, + expected_windows, + group, + |name, _, bytes| { + reconstruct_exact_agg(name, bytes) + .ok_or_else(|| "immutable input accumulator cannot be decoded".to_string()) + }, + ) + } + + pub(super) fn read_frozen_windows_with( + &self, + sid: u64, + definition: StoredOutputId, + generation: &Arc, + expected_windows: &BTreeSet<(u64, u64)>, + group: &BTreeMap, + mut decode: impl FnMut(&str, u8, &[u8]) -> Result, String>, ) -> Result { let start_ms = expected_windows .iter() @@ -377,8 +399,11 @@ impl SketchStore { if population != *group { continue; } - let state = reconstruct_exact_agg(&entry.sketch_type_name, &entry.sketch_bytes) - .ok_or("immutable input accumulator cannot be decoded")?; + let state = decode( + &entry.sketch_type_name, + entry.encoding_tag, + &entry.sketch_bytes, + )?; if windows .insert((record.start_ts, record.end_ts), Arc::from(state)) .is_some() @@ -720,9 +745,13 @@ impl SketchStore { labels: labels.into_values().collect(), }), sketch_type_name: state.type_name().to_string(), - encoding_tag: match binding.metadata.agg_kind { - AggKind::Sketch { .. } => encoding_to_tag(SketchEncoding::MsgpackFull), - AggKind::ExactAgg { .. } => 0, + encoding_tag: if state.type_name() == "NativePhysicalOutputV1" { + encoding_to_tag(SketchEncoding::NativeBatchV1) + } else { + match binding.metadata.agg_kind { + AggKind::Sketch { .. } => encoding_to_tag(SketchEncoding::MsgpackFull), + AggKind::ExactAgg { .. } => 0, + } }, sketch_bytes: bytes, }], diff --git a/data_plane/src/storage_engines/sketch_db/index/mod.rs b/data_plane/src/storage_engines/sketch_db/index/mod.rs index b1ae0b45a..2e7067f35 100644 --- a/data_plane/src/storage_engines/sketch_db/index/mod.rs +++ b/data_plane/src/storage_engines/sketch_db/index/mod.rs @@ -60,6 +60,7 @@ fn encoding_to_tag(enc: SketchEncoding) -> u8 { SketchEncoding::ProtoDelta => t::PROTO_DELTA, SketchEncoding::MsgpackFull => t::MSGPACK_FULL, SketchEncoding::MsgpackDelta => t::MSGPACK_DELTA, + SketchEncoding::NativeBatchV1 => t::NATIVE_BATCH_V1, } } @@ -73,6 +74,7 @@ fn tag_to_encoding(tag: u8) -> SketchEncoding { t::PROTO_DELTA => SketchEncoding::ProtoDelta, t::MSGPACK_FULL => SketchEncoding::MsgpackFull, t::MSGPACK_DELTA => SketchEncoding::MsgpackDelta, + t::NATIVE_BATCH_V1 => SketchEncoding::NativeBatchV1, // t::PROTO_FULL and t::UNKNOWN (legacy) both → Full. _ => SketchEncoding::ProtoFull, } @@ -3868,6 +3870,7 @@ pub use SummarySeriesMetadata as SketchInstanceMetadata; // alongside the store that uses it. mod admission; mod maintenance; +mod native; pub(crate) use maintenance::{CompleteRawMaintenanceCohort, FrozenExactWindows}; pub mod epoch_columnar; diff --git a/data_plane/src/storage_engines/sketch_db/index/native.rs b/data_plane/src/storage_engines/sketch_db/index/native.rs new file mode 100644 index 000000000..1493cddaf --- /dev/null +++ b/data_plane/src/storage_engines/sketch_db/index/native.rs @@ -0,0 +1,572 @@ +//! Bound native summary snapshots use the existing immutable publication and +//! recovery path. Window snapshots are not additive hot-state updates. +use super::*; +use crate::drivers::ingest::series_resolver::SeriesIdResolver; +use asap_physical_operators::{ + stored_state::native::{decode_batch, encode_batch}, + values::{Batch, Schema, Value}, + AggregateCore, SerializableToSink, +}; + +const NATIVE_OUTPUT_TYPE: &str = "NativePhysicalOutputV1"; +const NATIVE_OUTPUT_TAG: u8 = persistence::part::encoding_tag::NATIVE_BATCH_V1; + +#[derive(Clone)] +struct NativeSummaryOutput { + batch: Batch, + bytes: Vec, + kind: AggregationType, +} +impl NativeSummaryOutput { + fn new(batch: Batch, max_bytes: usize) -> Result { + let [row] = batch.rows() else { + return Err("one stored summary record requires one output row".into()); + }; + let states: Vec<_> = row + .iter() + .filter_map(|value| match value { + Value::Summary { state, .. } => Some(state), + _ => None, + }) + .collect(); + let [state] = states.as_slice() else { + return Err("stored native summary requires exactly one summary state".into()); + }; + let kind = state.get_accumulator_type(); + let bytes = encode_batch(&batch).map_err(|error| error.to_string())?; + if bytes.len() > max_bytes || batch.bytes() > max_bytes { + return Err("native summary exceeds publication/read budget".into()); + } + Ok(Self { batch, bytes, kind }) + } + fn validate_group(&self, group: &BTreeMap) -> Result<(), String> { + for (key, value) in group { + let column = self + .batch + .schema() + .fields + .iter() + .position(|field| &field.name == key) + .ok_or("native output is missing its stored group key")?; + if !matches!(&self.batch.rows()[0][column], Value::Utf8(actual) if actual.as_ref() == value) + { + return Err("native output group differs from stored address".into()); + } + } + Ok(()) + } +} +impl SerializableToSink for NativeSummaryOutput { + fn serialize_to_bytes(&self) -> Vec { + self.bytes.clone() + } + fn serialize_to_json(&self) -> serde_json::Value { + serde_json::json!({"format": NATIVE_OUTPUT_TYPE, "bytes": self.bytes}) + } +} +impl AggregateCore for NativeSummaryOutput { + fn clone_boxed_core(&self) -> Box { + Box::new(self.clone()) + } + fn type_name(&self) -> &'static str { + NATIVE_OUTPUT_TYPE + } + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn as_any_mut(&mut self) -> &mut dyn std::any::Any { + self + } + fn get_accumulator_type(&self) -> AggregationType { + self.kind + } + fn get_keys(&self) -> Option> { + None + } + fn approx_memory_bytes(&self) -> usize { + self.bytes.len() + self.batch.bytes() + } + fn merge_with( + &self, + _: &dyn AggregateCore, + ) -> Result, Box> { + Err("native output snapshots require an explicit physical merge operator".into()) + } + fn query_statistic( + &self, + _: asap_types::Statistic, + _: &Option, + _: &HashMap, + ) -> Result> { + Err("native output readout requires the installed physical DAG".into()) + } +} + +impl SketchStore { + /// Publish a finalized native result only after the complete raw input + /// cohort is durable. Existing publication fences prevent duplicate commits. + pub fn publish_native_summary_output( + &self, + resolver: &SeriesIdResolver, + config: &asap_types::PrecomputeMaterialization, + output: &crate::storage_engines::types::PrecomputedOutput, + batch: Batch, + max_bytes: usize, + ) -> Result { + use sha2::{Digest, Sha256}; + let generation = output + .catalog_generation + .as_ref() + .ok_or("native output requires a catalog generation")?; + let program = config + .derived_input + .as_ref() + .ok_or("native output requires installed input lineage")?; + let window = (output.start_timestamp, output.end_timestamp); + let cohort = + self.read_complete_raw_maintenance_cohort(generation, &program.inputs, window)?; + let (population_key, group) = build_attrs_fp_and_label_map(config, output)?; + let state = NativeSummaryOutput::new(batch, max_bytes)?; + let family = config.accumulator_spec().map_err(|e| e.to_string())?.family; + for value in &state.batch.rows()[0] { + if let Value::Summary { family: actual, .. } = value { + if actual != &family { + return Err("native output family differs from installed definition".into()); + } + } + } + state.validate_group(&group)?; + let sid = self.resolve_output_storage_handle( + resolver, + config.policy_fingerprint().into(), + &population_key, + Some(generation), + )?; + let mut digest = Sha256::new(); + digest.update(serde_json::to_vec(&(program, window)).map_err(|e| e.to_string())?); + for input in cohort.inputs() { + digest.update( + serde_json::to_vec(&(&input.stored_output_reference, &input.group)) + .map_err(|e| e.to_string())?, + ); + for (window, state) in &input.windows { + digest.update(serde_json::to_vec(window).map_err(|e| e.to_string())?); + let bytes = state.serialize_to_bytes(); + digest.update((bytes.len() as u64).to_le_bytes()); + digest.update(bytes); + } + } + self.publish_complete_raw_maintenance_output( + sid, + config, + output, + &state, + &cohort, + digest.finalize().into(), + ) + } + + /// Resolve the installed output/group prefix without minting a new handle, + /// then read exactly the requested immutable window and validate its format. + pub fn read_native_summary_output( + &self, + resolver: &SeriesIdResolver, + address: &asap_types::sds::StoredSummaryKey, + reference: &StoredOutputReference, + expected_schema: Schema, + max_bytes: usize, + ) -> Result { + address.validate().map_err(|e| e.to_string())?; + let (catalog, generation) = self + .descriptors + .authoritative_snapshot() + .ok_or("native read requires an installed catalog")?; + if (address.plan_id, address.plan_version) != (generation.plan_id, generation.plan_version) + || address.stored_output_id != reference.stored_output_id + || catalog + .output_reference(address.stored_output_id) + .map_err(|e| e.to_string())? + != *reference + { + return Err("native read differs from its installed output reference".into()); + } + let identity = &catalog.outputs[&address.stored_output_id]; + let data = &catalog.data_descriptors[&identity.data_descriptor_id]; + let pairs: Vec<_> = address + .population + .iter() + .map(|(key, value)| (key.as_str(), value.as_str())) + .collect(); + let population_key = crate::drivers::ingest::population_attrs_fingerprint( + data.population_key_encoding, + &pairs, + )?; + let identity = serde_json::to_string(&(address.plan_id, address.plan_version, reference)) + .map_err(|e| e.to_string())?; + let sid = resolver + .lookup("stored-output", &population_key, &identity) + .ok_or("native stored output/group is unavailable")?; + let window = ( + u64::try_from(address.window.start_ms).map_err(|_| "negative native window")?, + u64::try_from(address.window.end_ms).map_err(|_| "negative native window")?, + ); + let frozen = self.read_frozen_windows_with( + sid, + address.stored_output_id, + &generation, + &BTreeSet::from([window]), + &address.population, + |name, tag, bytes| { + if name != NATIVE_OUTPUT_TYPE || tag != NATIVE_OUTPUT_TAG { + return Err("stored record is not a native physical output".into()); + } + let batch = decode_batch(bytes, expected_schema.clone(), max_bytes) + .map_err(|e| e.to_string())?; + let output = NativeSummaryOutput::new(batch, max_bytes)?; + output.validate_group(&address.population)?; + Ok(Box::new(output) as Box) + }, + )?; + let state = frozen.windows[&window] + .as_any() + .downcast_ref::() + .ok_or("native output decoder mismatch")?; + Ok(state.batch.clone()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::storage_engines::types::PrecomputedOutput; + use asap_physical_operators::{ + dag::{operators::Operator, Limits, RunContext, Scope}, + physical_planner::{CompiledPhysicalDag, InputContract, Source}, + summary_kernels::SumAccumulator, + }; + use futures::{executor::block_on, StreamExt}; + use planner_types::{ + post_asap::{SummaryFamilyType, SummaryField, SummarySchema}, + pre_asap::DataType, + }; + + fn run(input: Batch, operator: Operator) -> Batch { + let schema = input.schema().clone(); + let plan = CompiledPhysicalDag::from_operators( + BTreeMap::from([(0, InputContract::bounded(schema.clone()))]), + BTreeMap::from([(1, (vec![0], operator))]), + vec![1], + ) + .unwrap(); + let plan = CompiledPhysicalDag::decode(&plan.encode().unwrap()).unwrap(); + let graph = plan + .instantiate(BTreeMap::from([( + 0, + Box::new(Operator::source(schema, vec![input]).unwrap()) as Source<'_>, + )])) + .unwrap(); + let context = RunContext::new( + Scope::Query { + evaluation_time_ms: 60_000, + revision: 0, + }, + Limits::default(), + ) + .unwrap(); + let stream = graph.execute(&[1], context).unwrap().remove(0); + let output = block_on(stream.collect::>()); + assert_eq!(output.len(), 1); + (*output.into_iter().next().unwrap().unwrap()).clone() + } + + // Group columns in the payload must agree with the bound record address. + #[test] + fn native_summary_payload_cannot_be_relabelled_as_another_group() { + let family = SummaryFamilyType::ExactAggregate( + planner_types::post_asap::ExactKind::Sum, + planner_types::post_asap::ExactParams::Sum, + ); + let schema = Arc::new(SummarySchema { + fields: vec![ + SummaryField { + name: "job".into(), + dtype: SummaryFamilyType::Plain(DataType::Utf8), + nullable: false, + }, + SummaryField { + name: "state".into(), + dtype: family.clone(), + nullable: false, + }, + ], + time_index: None, + }); + let batch = Batch::try_new( + schema, + vec![vec![ + Value::Utf8("api".into()), + Value::Summary { + family, + state: Arc::new(SumAccumulator::new()), + }, + ]], + ) + .unwrap(); + let output = NativeSummaryOutput::new(batch, 1 << 20).unwrap(); + output + .validate_group(&BTreeMap::from([("job".into(), "api".into())])) + .unwrap(); + assert!(output + .validate_group(&BTreeMap::from([("job".into(), "worker".into())])) + .is_err()); + assert!(output + .validate_group(&BTreeMap::from([("unknown".into(), "api".into())])) + .is_err()); + } + + // Real durable source panes -> native build -> immutable publication -> bound + // lookup -> native readout, repeated after both store and resolver restart. + #[test] + fn native_summary_publication_and_bound_recovery_preserve_identity_and_format() { + let mut fixture: serde_json::Value = serde_json::from_str(include_str!( + "../../../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let mut query = fixture["query_workload"]["repeating_queries"][3].clone(); + query["query"] = "quantile(1.0, sum_over_time(immutable_value[1m]))".into(); + query["demand"]["fixed_interval_at"]["interval"] = 60_000.into(); + query["demand"]["fixed_interval_at"]["evaluation_phase"] = 0.into(); + fixture["query_workload"]["repeating_queries"] = serde_json::json!([query]); + let snapshot = serde_json::from_value(fixture).unwrap(); + let plan = crate::tests::test_utilities::planning::quoted_snapshot(snapshot, false) + .compile_promql() + .unwrap(); + let source = plan + .precompute_plan + .materializations + .iter() + .find(|c| c.derived_input.is_none()) + .unwrap(); + let target = plan + .precompute_plan + .materializations + .iter() + .find(|c| c.derived_input.is_some()) + .unwrap(); + let directory = tempfile::tempdir().unwrap(); + let resolver_path = directory.path().join("resolver.jsonl"); + let resolver = SeriesIdResolver::open(resolver_path.clone()).unwrap(); + let persistence_config = || { + let mut config = persistence::config::SketchStorePersistenceConfig::with_memory_limit( + 1 << 24, + directory.path().join("store"), + ); + config.delete_older_than_ms = None; + config.hot_window_ms = None; + config + }; + let store = Arc::new(SketchStore::new()); + store + .install_summary_catalog(Arc::new(plan.summary_catalog.clone())) + .unwrap(); + let generation = store.active_catalog_generation().unwrap(); + let mut persistence = store.start_persistence(persistence_config()).unwrap(); + for (instance, value) in [("a", 0.125), ("b", 0.25)] { + let group = BTreeMap::from([("instance".to_string(), instance.to_string())]); + let coordinate = asap_types::sds::SummaryInstanceCoordinates { + stored_output_id: source.policy_fingerprint().into(), + time_range: HalfOpenTimeRange { + start_ms: 0, + end_ms: 60_000, + }, + group_values: group.clone(), + }; + let revision = store + .admit_summary_updates(&generation, BTreeSet::from([coordinate.clone()])) + .unwrap(); + let mut output = PrecomputedOutput::new(0, 60_000, None, source.policy_fingerprint()); + output.population_labels = Some(group); + output.catalog_generation = Some(generation.clone()); + let mut state = SumAccumulator::new(); + state.update(value); + store + .publish_admitted_summary_update( + &generation, + &coordinate, + revision, + revision, + 120_000, + |writer| writer.ingest_precompute_with_series_id(700, source, &output, &state), + ) + .unwrap(); + } + let deadline = crate::tests::test_utilities::timing::deadline(Duration::from_secs(5)); + while !store.seal_finite_summary_input(&generation).unwrap() { + assert!(std::time::Instant::now() < deadline); + std::thread::sleep(Duration::from_millis(5)); + } + let cohort = store + .read_complete_raw_maintenance_cohort( + &generation, + &target.derived_input.as_ref().unwrap().inputs, + (0, 60_000), + ) + .unwrap(); + let values = cohort + .inputs() + .iter() + .flat_map(|input| input.windows.values()) + .map(|state| { + vec![Value::Float64( + state + .query_statistic(asap_types::Statistic::Sum, &None, &HashMap::new()) + .unwrap(), + )] + }) + .collect(); + let raw_schema = Arc::new(SummarySchema { + fields: vec![SummaryField { + name: "value".into(), + dtype: SummaryFamilyType::Plain(DataType::Float64), + nullable: false, + }], + time_index: None, + }); + let input = Batch::try_new(raw_schema.clone(), values).unwrap(); + let build = Operator::summary_build( + raw_schema, + target.accumulator_spec().unwrap().family, + 0, + None, + vec![], + ) + .unwrap(); + let output_batch = run(input, build); + let expected_schema = output_batch.schema().clone(); + let mut output = PrecomputedOutput::new(0, 60_000, None, target.policy_fingerprint()); + output.catalog_generation = Some(generation.clone()); + let before = persistence.manifest.live_parts().len(); + assert!(store + .publish_native_summary_output( + &resolver, + target, + &output, + output_batch.clone(), + 1 << 20 + ) + .unwrap()); + store + .publish_native_summary_output(&resolver, target, &output, output_batch, 1 << 20) + .unwrap(); + assert_eq!(persistence.manifest.live_parts().len(), before + 1); + let reference = plan + .summary_catalog + .output_reference(target.policy_fingerprint().into()) + .unwrap(); + let address = asap_types::sds::StoredSummaryKey { + plan_id: generation.plan_id, + plan_version: generation.plan_version, + stored_output_id: reference.stored_output_id, + population: BTreeMap::new(), + window: HalfOpenTimeRange { + start_ms: 0, + end_ms: 60_000, + }, + }; + let check = |store: &SketchStore, resolver: &SeriesIdResolver| { + let batch = store + .read_native_summary_output( + resolver, + &address, + &reference, + expected_schema.clone(), + 1 << 20, + ) + .unwrap(); + let handles = store.storage_handles_for_output(&reference); + assert_eq!(handles.len(), 1); + let frames = store.query_range(handles[0], 0, 60_000); + assert_eq!( + frames[0].samples[&60_000][0].encoding, + SketchEncoding::NativeBatchV1 + ); + let count = resolver.len(); + let mut other_group = address.clone(); + other_group + .population + .insert("instance".into(), "unknown".into()); + assert!(store + .read_native_summary_output( + resolver, + &other_group, + &reference, + expected_schema.clone(), + 1 << 20 + ) + .is_err()); + assert_eq!( + resolver.len(), + count, + "bound reads must not allocate outputs" + ); + let bytes = encode_batch(&batch).unwrap(); + let readout = Operator::readout( + batch.schema().clone(), + 0, + asap_types::Statistic::Quantile, + HashMap::from([("quantile".into(), "1.0".into())]), + ) + .unwrap(); + let values = run(batch, readout); + assert!(matches!(values.rows()[0][0], Value::Float64(v) if (v - 0.25).abs() < 0.01)); + let mut wrong = reference.clone(); + wrong.definition_id = plan + .summary_catalog + .output_reference(source.policy_fingerprint().into()) + .unwrap() + .definition_id; + assert!(store + .read_native_summary_output( + resolver, + &address, + &wrong, + expected_schema.clone(), + 1 << 20 + ) + .is_err()); + let mut missing = address.clone(); + missing.window.end_ms = 120_000; + assert!(store + .read_native_summary_output( + resolver, + &missing, + &reference, + expected_schema.clone(), + 1 << 20 + ) + .is_err()); + assert!(store + .read_native_summary_output( + resolver, + &address, + &reference, + expected_schema.clone(), + 1 + ) + .is_err()); + bytes + }; + let bytes = check(&store, &resolver); + persistence.shutdown(); + drop(store); + drop(resolver); + let recovered = Arc::new(SketchStore::new()); + recovered + .install_summary_catalog(Arc::new(plan.summary_catalog.clone())) + .unwrap(); + let mut persistence = recovered.start_persistence(persistence_config()).unwrap(); + let resolver = SeriesIdResolver::open(resolver_path).unwrap(); + assert_eq!(check(&recovered, &resolver), bytes); + persistence.shutdown(); + } +} diff --git a/data_plane/src/storage_engines/sketch_db/persistence/part.rs b/data_plane/src/storage_engines/sketch_db/persistence/part.rs index 52078104c..c760668cb 100644 --- a/data_plane/src/storage_engines/sketch_db/persistence/part.rs +++ b/data_plane/src/storage_engines/sketch_db/persistence/part.rs @@ -105,6 +105,7 @@ pub mod encoding_tag { pub const PROTO_DELTA: u8 = 2; pub const MSGPACK_FULL: u8 = 3; pub const MSGPACK_DELTA: u8 = 4; + pub const NATIVE_BATCH_V1: u8 = 5; } /// One entry inside a decoded part. The `start_ts`/`end_ts`/`label` diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 9b2ef1c64..48ee6bbe6 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -28,3 +28,34 @@ The HTTP lifecycle is exposed through `/api/v1/physical-plan`, The current V1 storage path reads only the installed plan version. Matching definition identity does not authorize cross-version payload reuse; that would require an explicit reader binding and separate compatibility support. + +## Persisted physical computation and outputs + +Installed SQL entries include a serialized native physical DAG. Installation +compiles it once; activation and requests validate its version, roots and input +schemas, then bind concrete batches. Missing physical programs require plan +recompilation. Serving does not lower relational expressions again. + +Native summary snapshots use `native_batch_v1`, with an explicit storage tag +separate from legacy sketch frames. The payload preserves the physical schema, +Float64 values, typed heap identities and the summary codec. Legacy sketch +readers reject this tag. Existing installed schemas may keep a nonempty, unique +subset of supported encodings when new decoders are added. + +`SketchStore::publish_native_summary_output` publishes one summary row for one +group/window through the existing immutable commit path. It requires the complete +durable raw input cohort and validates the installed family and group. Repeated +publication of the same lineage reuses the existing commit. + +`read_native_summary_output` resolves the installed output/group through the +persistent series resolver without allocating an identity. It validates the +plan version, definition, exact window, completeness, encoding, physical schema, +group values and read budget before returning a batch to the physical executor. +The supported path reads a complete immutable window; pane composition remains +an explicitly planned physical operation. + +The storage integration test covers durable per-series sums, native quantile +state construction, publication, bound readout and restart of both the store and +resolver. Automatic PromQL physical-candidate installation, Rate-to-heap storage +execution and spatial latest-value heap execution remain pending. This test does +not establish those paths. From a2320ffca0d75956dc91ceb30afda7b4189088da Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 21:29:31 +0000 Subject: [PATCH 21/80] perf: index bound SDS reads by output and window range --- .../sketch_db/index/maintenance.rs | 5 +- .../sketch_db/persistence/cache.rs | 4 +- .../sketch_db/persistence/part.rs | 122 ++++++++++++++---- .../catalog-physical-plan-runtime.md | 7 + 4 files changed, 107 insertions(+), 31 deletions(-) diff --git a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs index bf31f27d8..7e355c417 100644 --- a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs +++ b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs @@ -386,10 +386,7 @@ impl SketchStore { .part_cache .get_or_load(part.part_id) .map_err(|e| e.to_string())?; - for record in reader.index_records() { - if record.agg_id != sid || record.start_ts < start_ms || record.end_ts > end_ms { - continue; - } + for record in reader.window_records(sid, start_ms, end_ms) { let entry = reader.load_entry(&record).map_err(|e| e.to_string())?; if entry.label.as_ref().map_or(0, |label| label.labels.len()) != keys.len() { return Err("immutable input label arity differs from its descriptor".into()); diff --git a/data_plane/src/storage_engines/sketch_db/persistence/cache.rs b/data_plane/src/storage_engines/sketch_db/persistence/cache.rs index 0c235a451..ceda43c88 100644 --- a/data_plane/src/storage_engines/sketch_db/persistence/cache.rs +++ b/data_plane/src/storage_engines/sketch_db/persistence/cache.rs @@ -34,9 +34,9 @@ impl PartCache { Some( Cache::builder() .weigher(|_k: &PartId, v: &LoadedPart| -> u32 { - // Weight = sum of mmap'd bytes. Moka's weigher + // Include mmap bytes and the in-memory window index. The weigher // returns u32, so clamp large parts. - let len = v.meta.data_len + v.meta.index_len; + let len = v.resident_bytes(); len.min(u32::MAX as u64) as u32 }) .max_capacity(byte_budget) diff --git a/data_plane/src/storage_engines/sketch_db/persistence/part.rs b/data_plane/src/storage_engines/sketch_db/persistence/part.rs index c760668cb..6eae5f043 100644 --- a/data_plane/src/storage_engines/sketch_db/persistence/part.rs +++ b/data_plane/src/storage_engines/sketch_db/persistence/part.rs @@ -430,13 +430,15 @@ pub struct IndexRecord { pub data_offset: u64, } -/// mmap-backed reader for a single part. Cheap to construct (three -/// mmaps + one header parse), safe to share across threads via `Arc`. +/// mmap-backed reader with a sorted output/window index built once on open. +/// Safe to share across threads via `Arc`. pub struct PartReader { pub meta: PartMeta, pub part_dir: PathBuf, data_mmap: Arc, index_mmap: Arc, + // Older parts preserve flush order, so keep a separate sorted lookup. + window_index: Vec, } impl std::fmt::Debug for PartReader { @@ -479,12 +481,25 @@ impl PartReader { ))); } - Ok(Self { + let mut reader = Self { meta, part_dir: part_dir.to_path_buf(), data_mmap: Arc::new(data_mmap), index_mmap: Arc::new(index_mmap), - }) + window_index: Vec::new(), + }; + let mut positions: Vec<_> = (0..reader.meta.num_entries as usize).collect(); + positions.sort_unstable_by_key(|&position| { + let record = reader.index_record(position); + ( + record.agg_id, + record.start_ts, + record.end_ts, + record.data_offset, + ) + }); + reader.window_index = positions; + Ok(reader) } /// Read and verify just the meta.bin header (cheap — 64 bytes). @@ -537,28 +552,51 @@ impl PartReader { }) } - /// Return all index records. Small (32 B × num_entries) — cheap to - /// materialize. - pub fn index_records(&self) -> Vec { - let n = self.meta.num_entries as usize; - let mut out = Vec::with_capacity(n); - for i in 0..n { - let off = i * INDEX_ENTRY_SIZE; - let agg_id = u64::from_le_bytes(self.index_mmap[off..off + 8].try_into().unwrap()); - let start_ts = - u64::from_le_bytes(self.index_mmap[off + 8..off + 16].try_into().unwrap()); - let end_ts = - u64::from_le_bytes(self.index_mmap[off + 16..off + 24].try_into().unwrap()); - let data_offset = - u64::from_le_bytes(self.index_mmap[off + 24..off + 32].try_into().unwrap()); - out.push(IndexRecord { - agg_id, - start_ts, - end_ts, - data_offset, - }); + fn index_record(&self, position: usize) -> IndexRecord { + let off = position * INDEX_ENTRY_SIZE; + let read = + |offset| u64::from_le_bytes(self.index_mmap[offset..offset + 8].try_into().unwrap()); + IndexRecord { + agg_id: read(off), + start_ts: read(off + 8), + end_ts: read(off + 16), + data_offset: read(off + 24), } - out + } + + /// Preserve disk order for callers that need to inspect the entire part. + pub fn index_records(&self) -> Vec { + (0..self.meta.num_entries as usize) + .map(|position| self.index_record(position)) + .collect() + } + + /// Find records contained in the requested window under one stored-output + /// prefix. Duplicate windows remain visible so callers can reject ambiguity. + pub fn window_records( + &self, + agg_id: u64, + start_ts: u64, + end_ts: u64, + ) -> impl Iterator + '_ { + let first = self.window_index.partition_point(|&position| { + let record = self.index_record(position); + (record.agg_id, record.start_ts) < (agg_id, start_ts) + }); + self.window_index[first..] + .iter() + .map(|&position| self.index_record(position)) + .take_while(move |record| record.agg_id == agg_id && record.start_ts <= end_ts) + .filter(move |record| record.end_ts <= end_ts) + } + + pub fn resident_bytes(&self) -> u64 { + (self.data_mmap.len() as u64) + .saturating_add(self.index_mmap.len() as u64) + .saturating_add( + (self.window_index.capacity() as u64) + .saturating_mul(std::mem::size_of::() as u64), + ) } /// Resolve a single index record into a [`SnapshotEntry`] by reading @@ -658,6 +696,40 @@ mod tests { } } + // Old parts can be unsorted; lookup must isolate the prefix/range while + // preserving duplicate records for the immutable reader's ambiguity check. + #[test] + fn window_lookup_handles_unsorted_parts_duplicates_and_recovery() { + let tmp = TempDir::new().unwrap(); + let part_dir = tmp.path().join("lookup"); + let mut snapshots = Vec::new(); + for id in [99, 42, 1] { + let mut snapshot = make_snapshot(); + snapshot.agg_id = id; + snapshot.entries.reverse(); + if id == 42 { + snapshot.entries.push(snapshot.entries[1].clone()); + } + snapshots.push(snapshot); + } + PartWriter::write_part(&part_dir, 1, &snapshots).unwrap(); + for _ in 0..2 { + let reader = PartReader::open(&part_dir).unwrap(); + let records = reader.window_records(42, 1_000, 1_500).collect::>(); + assert_eq!(records.len(), 2); + assert!(records.iter().all(|record| record.agg_id == 42 + && record.start_ts == 1_000 + && record.end_ts == 1_500)); + assert_ne!(records[0].data_offset, records[1].data_offset); + assert_eq!(reader.window_records(42, 1_500, 2_000).count(), 1); + assert_eq!(reader.window_records(43, 0, u64::MAX).count(), 0); + assert_eq!(reader.window_records(42, 1_001, 1_999).count(), 0); + assert_eq!(reader.window_records(42, 2_000, 1_000).count(), 0); + assert_eq!(reader.index_records()[0].agg_id, 99); + assert!(reader.resident_bytes() > reader.meta.data_len + reader.meta.index_len); + } + } + #[test] fn part_round_trip_writes_and_reads_back() { let tmp = TempDir::new().unwrap(); diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 48ee6bbe6..bfdbe06b7 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -59,3 +59,10 @@ state construction, publication, bound readout and restart of both the store and resolver. Automatic PromQL physical-candidate installation, Rate-to-heap storage execution and spatial latest-value heap execution remain pending. This test does not establish those paths. + +Bound frozen reads resolve the stored-output/group prefix through the persistent +series resolver. Each cached part builds a sorted output/window index once on +open, including older parts written in flush order. Range reads inspect only the +matching prefix and start-time range, then validate end times and exact coverage. +Duplicate windows remain visible and are rejected as ambiguous. The index memory +counts toward the part-cache budget; the on-disk part format is unchanged. From 8f12a8e0bfad245c235978c0eecc9130657aa1c2 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 22:37:57 +0000 Subject: [PATCH 22/80] feat: install Planner native physical program for current-series TopK --- Cargo.lock | 14 +-- Cargo.toml | 12 +- control_plane/src/physical/compiler.rs | 4 + .../src/physical/maintained_population.rs | 49 ++++++++ control_plane/src/physical/workload_cost.rs | 9 +- .../src/physical/workload_cost/automatic.rs | 18 ++- crates/asap_types/src/query_plan.rs | 4 +- .../src/query_plan/current_series.rs | 10 +- crates/asap_types/src/query_plan/native.rs | 81 ++++++++++++++ .../asap_query_engine/logical_dag.rs | 8 ++ .../logical_dag/native_values.rs | 105 ++++++++++++++++++ .../sketch_db/current_series.rs | 9 ++ .../tests/support/current_series_process.rs | 22 ++++ .../catalog-physical-plan-runtime.md | 10 ++ 14 files changed, 336 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 53360cc36..ea20d207f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=e2c67fc921df88b72224d0de1bbfe6cd8cc725a0#e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index 74a9f2478..8041344b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "e2c67fc921df88b72224d0de1bbfe6cd8cc725a0" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 7c3f97533..79813ea41 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -2138,6 +2138,10 @@ impl DeploymentPlanCompiler { if frontend == QueryFrontend::MetricsQl { entry.language = crate::query_plan::QueryLanguage::MetricsQl; } + super::maintained_population::install_native_topk( + &mut entry, + &query.selected_plan_root, + )?; let catalog_key = QueryPlan::catalog_key(entry.language, &canonical); if query_entries.insert(catalog_key, entry).is_some() { return Err(CompileError::Query { diff --git a/control_plane/src/physical/maintained_population.rs b/control_plane/src/physical/maintained_population.rs index b5b7664e6..7bb955031 100644 --- a/control_plane/src/physical/maintained_population.rs +++ b/control_plane/src/physical/maintained_population.rs @@ -109,3 +109,52 @@ pub(super) fn operator( readout, })) } + +/// The maintained population is a deployment source; ranking is compiled by +/// Planner before this candidate is priced or installed. +pub(super) fn install_native_topk( + entry: &mut asap_types::query_plan::QueryPlanEntry, + selected: &std::rc::Rc, +) -> Result<(), CompileError> { + use asap_types::query_plan::QueryPlanNode; + let Some(QueryPlanNode::Logical { + operator: + ResidualQueryOperator::CurrentSeries { + population, + readout: SeriesReadout::TopK { .. }, + }, + .. + }) = entry.nodes.get(&entry.root) + else { + return Ok(()); + }; + if population.grouping.without { + return Ok(()); + } + let compiled = + asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout( + selected, + ) + .map_err(|error| CompileError::Query { + query_id: entry.query_id.clone(), + reason: error.to_string(), + })?; + let encoded = compiled.encode().map_err(|error| CompileError::Query { + query_id: entry.query_id.clone(), + reason: error.to_string(), + })?; + entry.physical_dag = Some( + serde_json::from_slice(&encoded) + .map_err(|error| CompileError::Snapshot(error.to_string()))?, + ); + let Some(QueryPlanNode::Logical { + operator: ResidualQueryOperator::CurrentSeries { readout, .. }, + .. + }) = entry.nodes.get_mut(&entry.root) + else { + unreachable!() + }; + *readout = SeriesReadout::Snapshot; + entry.recover_population_physical_dag()?; + Ok(()) +} diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 61ad7cfb0..53bd8c978 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -309,7 +309,7 @@ pub fn manifest( for node_id in entry.topological_order()? { add( format!("query:{}:{}", entry.query_id, node_id.0), - json!({"node": entry.nodes[&node_id], "query": entry.canonical_query, "instant": entry.instant}), + json!({"node": entry.nodes[&node_id], "query": entry.canonical_query, "instant": entry.instant, "physical_dag": entry.physical_dag}), "query_evaluation", evaluations, ); @@ -572,6 +572,12 @@ fn compile_candidate_for_pricing( }) .collect::>(); placement.sort(); + let native_programs = plan + .query_plan + .entries + .values() + .map(|entry| (&entry.query_id, &entry.physical_dag)) + .collect::>(); description.physical_candidate_id = description .candidate_id @@ -584,6 +590,7 @@ fn compile_candidate_for_pricing( bindings, placement, &plan.precompute_plan.ingest, + native_programs, ), ) }); diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index 7257bc9be..e6b3b634c 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -505,7 +505,16 @@ pub(super) fn estimate( .. } => { output_rows = cardinality; - cardinality * CPU_PER_ITEM + if entry.population_snapshot().is_some() { + detail = json!({"input_rows": cardinality, + "physical_program": entry.physical_dag, + "workspace_bytes_bound": cardinality * SERIES_BYTES * 3.0, + "formula": "rows * (log2(max(rows, 2)) + 2) * cpu_seconds_per_item", + "cpu_seconds_per_item": CPU_PER_ITEM}); + cardinality * (cardinality.max(2.0).log2() + 2.0) * CPU_PER_ITEM + } else { + cardinality * CPU_PER_ITEM + } } Node::RelationalJoin { inputs, @@ -572,13 +581,18 @@ pub(super) fn estimate( } else { BTreeSet::new() }; + let workspace_byte_seconds = if entry.population_snapshot().is_some() { + cardinality * SERIES_BYTES * 3.0 * cpu * evaluations + } else { + 0.0 + }; detail["evaluations"] = json!(evaluations); detail["output_rows_bound"] = json!(output_rows); insert( id, resources( cpu * evaluations, - 0.0, + workspace_byte_seconds, network * evaluations, ids.into_iter().collect(), detail, diff --git a/crates/asap_types/src/query_plan.rs b/crates/asap_types/src/query_plan.rs index a11aa0f2f..bbf0ceb33 100644 --- a/crates/asap_types/src/query_plan.rs +++ b/crates/asap_types/src/query_plan.rs @@ -395,7 +395,9 @@ impl QueryPlanEntry { self.query_id, self.root.0 ))); } - if self.relation_output_schema()?.is_some() || self.physical_dag.is_some() { + if self.population_snapshot().is_some() { + self.recover_population_physical_dag()?; + } else if self.relation_output_schema()?.is_some() || self.physical_dag.is_some() { self.recover_relational_physical_dag()?; } for (id, node) in &self.nodes { diff --git a/crates/asap_types/src/query_plan/current_series.rs b/crates/asap_types/src/query_plan/current_series.rs index c99498457..9aed86961 100644 --- a/crates/asap_types/src/query_plan/current_series.rs +++ b/crates/asap_types/src/query_plan/current_series.rs @@ -49,8 +49,14 @@ impl SeriesPopulation { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(tag = "kind", rename_all = "snake_case", deny_unknown_fields)] pub enum SeriesReadout { - Quantile { q: f64 }, - TopK { k: u64 }, + /// All eligible members for a Planner-compiled physical readout. + Snapshot, + Quantile { + q: f64, + }, + TopK { + k: u64, + }, Sum, Count, Average, diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs index e05572f78..da3637e0a 100644 --- a/crates/asap_types/src/query_plan/native.rs +++ b/crates/asap_types/src/query_plan/native.rs @@ -245,6 +245,87 @@ impl QueryPlanEntry { } } +impl QueryPlanEntry { + pub fn population_snapshot(&self) -> Option<¤t_series::SeriesPopulation> { + if self.nodes.len() != 1 { + return None; + } + match self.nodes.get(&self.root) { + Some(QueryPlanNode::Logical { + operator: + residual::ResidualQueryOperator::CurrentSeries { + population, + readout: current_series::SeriesReadout::Snapshot, + }, + inputs, + }) if inputs.is_empty() => Some(population), + _ => None, + } + } + + /// Recover an installed population readout; the source binds the complete + /// maintained vector, while the physical program owns ranking and limiting. + pub fn recover_population_physical_dag(&self) -> Result { + let invalid = |message: &str| QueryPlanError::Invalid(message.into()); + let population = self + .population_snapshot() + .ok_or_else(|| invalid("missing population source binding"))?; + population.validate()?; + let value = self + .physical_dag + .as_ref() + .ok_or_else(|| invalid("missing installed population physical DAG"))?; + let dag = CompiledPhysicalDag::decode( + &serde_json::to_vec(value) + .map_err(|error| QueryPlanError::Invalid(error.to_string()))?, + ) + .map_err(|error| QueryPlanError::Invalid(error.to_string()))?; + let inputs = dag.input_contracts().collect::>(); + let [(_, input)] = inputs.as_slice() else { + return Err(invalid("population physical DAG requires one source")); + }; + let [root] = dag.roots() else { + return Err(invalid("population physical DAG requires one root")); + }; + let output = dag + .output_contract(*root) + .map_err(|error| QueryPlanError::Invalid(error.to_string()))?; + if input.schema != output.schema { + return Err(invalid( + "population ranking must preserve complete source rows", + )); + } + use planner_types::{post_asap::SummaryFamilyType, pre_asap::DataType}; + let fields = &input.schema.fields; + let column = |name: &str, dtype: DataType| { + fields.iter().any(|field| { + field.name == name + && field.dtype == SummaryFamilyType::Plain(dtype.clone()) + && !field.nullable + }) + }; + if !column( + asap_physical_operators::physical_planner::promql_rows::SERIES_IDENTITY_COLUMN, + DataType::Utf8, + ) || !column("value", DataType::Float64) + || input.schema.time_index.is_none_or(|index| { + fields[index].dtype != SummaryFamilyType::Plain(DataType::Timestamp) + }) + || population.grouping.without + || population.grouping.labels.iter().any(|label| { + !fields.iter().any(|field| { + &field.name == label && field.dtype == SummaryFamilyType::Plain(DataType::Utf8) + }) + }) + { + return Err(invalid( + "population physical source loses identity, value, timestamp or grouping", + )); + } + Ok(dag) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs index 96eaf5ccb..06b9af019 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs @@ -96,6 +96,14 @@ pub(crate) fn execute_installed( where F: FnMut(QueryNodeId, u64) -> Result, { + if entry.population_snapshot().is_some() { + if !leaves.is_empty() { + return Err(miss( + "population physical input must use its installed source binding", + )); + } + return native_values::execute_population(entry, at, callback); + } execute_values(entry, leaves, at, callback) } diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index cdc8663a2..c7471ea9e 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -129,3 +129,108 @@ pub(super) fn semi_join( .map_err(|e| miss(e.to_string()))?; output(values, result) } + +pub(super) fn execute_population( + entry: &asap_types::query_plan::QueryPlanEntry, + at: u64, + mut callback: F, +) -> Result< + ( + crate::query_engines::query_result::QueryResult, + super::ExecutionStats, + ), + EngineError, +> +where + F: FnMut( + asap_types::query_plan::QueryNodeId, + u64, + ) -> Result, +{ + use crate::{ + query_engines::query_result::{InstantVectorElement, QueryResult}, + storage_engines::types::KeyByLabelValues, + }; + use asap_physical_operators::physical_planner::{ + promql_rows::{decode_series_identity, series_row, SERIES_IDENTITY_COLUMN}, + Source, + }; + use futures::{executor::block_on, StreamExt}; + use std::collections::BTreeMap; + let program = entry + .recover_population_physical_dag() + .map_err(|error| miss(error.to_string()))?; + let (input_id, input) = program.input_contracts().next().unwrap(); + let at_signed = i64::try_from(at).map_err(|_| miss("evaluation timestamp overflow"))?; + let values = super::vector(super::from_result(callback(entry.root, at)?)?)?; + let rows = values + .into_iter() + .map(|(labels, value)| { + series_row(&input.schema, &labels, at_signed, value) + .map_err(|error| miss(error.to_string())) + }) + .collect::, _>>()?; + let batch = + Batch::try_new(input.schema.clone(), rows).map_err(|error| miss(error.to_string()))?; + let source = Operator::source(input.schema.clone(), vec![batch]) + .map_err(|error| miss(error.to_string()))?; + let graph = program + .instantiate(BTreeMap::from([(input_id, Box::new(source) as Source<'_>)])) + .map_err(|error| miss(error.to_string()))?; + let context = dag::RunContext::new( + dag::Scope::Query { + evaluation_time_ms: at_signed, + revision: 0, + }, + dag::Limits { + max_bytes: entry.population_snapshot().unwrap().max_bytes as usize, + ..dag::Limits::default() + }, + ) + .map_err(|error| miss(error.to_string()))?; + let mut stream = graph + .execute(program.roots(), context) + .map_err(|error| miss(error.to_string()))? + .remove(0); + let values = block_on(async { + let mut values = Vec::new(); + while let Some(batch) = stream.next().await { + let batch = batch.map_err(|error| miss(error.to_string()))?; + let identity = batch + .schema() + .fields + .iter() + .position(|field| field.name == SERIES_IDENTITY_COLUMN) + .ok_or_else(|| miss("physical output loses series identity"))?; + let value = batch + .schema() + .fields + .iter() + .position(|field| field.name == "value") + .ok_or_else(|| miss("physical output loses sample value"))?; + for row in batch.rows() { + let (Value::Utf8(encoded), Value::Float64(sample)) = (&row[identity], &row[value]) + else { + return Err(miss("invalid population physical output")); + }; + let labels = + decode_series_identity(encoded).map_err(|error| miss(error.to_string()))?; + values.push( + InstantVectorElement::new( + KeyByLabelValues::new_with_labels(labels.values().cloned().collect()), + *sample, + ) + .with_label_keys_override(labels.into_keys().collect()), + ); + } + } + Ok(values) + })?; + Ok(( + QueryResult::vector(values, at), + super::ExecutionStats { + summary_readout_evaluations: 1, + ..Default::default() + }, + )) +} diff --git a/data_plane/src/storage_engines/sketch_db/current_series.rs b/data_plane/src/storage_engines/sketch_db/current_series.rs index 1887647ff..d3885dc06 100644 --- a/data_plane/src/storage_engines/sketch_db/current_series.rs +++ b/data_plane/src/storage_engines/sketch_db/current_series.rs @@ -194,6 +194,14 @@ impl Population { } } fn read(&mut self, readout: &SeriesReadout) -> Vector { + if matches!(readout, SeriesReadout::Snapshot) { + return self + .groups + .values() + .flat_map(|group| group.ordered.iter()) + .map(|member| (member.labels.clone(), member.value)) + .collect(); + } let mut result = vec![]; for (labels, group) in &mut self.groups { if group.cached.is_none() { @@ -221,6 +229,7 @@ impl Population { } let (values, top, sum, average) = group.cached.as_ref().unwrap(); match readout { + SeriesReadout::Snapshot => unreachable!("snapshot returned above"), SeriesReadout::Quantile { q } => { // `values` is only populated for a quantile-carrying population. // `ResidualQueryOperator::validate` rejects the mismatched pairing at diff --git a/data_plane/tests/support/current_series_process.rs b/data_plane/tests/support/current_series_process.rs index bc7f1140d..0456f2faa 100644 --- a/data_plane/tests/support/current_series_process.rs +++ b/data_plane/tests/support/current_series_process.rs @@ -103,6 +103,28 @@ async fn current_series_quantiles_topk_share_and_replace_values() { }); let planned = snapshot.clone().compile_promql().unwrap(); for entry in planned.query_plan.entries.values() { + if entry.canonical_query.starts_with("topk") { + assert!( + entry.population_snapshot().is_some(), + "TopK must bind a complete population source" + ); + let restored: asap_types::query_plan::QueryPlanEntry = + serde_json::from_slice(&serde_json::to_vec(entry).unwrap()).unwrap(); + let physical = restored.recover_population_physical_dag().unwrap(); + let encoded = String::from_utf8(physical.encode().unwrap()).unwrap(); + assert!(encoded.contains("Sort") && encoded.contains("Limit")); + assert!(encoded.contains("$promql_series_identity")); + assert!( + !encoded.contains("CurrentSeries"), + "the stored population boundary must not be recomputed" + ); + let mut missing = restored.clone(); + missing.physical_dag = None; + assert!(missing.recover_population_physical_dag().is_err()); + let mut version = restored; + version.physical_dag.as_mut().unwrap()["version"] = 999.into(); + assert!(version.recover_population_physical_dag().is_err()); + } for node in entry.nodes.values() { if let asap_types::query_plan::QueryPlanNode::Logical { operator: diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index bfdbe06b7..10dcb744b 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -66,3 +66,13 @@ open, including older parts written in flush order. Range reads inspect only the matching prefix and start-time range, then validate end times and exact coverage. Duplicate windows remain visible and are rejected as ambiguous. The index memory counts toward the part-cache budget; the on-disk part format is unchanged. + +For selected explicit-`by` current-series TopK, the population store now supplies +all eligible members through a snapshot binding. Planner compiles the ranking +above that boundary; the QueryPlan persists that physical program before +candidate pricing and activation. Serving recovers its operators and supplies +full-label native rows without parsing or lowering the query. Automatic cost +estimates include sorting CPU and temporary workspace; provider quote manifests +include the physical program itself. Other population readouts retain their +existing paths. This path does not imply that spatial heap candidates or buffered +Rate-to-heap persistence are deployed yet. From d0be8eb7e171f5c61b271a97c08368ce8afb6438 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 22:40:12 +0000 Subject: [PATCH 23/80] test: assert installed native spatial TopK ranking and dependencies --- control_plane/tests/issue754_level1.rs | 64 ++++++++++++++++++- .../issue754-human-review/render.py | 35 +++++++++- 2 files changed, 95 insertions(+), 4 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index ca7a9ca72..fa301e987 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -244,7 +244,69 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option>(); + assert_eq!( + inputs.len(), + 1, + "spatial ranking binds one complete population" + ); + let input = &inputs[0].1.schema; + assert!(input + .fields + .iter() + .any(|field| field.name == "$promql_series_identity")); + let value_column = input + .fields + .iter() + .position(|field| field.name == "value") + .unwrap(); + let group_column = input + .fields + .iter() + .position(|field| field.name == "label_0") + .unwrap(); + let program: Value = serde_json::from_slice(&physical.encode().unwrap()).unwrap(); + let operations: Vec<_> = program["nodes"] + .as_object() + .unwrap() + .values() + .filter_map(|node| node.get("Operator")) + .collect(); + assert_eq!(operations.len(), 2); + let sort = operations + .iter() + .find(|node| node["operator"]["kind"].get("Sort").is_some()) + .unwrap(); + assert_eq!( + sort["operator"]["kind"]["Sort"]["keys"], + json!([{"column":value_column,"descending":true,"nulls_first":false}]) + ); + assert_eq!( + sort["operator"]["kind"]["Sort"]["groups"], + json!([group_column]) + ); + let limit = operations + .iter() + .find(|node| node["operator"]["kind"].get("Limit").is_some()) + .unwrap(); + assert_eq!( + limit["operator"]["kind"]["Limit"], + json!({"n":3,"offset":0,"groups":[group_column]}) + ); + assert_eq!(sort["inputs"], json!([inputs[0].0])); + let sort_id: u64 = program["nodes"] + .as_object() + .unwrap() + .iter() + .find(|(_, node)| node.get("Operator") == Some(*sort)) + .unwrap() + .0 + .parse() + .unwrap(); + assert_eq!(limit["inputs"], json!([sort_id])); assert!( materializations.is_empty(), "{name}: current-series readout has no summary producer" diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index fe5630991..a08b0ede2 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -79,6 +79,33 @@ def block(value): lines += [f"Its input is node `{producer['id']}`: {cell(producer['payload'])}. Column indices refer to that producer's output schema above.", ''] if not found: lines += ['No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table.', ''] + physical = entry.get('physical_dag') + if physical: + lines += ['## Installed native physical program', '', + 'This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs.', '', + f"Roots: {cell(physical['roots'])}.", '', + '| Node | Dependencies | Operator / input contract | Output fields |', + '| --- | --- | --- | --- |'] + diagram = ['```mermaid', 'flowchart LR'] + for node_id, node in physical['nodes'].items(): + if 'Input' in node: + dependencies = [] + payload = {'Input': node['Input']['properties']} + fields = node['Input']['schema']['fields'] + name = 'Bound population snapshot' + else: + operator = node['Operator'] + dependencies = operator['inputs'] + payload = operator['operator']['kind'] + fields = operator['operator']['output']['fields'] + name = next(iter(payload)) if isinstance(payload, dict) else payload + names = [f"{i}: {field['name']}/{dtype(field['dtype'])}" for i, field in enumerate(fields)] + lines.append(f"| {node_id} | {cell(dependencies)} | {cell(payload)} | {cell(names)} |") + diagram.append(f' P{node_id}["{node_id}: {name}"]') + for parent in dependencies: + diagram.append(f' P{parent} --> P{node_id}') + diagram += ['```', ''] + lines += ['', *diagram] report = plan.get('cost_comparison') or {} lines += ['## Candidate admission and costing', '', 'Costs below come from the controlled Level 1 fixture, not production measurements.', ''] @@ -126,9 +153,11 @@ def block(value): These exports describe the current Backend implementation. They do **not** prove completion of the Planner physical-candidate installation/execution handoff. -The displayed computation is logical provenance; the installed Backend adapter -and stored-output bindings are shown separately. Deployment Rate → heap storage -E2E and latest-value spatial TopK remain outstanding. +Logical provenance and installed native physical programs are shown separately. +Spatial TopK binds a complete current-series snapshot and runs a persisted native +Sort → Limit program. This is the exact ranking candidate; spatial CMS/CountSketch +heap deployment and Rate → heap storage E2E remain outstanding. Other PromQL +paths still use the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; From 104d7ef34ed545cc0ad45c72fa4d05d7261394d8 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 22:40:29 +0000 Subject: [PATCH 24/80] docs: regenerate Level 1 plans with native spatial TopK program --- .../issue754-human-review/README.md | 10 +- .../candidates/grouped-rate-0.json | 25 +- .../candidates/grouped-rate-1.json | 22 +- .../candidates/grouped-temporal-sum-0.json | 29 +- .../candidates/grouped-temporal-sum-1.json | 26 +- .../candidates/grouped-temporal-sum-3.json | 29 +- .../candidates/quantile-ratio-0.json | 37 +- .../candidates/quantile-ratio-1.json | 30 +- .../candidates/quantile-ratio-2.json | 30 +- .../candidates/spatial-quantile-0.json | 25 +- .../candidates/spatial-quantile-1.json | 18 +- .../candidates/spatial-quantile-2.json | 18 +- .../candidates/spatial-quantile-3.json | 18 +- .../candidates/spatial-sum-0.json | 21 +- .../candidates/spatial-sum-1.json | 18 +- .../candidates/spatial-sum-2.json | 18 +- .../candidates/spatial-sum-3.json | 18 +- .../candidates/spatial-topk-1.json | 18 +- .../candidates/spatial-topk-2.json | 247 ++++++++- .../candidates/temporal-quantile-0.json | 21 +- .../candidates/temporal-quantile-1.json | 18 +- .../candidates/temporal-quantile-2.json | 18 +- .../candidates/temporal-rate-0.json | 21 +- .../candidates/temporal-rate-1.json | 18 +- .../candidates/temporal-rate-2.json | 18 +- .../candidates/temporal-rate-3.json | 18 +- .../candidates/temporal-sum-0.json | 21 +- .../candidates/temporal-sum-1.json | 18 +- .../candidates/temporal-sum-2.json | 18 +- .../candidates/topk-rate-0.json | 25 +- .../candidates/topk-rate-1.json | 22 +- .../candidates/topk-rate-2.json | 22 +- .../issue754-human-review/grouped-rate.json | 74 +-- .../grouped-temporal-sum.json | 87 +-- .../issue754-human-review/quantile-ratio.json | 93 ++-- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 73 +-- .../issue754-human-review/spatial-sum.json | 73 +-- .../issue754-human-review/spatial-topk.json | 506 +++++++++++++++++- .../issue754-human-review/spatial-topk.md | 250 ++++++++- .../temporal-quantile.json | 67 +-- .../issue754-human-review/temporal-rate.json | 73 +-- .../issue754-human-review/temporal-sum.json | 67 +-- .../issue754-human-review/topk-rate.json | 77 +-- 44 files changed, 1679 insertions(+), 678 deletions(-) diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 8747b7f70..b6b1a5edb 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -5,15 +5,17 @@ recorded. Selected plans and successfully compiled candidate plans are retained as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986`. +`a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab`. ## Current implementation boundary These exports describe the current Backend implementation. They do **not** prove completion of the Planner physical-candidate installation/execution handoff. -The displayed computation is logical provenance; the installed Backend adapter -and stored-output bindings are shown separately. Deployment Rate → heap storage -E2E and latest-value spatial TopK remain outstanding. +Logical provenance and installed native physical programs are shown separately. +Spatial TopK binds a complete current-series snapshot and runs a persisted native +Sort → Limit program. This is the exact ranking candidate; spatial CMS/CountSketch +heap deployment and Rate → heap storage E2E remain outstanding. Other PromQL +paths still use the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index 632d92022..123b8c872 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -238,7 +238,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -662,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1239,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], @@ -1255,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1346,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1417,26 +1418,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index 047aac38d..2ffb30e88 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +216,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,26 +287,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index 5d21bedb3..5b600fe60 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -253,7 +253,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -691,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1006,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -1022,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1085,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1108,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1199,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1270,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index acc649e1c..863d4f96c 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +188,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +211,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +302,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,26 +373,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index 58ae6b582..6a1b51961 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -236,7 +236,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -660,7 +661,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1237,7 +1238,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -1253,7 +1254,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1316,7 +1317,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1339,7 +1340,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1430,13 +1431,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1501,26 +1502,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index 98bbe3922..37887ad63 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -263,7 +263,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -400,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.0049751243781094535 + "alpha": 0.0049751243781094535, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -651,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1489,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -1505,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1696,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1791,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1900,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index f760d6575..7b1202a34 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index 9921e2913..0b536dd6c 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index ebe1bec4b..40a6ad016 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -284,7 +284,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -438,8 +439,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [ @@ -714,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1160,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -1176,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1265,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index 82f1d9074..eb62c88e1 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index 47cd44d23..e56f7beff 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +435,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -451,7 +451,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -540,26 +540,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index 308411893..fead73855 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index e92de8b92..3e6576370 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -253,7 +253,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -690,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1006,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -1022,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1087,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index 0028371dc..31234d33a 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index 95c6d47f4..9997c44c6 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +430,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -446,7 +446,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,26 +511,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index f32688267..2d91d46f2 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index 4f56be447..a6baa8a40 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], @@ -126,33 +126,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index ad5cd7289..d13682daf 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -387,6 +387,232 @@ }, "entries": { "topk by (label_0) (3, data)": { + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "18446744073709551615": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "2": { + "Operator": { + "inputs": [ + 18446744073709551615 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 2 + ], + "version": 1 + }, "language": "prom_ql", "query_id": "compat-query-0", "canonical_query": "topk by (label_0) (3, data)", @@ -414,8 +640,7 @@ "quantiles": false }, "readout": { - "kind": "top_k", - "k": 3 + "kind": "snapshot" } }, "inputs": [] @@ -442,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], @@ -459,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 5e70b4ab0..7ca3b8f3d 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -263,7 +263,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -651,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1069,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -1085,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1174,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index 3635a1f43..ce5c682bf 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index 6a897a089..be9aa580c 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index e4ace32b6..390793723 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -234,7 +234,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -629,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -917,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -933,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -998,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index 9a9db7618..526e90134 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index 48b826087..20ac86a99 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index b74cd02b4..9ea2aa147 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index 172aed6f1..a78c1f7f0 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -232,7 +232,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -627,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -915,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -931,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -996,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index 4f02fed1a..a5e2771f9 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index 1a0318545..5207fe44c 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index 89ea4cc83..6a2dbf257 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -238,7 +238,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -662,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1381,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -1397,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1462,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1533,26 +1534,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index cff6343a0..9279042fb 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +190,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,26 +261,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index b240155e2..ab435f25c 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +146,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -162,7 +162,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +227,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,26 +298,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index bc37cbfe8..78d7a2bf9 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -238,7 +238,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -662,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1239,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], @@ -1255,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1346,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1417,26 +1418,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], @@ -1450,7 +1451,7 @@ "selected_manifest": { "plan_id": 5849823772717530049, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1495,6 +1496,7 @@ "operation": "sum" } }, + "physical_dag": null, "query": "sum by (label_0) (rate(data[1m]))" }, "unit": "query_evaluation", @@ -1512,6 +1514,7 @@ "op": "exact_readout", "readout": "rate" }, + "physical_dag": null, "query": "sum by (label_0) (rate(data[1m]))" }, "unit": "query_evaluation", @@ -1540,6 +1543,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "sum by (label_0) (rate(data[1m]))" }, "unit": "query_evaluation", @@ -1725,7 +1729,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1913,7 +1918,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2101,7 +2107,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2289,7 +2296,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2340,11 +2348,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:d6db39de81236cadb39d0f344017e83bdddac8cde0f9ecbfe1689f43a3f4ff81", + "candidate_id": "asap-explain-v1:candidate:f230d8bc50921ce808e9311911fc776d66b66e7433f6947be1c9943466796196", "logical_root_ids": [ - "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f" + "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd" ], - "physical_candidate_id": "asap-explain-v1:physical:4163ad99861a7322461c3665c94b32ad6930f7cdc75bc2941b8575acbbd13b43", + "physical_candidate_id": "asap-explain-v1:physical:6faa68c67e8f289e7f9a1e64d0c24650a07999f39aedf6529b9f23be70e8a40f", "identity_unavailable_reason": null, "status": "selected", "plan_id": 5849823772717530049, @@ -2352,11 +2360,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:34122d33407874c13d8e6a20b1d6990905cfd505d9e4bdfa2a70dfbb04684c91", + "candidate_id": "asap-explain-v1:candidate:a959caa6967ff99cc8deefbdb636b6edc43eb2b16eb8b595a671ce19b9f4f7c6", "logical_root_ids": [ - "asap-explain-v1:root:e18e99d25c603e21232cfe55f304543b3d2f4239e6cac10cdd22291a46994e79" + "asap-explain-v1:root:2a79206efb177996c55cfb12c09b78c92ca2ed04176b67fea97747696e9743a6" ], - "physical_candidate_id": "asap-explain-v1:physical:e3b6e952e5fd8393d4623d336a0b1344efd0d328fa5e860e267cf49d38d99695", + "physical_candidate_id": "asap-explain-v1:physical:5e9ecb09b1b2f2aff38d5a0bcc36bef5f34d1acb5d83674c7ba85ab4a5377c2b", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 741363842036532054, @@ -2364,9 +2372,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:fb57271b20533ca5205ed0c2d749da0888e87e89b88c78e3737ec76cac3fdeb4", + "candidate_id": "asap-explain-v1:candidate:d4d221ffef0fec0d1fe1593c006e4253e370c388e59e09ed63066beeee98ec78", "logical_root_ids": [ - "asap-explain-v1:root:613b393ef327a3459bb8d6f4024033cb1538c39b1ccbdbd72cc0255eba60a584" + "asap-explain-v1:root:5df1ace69da89319e7b67f2864a2fd2063d51f3a94a22c2be30610bcc12c499b" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2382,7 +2390,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], @@ -2398,7 +2406,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3b1565b85ec81fb5bb16e4158de35cc407b893c16fa9a7d2bcd364bf08835c1d", + "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2489,13 +2497,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c4c2bf13c9e3fc16082ddacd5480b6f9edf86c5b091ffaf2a0e76fda3d55d7f0" + "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2560,26 +2568,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:16a1b2e45979940159f556fe43c6f147b4c263849372149b2c7a55d9e2430a7f", + "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index a653126f8..75a79f11a 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -253,7 +253,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -691,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1006,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -1022,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1085,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1108,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1199,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1270,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -1303,7 +1304,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1337,6 +1338,7 @@ "op": "exact_readout", "readout": "sum" }, + "physical_dag": null, "query": "sum by (label_0) (sum_over_time(data[1m]))" }, "unit": "query_evaluation", @@ -1368,6 +1370,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "sum by (label_0) (sum_over_time(data[1m]))" }, "unit": "query_evaluation", @@ -1570,7 +1573,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1775,7 +1779,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1980,7 +1985,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2185,7 +2191,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2235,11 +2242,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:e1801cc41ad06e000b81869c2c82067c3a100d10af868f50daad14ea0c0053ea", + "candidate_id": "asap-explain-v1:candidate:4ebb24803d83200624dfec4177c7ef0a2f7b1442ca6682ed390b34628ceb04f8", "logical_root_ids": [ - "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04" + "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2" ], - "physical_candidate_id": "asap-explain-v1:physical:d36f54157906ee1366f2a0f82f1b68d84e50d8211fd3efd6a05556203d5c433a", + "physical_candidate_id": "asap-explain-v1:physical:b9fcc6588863a9c5fade0e46d34a6c04ad5a91f9d02ebbeeff64003dab485fae", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2247,11 +2254,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:37a17e2b502a7b663988f5f0db4db9748d35b7f7f57fae7a4ac8691398f06e12", + "candidate_id": "asap-explain-v1:candidate:3012a7e49fb51f587501e373db3f5ec662825a93a16097c39328d0014c0b9628", "logical_root_ids": [ - "asap-explain-v1:root:9d51d1db7e0e2c7a4128d548f36a96fb72c5acc8cf6f285e1e3d6e147fdfaedb" + "asap-explain-v1:root:56622cde69e47088cb9a2c23b18f8184294c61e27fe2498c27d08d1e9f9c955f" ], - "physical_candidate_id": "asap-explain-v1:physical:2b727359b17fd6cc7c2d38749c38d8a86ada7b85af7460d3b3d595dbdda4e939", + "physical_candidate_id": "asap-explain-v1:physical:24e97979bb62814e66466406e9640c264643f89f6da2de8445850813c0e4f442", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, @@ -2259,9 +2266,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a6976e89d47e9d87802b79684f81d259fc7d6bdec63702767fa5cbb3488fa2b8", + "candidate_id": "asap-explain-v1:candidate:66aa5a46bc3f3c15ab6946723b33cb45574c5c633547293f5d83366f19a0f4e4", "logical_root_ids": [ - "asap-explain-v1:root:88b9906eecd25158a6cf932bd911c5a0a7f40001f19b3130eff2f7a9b076f481" + "asap-explain-v1:root:c10700cdf819a67dbc451d7d8c753a30a33b54cde7670dfe8d783953375d492f" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2271,11 +2278,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:eb61df79fa1ba705362f51ef4f084cebe6a717221220564563a3053c9c12032e", + "candidate_id": "asap-explain-v1:candidate:353b9047b049959eac239ae090c46aafc344b5b93cf8abc12131448da734a570", "logical_root_ids": [ - "asap-explain-v1:root:8e24c34cd7632baf1e8cbc17e15561d9d505d50890a377eda242a1a7acbadebf" + "asap-explain-v1:root:1a72a3a70587927764b29c724e0a85a6cdd3ee8cb058c2b170877d9442dcd0e4" ], - "physical_candidate_id": "asap-explain-v1:physical:ed7c096f1e5492ef259c61b0ab5da271f12086638bea9b8e5c0ca0ef83abc768", + "physical_candidate_id": "asap-explain-v1:physical:f01e15f7e35fc1cea749dc1aa23151990bb555973fb43e27ef6ef250b2e9674d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3225737927651639557, @@ -2289,7 +2296,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], @@ -2305,7 +2312,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0c04dd413a80d9bd40445ddcfb281a7d1e46904a73d22f3e67424e80586f5a3d", + "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2368,7 +2375,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1d317cd153eacb013bb03a20edf9b3d4b8bd5f6f988551de6ca8bc8b4fb8f5d6", + "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2391,7 +2398,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5542aec2c79eaa55859c2e0202dbf250db05f59aebaa258d918a4365ec350216", + "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2482,13 +2489,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:50c2323aa76facae11cea470f48ea0454bc9539bd99cf13a604baf4543037802" + "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:07cf796640866ae5438dedecfb6aba984ff7c197da0798eee04aeeec21a2f583", + "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2553,26 +2560,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0581eb9acbbc6743263e7d3aca555251748be37d57acfa1906f2f1355605f6dd" + "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:2f8651542bfe9f03a420af42beb0c0b651af3f4d17741599a0b1f2b664cfad04", + "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index d6a0fce72..70d5564df 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -263,7 +263,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -651,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1489,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -1505,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1696,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1791,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1900,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -1933,7 +1934,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1970,6 +1971,7 @@ "op": "binary", "operator": "Div" }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" }, "unit": "query_evaluation", @@ -1990,6 +1992,7 @@ "q": 0.9 } }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" }, "unit": "query_evaluation", @@ -2018,6 +2021,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" }, "unit": "query_evaluation", @@ -2038,6 +2042,7 @@ "q": 0.5 } }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" }, "unit": "query_evaluation", @@ -2238,7 +2243,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2444,7 +2450,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2650,7 +2657,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2856,7 +2864,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2911,11 +2920,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:4f60dbf73b8d271d152beedd53ccfd5a05b64469a1e029bed01ac7fd35386f5e", + "candidate_id": "asap-explain-v1:candidate:0f5e87b59f97881ebf9af54f6c22b212a25504fc3747ac8ae08437a6ae0b7954", "logical_root_ids": [ - "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010" + "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134" ], - "physical_candidate_id": "asap-explain-v1:physical:923954009ce4f8ea5c2d1b4d823b5136ca634916d7332d0bb759d4855e4df223", + "physical_candidate_id": "asap-explain-v1:physical:92634b68d6cdc0500c62854a6b73001c347c064e8fcb513969be9826a38819e3", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2923,11 +2932,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:47078e86e67d1de287ebb64e95d3644e7003e8d574d5d49cbc521cf0d95dfc43", + "candidate_id": "asap-explain-v1:candidate:6fa2ad2cb002cd8f28c989540fcd0a42483be21bd102cb91d76b13a2018ff2f1", "logical_root_ids": [ - "asap-explain-v1:root:a57d491b9deb293f15e94bf4a02e0241b073b4cc566622f32c1d9e5862e59dbb" + "asap-explain-v1:root:660486d049b403846130cdf71bb275617c4cc93bf1ea997f6962e2058319d4dc" ], - "physical_candidate_id": "asap-explain-v1:physical:3d316330a549c6bcf95127fbb1b827d0e9615babd8308f69c2f9b6286371f104", + "physical_candidate_id": "asap-explain-v1:physical:68f58110fb820de87dc6cafbd6744340d62588cad90195800a4d162a7b23a1a6", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, @@ -2935,11 +2944,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:6483fb9a9f32c5737a91f52668d389dd0d8dd42dadef76d50c75bd404ba96818", + "candidate_id": "asap-explain-v1:candidate:8e61b63bd075e09a444ffb3c336296f68c433b3c5d0d1bf3dd052c3dc795ed47", "logical_root_ids": [ - "asap-explain-v1:root:e6f0c18f8bbc7ba20bef2acb3de137c0fd33e05d90a3da39ffe07f66e4e2fcdb" + "asap-explain-v1:root:2d4915e083b87dd61d60c549e51eb593d4ccc0e75d073869edc0f1935a4d19bf" ], - "physical_candidate_id": "asap-explain-v1:physical:a25ff54c4875d477147023144d515b4906284091c2129e4045b490b9ac6dfd50", + "physical_candidate_id": "asap-explain-v1:physical:58465fb9fd9ba14730e9d579ec699f6ba7b5f9b66e4efcae3bf1df5513037d08", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 12971657221408630864, @@ -2960,7 +2969,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], @@ -2976,7 +2985,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5fa26921b1d39f2fc96ba81e0afd092c67a8a2ca3c5625f5d2b9512dce9d33a5", + "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3167,13 +3176,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b894853c06b25627bb8bad93789d2ce76ba7fa1750b29670a45b804e65196132" + "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3262,27 +3271,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:383fd4a4f6ffc9d8040e84b7a77be3f0b6430e33cfb7dc12e852176e01e0a69b", + "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3371,26 +3380,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:9f6e77500866a2d6a470f2d7749294e8289c8c53b5e671978a9da2add5fb0095" + "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:7f04ff126184a28d95318262a8eec07763c65f4e04cc683e17fa14531cd8d010", + "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index b1d31f821..0c8b3456a 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -cb3fb3839edc87abf239ac77ebface9dbbec67c5 +d0be8eb7e171f5c61b271a97c08368ce8afb6438 diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index 24216bc29..9bc458448 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -284,7 +284,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -714,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1160,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -1176,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1265,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -1298,7 +1299,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1335,6 +1336,7 @@ "q": 0.9 } }, + "physical_dag": null, "query": "quantile by (label_0) (0.9, data)" }, "unit": "query_evaluation", @@ -1367,6 +1369,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "quantile by (label_0) (0.9, data)" }, "unit": "query_evaluation", @@ -1585,7 +1588,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -1811,7 +1815,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2037,7 +2042,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2263,7 +2269,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2318,11 +2325,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:a130e21a7e1986d0caeba87540049e38a85c891b7f66f3e07f99c118fa570af2", + "candidate_id": "asap-explain-v1:candidate:5b4be6a05b3b6e2e6596d7ade527a0d7d0b169fc18d4b6c4e85c22cad8f0535a", "logical_root_ids": [ - "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69" + "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435" ], - "physical_candidate_id": "asap-explain-v1:physical:37a7835dc4eb9aeddd2dc1468fceee34f2d31b14dcdec0aae7e6a31a968406e0", + "physical_candidate_id": "asap-explain-v1:physical:6ed9f1af5f228ac7803fded06569acbd1b8c0be6b44b740c23a415196b97ec69", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2330,11 +2337,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:9a286d1953b78e8a1b2939d0ba9453485a9ce111840543264741ad8a18144c81", + "candidate_id": "asap-explain-v1:candidate:42e68cbceacce410d62f9405d9dc9c3485471d59edb2a0bcf67cd683e9032d44", "logical_root_ids": [ - "asap-explain-v1:root:4c23a03041f3d5247b397919d9166e88e9ee44c5e9453eaedfcfd5718153bbb1" + "asap-explain-v1:root:4b20fdab43b1b28fadbeed5d1d58f609993c459c9769a80886d78db928cdfd14" ], - "physical_candidate_id": "asap-explain-v1:physical:05aa3a6397616961e6f8724100f695b262af39d6d85775bd7689d4d456811a7e", + "physical_candidate_id": "asap-explain-v1:physical:bd687525dc05fa45d52099f28df85c7b5b15e87bbb3a1887397b69f82f070a27", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2342,11 +2349,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:f4db756e036d1a89a90b9260fe8fce9c5e22278fda82b8eecd36c79cc9480b68", + "candidate_id": "asap-explain-v1:candidate:63417654fd2c1b1936cfb56b52677bdb4a6ef2b97c99fe9cbeac03c1d6df1619", "logical_root_ids": [ - "asap-explain-v1:root:3960604dfad179f86453c1b0d1d44b5ce4eadab848daefc0146dc40c996bcc81" + "asap-explain-v1:root:a02032b74a0effec8eeeb63dc4dbc66ca3996481ae5ae20c03b9be65f2a7b23d" ], - "physical_candidate_id": "asap-explain-v1:physical:49f68b91144edf7cbd606edc54258586de0a442804434fd79dd3e77d7bb28cd8", + "physical_candidate_id": "asap-explain-v1:physical:d8b63986108649d560f37e4b4867e7d6ec6adbd9deac7b3371cc5353a2141472", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, @@ -2354,11 +2361,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3fae39385200834a54d9aa5515bb5bc47bfb6740024e70ea329d1c2f22999c73", + "candidate_id": "asap-explain-v1:candidate:a0aae2049eafee320e2782c2950e11fc7a23d5f7788792bace55bea4236cdf65", "logical_root_ids": [ - "asap-explain-v1:root:53918f1f6676c34b356d3086375d54b3c017dc0bf87fc33984b804999276884a" + "asap-explain-v1:root:49b1aa77f52b9227c0a5350e08c5b349f95db2a0744afffa402ed054ad6cbd3f" ], - "physical_candidate_id": "asap-explain-v1:physical:b2522af9c37d52b09647e1016a80595d6a3596eaf117c480aaf1d7f1e52896fa", + "physical_candidate_id": "asap-explain-v1:physical:733217656bc6b69deeb7917cb50421d814726e2da08aa7829a8eea4bbe6a9536", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 7667691247138405742, @@ -2372,7 +2379,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], @@ -2388,7 +2395,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ec636c415f0e8a731403c5949cf5d7da7cda1532a43565ce8d31a909034d422c", + "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2477,26 +2484,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:99731cbe9663c9b9c3d9fc4e2e3220d1b8ccd62b077a163242f6978c73fe7136" + "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4204be2f7d656137893f480397fdd6ebef194f01c4ee065798ed1be687baec69", + "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index 2267140c1..54ed23aa0 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -253,7 +253,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -690,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1006,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -1022,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1087,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -1120,7 +1121,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1154,6 +1155,7 @@ "op": "exact_readout", "readout": "sum" }, + "physical_dag": null, "query": "sum by (label_0) (data)" }, "unit": "query_evaluation", @@ -1186,6 +1188,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "sum by (label_0) (data)" }, "unit": "query_evaluation", @@ -1387,7 +1390,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1591,7 +1595,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1795,7 +1800,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1999,7 +2005,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2049,11 +2056,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:5aa1f21aae0867367d5202030cb29a211eeb59b5fe9947cc10dc718f92db74ff", + "candidate_id": "asap-explain-v1:candidate:6a127a2c84314aa69af70cf98097c1ad74e5ac5befae7cd0a2e6dc310c9e3ecb", "logical_root_ids": [ - "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6" + "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741" ], - "physical_candidate_id": "asap-explain-v1:physical:ebf0390e0cecdd3266d32389192e9ee28fb0bebece8cb7883ba60c8398c6e652", + "physical_candidate_id": "asap-explain-v1:physical:c1a20352aa02a2ec52c235f8461494979d3a3d1e131d48b6887de35da9d3fe5a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2061,11 +2068,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:6de93f9d7ccaf2b33b51a3521d5690576ec30bc313fa9f6c2ad04908c672335c", + "candidate_id": "asap-explain-v1:candidate:6b7f5f502c215bbe11af4533c99f4e852ea21085d856367e125102682fadd1aa", "logical_root_ids": [ - "asap-explain-v1:root:363fd3d251f1a8a324101fea3b8f40cc39d9d445276b2f16f662b15314602ac0" + "asap-explain-v1:root:66135fdc046799539bd7f756ef242a7a113f086da767e8b191b1cb8b8c4a53ec" ], - "physical_candidate_id": "asap-explain-v1:physical:9164983d602e77ad98074a262946216b460c234947325d47aa805e73c0f99720", + "physical_candidate_id": "asap-explain-v1:physical:fa10b69a810c41f778e2d78d12efd1524250127bbed7218a5c9045e9f43aa3a1", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2073,11 +2080,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c977d92c71eded2cb66c43dea90b50c840a6ad3490defb13d298e2e280808cbe", + "candidate_id": "asap-explain-v1:candidate:469a2fbc8564a43147110f5431263a10a95b925a7bc4bc171fadf7f01e5b9a3d", "logical_root_ids": [ - "asap-explain-v1:root:9e1f8f9dc0392e4b14373ba7c2febbf42274d74033799643e0d7d877f2996bdc" + "asap-explain-v1:root:b9652c0de28ab2862dacd2ef9c18f9e9e4028ccb15dadba68433a130dad4fa0c" ], - "physical_candidate_id": "asap-explain-v1:physical:056116923329542998d2d4d5fcda20308aa0a2c47fbf09e4cf6417cebc891e4a", + "physical_candidate_id": "asap-explain-v1:physical:d63c6edf80f683cc27b025e0dee277ed406c24cc055c131e34272501737c34e9", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, @@ -2085,11 +2092,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:54acf571c1faa830bb51a81df4ce4cea2e3f3018ee3ff5a9d4012b518d723f2f", + "candidate_id": "asap-explain-v1:candidate:3f117c6a2e237331b17863a065caaaad73a323fd4d06ae19e050cd345e1f61d1", "logical_root_ids": [ - "asap-explain-v1:root:b49752b85614a55fb32b4899664b5268405a90a933f8cc5f3f3e07bab3725288" + "asap-explain-v1:root:4ed6897fc26fc3fb16a9bc7dffaf82c8e96c9818da17a354f4bcece79d839b6c" ], - "physical_candidate_id": "asap-explain-v1:physical:34e5c8106cc7e9660acc2bc37faf19b7bfe2d3f707f1a020ac0d94d9f1d7dcfa", + "physical_candidate_id": "asap-explain-v1:physical:eafeb143f456f8ffcf38bb581806be3963974e797c17588d7bc4ce78a0ef6989", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 10907830462850005469, @@ -2103,7 +2110,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], @@ -2119,7 +2126,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ee22ac54b67473dd8a283e16855f7921873b2180b838feac7d55d1374b1b20fd", + "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2184,26 +2191,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:236375e815435f67245689ac4612b1cc56d8aad2c1234a5b00efccde71a1bcfb" + "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a777bfc3162b4886824f150c5c09c0f0ca2be0e19a627fa04f84e7eae87f0bb6", + "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index a1b9b3ccd..ee00353c1 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -387,6 +387,232 @@ }, "entries": { "topk by (label_0) (3, data)": { + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "18446744073709551615": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "2": { + "Operator": { + "inputs": [ + 18446744073709551615 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 2 + ], + "version": 1 + }, "language": "prom_ql", "query_id": "compat-query-0", "canonical_query": "topk by (label_0) (3, data)", @@ -414,8 +640,7 @@ "quantiles": false }, "readout": { - "kind": "top_k", - "k": 3 + "kind": "snapshot" } }, "inputs": [] @@ -442,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], @@ -459,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], @@ -499,7 +724,7 @@ "selected_manifest": { "plan_id": 2697027346875258477, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -647,11 +872,236 @@ "quantiles": false }, "readout": { - "k": 3, - "kind": "top_k" + "kind": "snapshot" } } }, + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "18446744073709551615": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "2": { + "Operator": { + "inputs": [ + 18446744073709551615 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 2 + ], + "version": 1 + }, "query": "topk by (label_0) (3, data)" }, "unit": "query_evaluation", @@ -698,9 +1148,9 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:73438d3380394e8858e1cfb9415a85a5957284be0062ed392d84e3aff3b13371", + "candidate_id": "asap-explain-v1:candidate:2e8330c0806ce81c1b647def58612dcd7a4385683f0afdcec531b0c50a0582dc", "logical_root_ids": [ - "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08" + "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -710,11 +1160,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:bc572300e38e65fdfc1319b98fcdae41a055d8b2a9774b87753bd296f6488be2", + "candidate_id": "asap-explain-v1:candidate:8fa5210328f1e035c75217367caaa8d6a73422c4bd8c5505d6459b57134d3c5a", "logical_root_ids": [ - "asap-explain-v1:root:c029c6d71ef47e48903d231ad801a6506050878b98e67c1b18524740e7fa0fb3" + "asap-explain-v1:root:4cc29743b3bb94cfe065fcf278ab3cdc123c112e8d16f6b9cf7fca545064cf56" ], - "physical_candidate_id": "asap-explain-v1:physical:f60b70141ac07e57a993f59e98e3252479c2c3bdc76dc75646358954347c3874", + "physical_candidate_id": "asap-explain-v1:physical:5614e4f0b316ccd7ed73d0c308cb394f3283acd63235c0ab49fa9e4f01ea88cc", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5538412219857372274, @@ -722,11 +1172,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:1794cfccb25d26b6304f82136eabf78ec9995373b13a1889a979184ebb4f3a80", + "candidate_id": "asap-explain-v1:candidate:5c0901aab70db49ff20a0236f76515940f01f1905f3ae82f93defb03e5ce3d8e", "logical_root_ids": [ - "asap-explain-v1:root:7cb7848feb7f20a98d3a4ff7619d9822ddfc3e5fe2022b0bcc22c80d8bff8937" + "asap-explain-v1:root:c835637dc5b10b6122f702799d94b14aef0af49da473458de6788bd46862002d" ], - "physical_candidate_id": "asap-explain-v1:physical:3a3956c13d4d7270dea0874283050b3d367c12726d3a5eca54a74e019f48d77d", + "physical_candidate_id": "asap-explain-v1:physical:3a44f6e106b3221aa8a2e0864d3df71dbc61d7c20b60087affe4b131a1306c84", "identity_unavailable_reason": null, "status": "selected", "plan_id": 2697027346875258477, @@ -740,7 +1190,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], @@ -757,33 +1207,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:01946213927c1a55fd8a33b377da423dbdf9a68c4f799e9c69ef2d351969ab03" + "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:a8d89afe8dcb0b4891987e7c7779ea577d8e30480752d29554cfa2c68c6b8daf" + "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:895df194bc0a6bd010cf6387dc67324d437eed29d154e49eb9c2c82774fdc797" + "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b380eb945b2640c6d136a7f15ee66c930b1f748d302b99ae33614ba5b9e68e08", + "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 6c4994ed3..3568b8961 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -29,6 +29,27 @@ flowchart LR No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Installed native physical program + +This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. + +Roots: `[2]`. + +| Node | Dependencies | Operator / input contract | Output fields | +| --- | --- | --- | --- | +| 1 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 18446744073709551615 | `[1]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 2 | `[18446744073709551615]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | + +```mermaid +flowchart LR + P1["1: Bound population snapshot"] + P18446744073709551615["18446744073709551615: Sort"] + P1 --> P18446744073709551615 + P2["2: Limit"] + P18446744073709551615 --> P2 +``` + ## Candidate admission and costing Costs below come from the controlled Level 1 fixture, not production measurements. @@ -68,6 +89,232 @@ This is the emitted adapter representation, including dependencies, pane size, r ```json { + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "18446744073709551615": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "2": { + "Operator": { + "inputs": [ + 18446744073709551615 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 2 + ], + "version": 1 + }, "language": "prom_ql", "query_id": "compat-query-0", "canonical_query": "topk by (label_0) (3, data)", @@ -95,8 +342,7 @@ This is the emitted adapter representation, including dependencies, pane size, r "quantiles": false }, "readout": { - "kind": "top_k", - "k": 3 + "kind": "snapshot" } }, "inputs": [] diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index a753eda75..6bad7ebdc 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -263,7 +263,8 @@ }, "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ] } ], @@ -651,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1069,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -1085,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1174,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -1207,7 +1208,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1244,6 +1245,7 @@ "q": 0.9 } }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m])" }, "unit": "query_evaluation", @@ -1272,6 +1274,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "quantile_over_time(0.9, data[1m])" }, "unit": "query_evaluation", @@ -1472,7 +1475,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -1678,7 +1682,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -1884,7 +1889,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2090,7 +2096,8 @@ "schema": { "encodings": [ "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1" + "sketch_core_msgpack_v1", + "native_batch_v1" ], "family": { "algorithm": "DDSketch", @@ -2143,11 +2150,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:6356c68368c4a8ab69ea08c5f048e05dbc8cb4e1464ac96fec81a98c709fd028", + "candidate_id": "asap-explain-v1:candidate:c36ecf0af861b51039b977b1af3c13cf37cfd416d3f3488272aabaf17480cd29", "logical_root_ids": [ - "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3" + "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630" ], - "physical_candidate_id": "asap-explain-v1:physical:ee89586c0fc5f5dcc991c3d65a03c439fb9aac95b8ecb60fb93d4fee6cdde050", + "physical_candidate_id": "asap-explain-v1:physical:735678078bb1f9a8761d4717487ffc16b2aad0dad608efaeff7f944bd4a0a0b6", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2155,11 +2162,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:88db77696c65677c4d1e5d6ddfffa53742d59589a3f1db53b53e0839cb935a7d", + "candidate_id": "asap-explain-v1:candidate:4367a3c8554c98f085a7c2b14e068b318f27fa7d1c5bb3932a8b30bd997c7c22", "logical_root_ids": [ - "asap-explain-v1:root:4a758cc9084cef48407062b5cae84ad61507dd5293b9bd30f95d09d9c5085c7a" + "asap-explain-v1:root:e5e0da1405c6bca9df68f0a6f00a4dc1f53c207f9a092cb1a3ba2272c8f797cd" ], - "physical_candidate_id": "asap-explain-v1:physical:50a5547d6ad8e29b2964630921eecbc33f9fe755f41517e82e91627cda24d521", + "physical_candidate_id": "asap-explain-v1:physical:5d06eeaf07f7ce05c9ff60ce5c70507c950ee9647b6880b4cfc1f03d416d1bee", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, @@ -2167,11 +2174,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:e344c01bf3e91d67834eb8d1a93317c02241c583f12c454093da25c945b07308", + "candidate_id": "asap-explain-v1:candidate:a4d5c2efd1719c6fc118ff2ed5e183c578bb9dc402ea933750c659345bd1bae7", "logical_root_ids": [ - "asap-explain-v1:root:7122424bf0ca16f7bbc3a19b534bb827c6b5765c0c06a848a9bd124a98358947" + "asap-explain-v1:root:0e1f5bc0cdcb3cc8098f608a4f9464f8c44da9385188e5172f92b1f0c92f22a8" ], - "physical_candidate_id": "asap-explain-v1:physical:819b7ec65e83ab56698d30f40a06d0f4511f88828980a4a5bd206a2b54c5e415", + "physical_candidate_id": "asap-explain-v1:physical:d4aec9dc1410dc16b2beb2103cffc1db62296e366109425fac545f6dbf6b1417", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 11545774673163874085, @@ -2185,7 +2192,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], @@ -2201,7 +2208,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:88e75ab45a0a1658bb344e5394e5e1b3b988e3d1e62fcc348ed879166869ba43", + "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2290,26 +2297,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ba80c7c5e379ef5aef72bbf7653e5f57abc8ac7a202da4d779ba567e2abaef29" + "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5473ba86aa3529707e2205713ba1d5cd2abad0006ca2cdd109e0ef4f97515fd3", + "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index efd69b80a..60e0fa487 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -234,7 +234,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -629,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -917,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -933,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -998,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -1036,7 +1037,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1070,6 +1071,7 @@ "op": "exact_readout", "readout": "rate" }, + "physical_dag": null, "query": "rate(data[1m])" }, "unit": "query_evaluation", @@ -1098,6 +1100,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "rate(data[1m])" }, "unit": "query_evaluation", @@ -1281,7 +1284,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1465,7 +1469,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1649,7 +1654,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1833,7 +1839,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1881,11 +1888,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:e608848d98cbf09ff430f1a1fe80bd31b8a8512ea96549d32488e9ed60c516c0", + "candidate_id": "asap-explain-v1:candidate:ee83ed85fdf4a56dae3ee99c5707ddb3bdf238ebcee41438a45fd8fadceb8084", "logical_root_ids": [ - "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677" + "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404" ], - "physical_candidate_id": "asap-explain-v1:physical:15ab1eda619199a1bc2c493ce32dfee2a7351937526759e36da7ac4cf96ddee9", + "physical_candidate_id": "asap-explain-v1:physical:f355a738036778990294f7bcd6574560786116d25b3e66ac0e08e416d0276e0c", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1893,11 +1900,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ebc26c5e7a2a20d330eace266a7649b32026f3209e825e66bda394869aa64c89", + "candidate_id": "asap-explain-v1:candidate:d9d6d4f5892e160fa2b13a90bd46160164f91a6a5c711bd10bf09a08e7b3a834", "logical_root_ids": [ - "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677" + "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404" ], - "physical_candidate_id": "asap-explain-v1:physical:014a4e35aac0a50a93350a865f9dbffc776c79a7e629a978b84f40066a57cb6a", + "physical_candidate_id": "asap-explain-v1:physical:019eeab0f62aecf607f10848fbae0847a18dde5febbdaec050d5ddf636de9784", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1905,11 +1912,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:375f05db22ac3bb5e16ad1d60859dc496df7f1bbd0dc7cbde0cfeff2bf9f39ff", + "candidate_id": "asap-explain-v1:candidate:e6b38a94f8a03895827d35d6b0cb58660e8db628934df2a429fea1ac7dbb407b", "logical_root_ids": [ - "asap-explain-v1:root:a87e6041756f25ac33ff5d0c41547626008961f82cbfdcc470ff097fb2fdfd79" + "asap-explain-v1:root:7928fb21665390d4fa88b3ba3fe2dbb9f8575cfece073d59edcb960655e70cee" ], - "physical_candidate_id": "asap-explain-v1:physical:11acceb4f2fc5191f991096aaa59d0c3363dfa70a3354b26be76f5c618a725f4", + "physical_candidate_id": "asap-explain-v1:physical:f80a57d784c94352a27426459ed42b8594829d33d34c83ead2e32926d73263df", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, @@ -1917,11 +1924,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c64c4bf6b475ab652bc5f038c7960f13fd4401f86328167fe3c4355b26d9d1e5", + "candidate_id": "asap-explain-v1:candidate:ee41374191639fc922aa906c4e0fab7bc264d1e7b2572e12016191389d71c4cb", "logical_root_ids": [ - "asap-explain-v1:root:f801689f42997219ce41f9321b4862327134578e6c3f38dcfe30f94dd9e84f15" + "asap-explain-v1:root:b8bb8f4f68b8052126a3cd025153a34bc9fd38f64ba6040525d1449f78d41476" ], - "physical_candidate_id": "asap-explain-v1:physical:f809d3ec672d22a42318a7fea6d7dc6ea676bfcea55914bf9be1ff6c0abbcd2a", + "physical_candidate_id": "asap-explain-v1:physical:2962f36fc577d0725c965c52a50333b84a263d13fb02ea5f9718e70c6119da4e", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3235857638904289352, @@ -1935,7 +1942,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], @@ -1951,7 +1958,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:784f1199cb4af8f0d99eed71fdddc45f3828ea35387d15232d036e052dbedc7b", + "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2016,26 +2023,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4182b4f1711212400ca69fe22527a5522db03b4d82c00d56ecb6e6eff63899c0" + "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca51fec27d128c7353ba540f31fa52876573c4e820ef48a632b1fac5520c6677", + "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index 255918e94..d51ad8a4e 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -232,7 +232,8 @@ }, "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -627,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -915,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -931,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -996,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -1029,7 +1030,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1063,6 +1064,7 @@ "op": "exact_readout", "readout": "sum" }, + "physical_dag": null, "query": "sum_over_time(data[1m])" }, "unit": "query_evaluation", @@ -1091,6 +1093,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "sum_over_time(data[1m])" }, "unit": "query_evaluation", @@ -1274,7 +1277,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1458,7 +1462,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1642,7 +1647,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1826,7 +1832,8 @@ "schema": { "encodings": [ "exact_accumulator_v1", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -1874,11 +1881,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:e73f9fbc9a6120e2be65b3f8eacef80b8b90c930797bed16175d50e63bde7b4c", + "candidate_id": "asap-explain-v1:candidate:6ad8d1d65e32f0f7108a5dd37178b33fb50772062466d1f14e12277c02c6824b", "logical_root_ids": [ - "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c" + "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7" ], - "physical_candidate_id": "asap-explain-v1:physical:659a1b0fb18d7d0d71472b6bc33d6c9a06e8f7fd4468352bb00ddf1dd702cb31", + "physical_candidate_id": "asap-explain-v1:physical:c9257b19922673a4018a05addb3093c192303c2318eafd369c6bfc616d130443", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1886,11 +1893,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:fad080a79a34be4dd960a09a1542504344cb6add40e73daf065bba5d7d432cb3", + "candidate_id": "asap-explain-v1:candidate:1d6752200435647c7acc12d6698d728fef465909dc70c55e61bdffdf613e9db7", "logical_root_ids": [ - "asap-explain-v1:root:eecaa208c68ef0af790d7346199a87c1bd2216523240cfabb65975633aed4511" + "asap-explain-v1:root:ec52f362e7da2859c410e06d4ba4282a1f290d632b5d355642f41aea445db705" ], - "physical_candidate_id": "asap-explain-v1:physical:ace541644b59cdc4950290eb437500743e7528ef0cee972e55be91c9cadcee0d", + "physical_candidate_id": "asap-explain-v1:physical:605c72a373d20d17d4d431b6072cc978fba0c485ddddd05046cc6c727665f82b", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, @@ -1898,11 +1905,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ebbd5c3687019c18226feb69a4972715ebbce477cc07fc396bf3e528e9b26086", + "candidate_id": "asap-explain-v1:candidate:c82fb942a7cb4a9a5498ef095433fe251ed9ad3c6fac8779b9410526e1b7ea40", "logical_root_ids": [ - "asap-explain-v1:root:1e4ef8dee585ba06e19fafb616eddc8574ebb4e9b7637a0c86b3cacdfd42de7f" + "asap-explain-v1:root:ff7b199b011c887a5dcb8e1a3f02569f68ac15b6cf33afd6fd01cd223186ba83" ], - "physical_candidate_id": "asap-explain-v1:physical:15fe5af5f7a08493ae6ef9fbb4cefa466628532520e2c56c26c9b5f9ca286b77", + "physical_candidate_id": "asap-explain-v1:physical:5ca05116c8367377adcd62f9eb7ed62bf83517dea9dd6af940167ad2c2c0ded1", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17637043547591721229, @@ -1916,7 +1923,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], @@ -1932,7 +1939,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fb8e3027a65a89a30fdafe8ce0c8fb1f3608e69017493258e10c182b7639b431", + "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1997,26 +2004,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9aed01ae22710efaff6024b499307f558e196999b2bbbe78eb98f3298199ddb" + "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f2d8a6e172e9b59050865be57d09b4bdbd7d4730674c1a70db575de443b5799e" + "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fea78612f2fa8f89f78a2ec53ead01790d4b0011ebcd091841070f18944b6933" + "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c0f57f013f7713ed9543999d38a8f0f19612b92e583c0947416ab7cb7cd6741c", + "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index bfe1e6fb2..408417620 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -238,7 +238,8 @@ }, "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ] } ], @@ -662,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1381,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -1397,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1462,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1533,26 +1534,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -1566,7 +1567,7 @@ "selected_manifest": { "plan_id": 14733843382488271694, "plan_version": 1, - "planner_revision": "2bdf1d2e8eca0ce5aabdc998ca0755b21da7f986", + "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1612,6 +1613,7 @@ "offset": 0 } }, + "physical_dag": null, "query": "topk by (label_0) (3, rate(data[1m]))" }, "unit": "query_evaluation", @@ -1640,6 +1642,7 @@ "kind": "sort" } }, + "physical_dag": null, "query": "topk by (label_0) (3, rate(data[1m]))" }, "unit": "query_evaluation", @@ -1657,6 +1660,7 @@ "op": "exact_readout", "readout": "rate" }, + "physical_dag": null, "query": "topk by (label_0) (3, rate(data[1m]))" }, "unit": "query_evaluation", @@ -1685,6 +1689,7 @@ }, "op": "read_materialization" }, + "physical_dag": null, "query": "topk by (label_0) (3, rate(data[1m]))" }, "unit": "query_evaluation", @@ -1870,7 +1875,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2058,7 +2064,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2246,7 +2253,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2434,7 +2442,8 @@ "schema": { "encodings": [ "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1" + "planner_exact_accumulator_v1", + "native_batch_v1" ], "family": { "family": "exact", @@ -2486,11 +2495,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:fdac027a88c101347508f7dddd29c425f00bf57e7d041250adeda79e20feade9", + "candidate_id": "asap-explain-v1:candidate:ef74bc33a88d6526a7a7d997e6a794ca7d74917d93e4fb26933333b6d66d211f", "logical_root_ids": [ - "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531" + "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0" ], - "physical_candidate_id": "asap-explain-v1:physical:f905fa68b827932b76a3a8d291c04c15e279506a12620dd73b7bc15b35481ed0", + "physical_candidate_id": "asap-explain-v1:physical:97172bd8e2268e70626d8997f03755dc0d02296265c9f1b9271c50da90afdb50", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14733843382488271694, @@ -2498,11 +2507,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2500903454bd4e7a80ae60d6a5e96a42d73856c542862dfcff4092cb9935f526", + "candidate_id": "asap-explain-v1:candidate:3714757443a03b4eb0ded3a4400c15326fefd81d6663d7ece3725bdf78244fba", "logical_root_ids": [ - "asap-explain-v1:root:f554257ff34dff6c20bcf592c8d1ac91ee218db15f21cd251849bf42f092d318" + "asap-explain-v1:root:c58a659a1bd3e41ce56250a57fa01c277c3b90e9ee56249916b22c7b3c6c2e9d" ], - "physical_candidate_id": "asap-explain-v1:physical:7bd9159e6511febda1b498048849d4cae2fcca079fa0f4cb179f87f8b2685e0d", + "physical_candidate_id": "asap-explain-v1:physical:56d5fefd58fb659b3c4f8cd09f2651d2fcbaee79744ee7be7a0d44f963fa2014", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 15833270860732361489, @@ -2510,11 +2519,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8291cce7c2decb3461cfbd909606b8edca36ea3045577a5ff5334cd8f731acce", + "candidate_id": "asap-explain-v1:candidate:c0fd0b0d5953632b7ee452e54544925c61b7bc3b3497aac31875f32290aaaf74", "logical_root_ids": [ - "asap-explain-v1:root:61a64cb98140bf77623f5948ff61e553a283066830872571034990e65f8271f4" + "asap-explain-v1:root:65b7ee2557cf7d577373055b62916da6be8e95f46c97da128b809e25361f15f2" ], - "physical_candidate_id": "asap-explain-v1:physical:993be477fa9a622f9b7509ed67d4b84ec0c387dda5aabb74980630d81abbfbd4", + "physical_candidate_id": "asap-explain-v1:physical:8ae425c11ff27e2f223d16a34882a2750345dd0f8462aa62ae84afff9c799033", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5379663311087285901, @@ -2528,7 +2537,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], @@ -2544,7 +2553,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b32d073f2794b1a977dfbf1b68f9536b38f60b202902bbfcb1dd710af14e667e", + "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2609,13 +2618,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d7a622dcec0d5bf18fa2ea48eeaf01bd6baeab86324ca532d8ddb5a602569364" + "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20ce5cf2b88e1ae2063587c4692bd2d61c1ed6c4f48d48998435fb4c0655b3ee", + "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2680,26 +2689,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:f80da61d14aea23dcaa2de4f2e23fae42579a9a1ed9dcda0ab99ad9ead5386ca" + "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:5119e6e37a7cf478587736ee10d9cd9389be4f25fdaf2865582c41f39a59a734" + "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:488bb6ba5af7d7fb5fe373487cd181ea65416a8dfb251ec38ba769be612ae312" + "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b2a75cca7ad4c7e8a50e4880ad1c05755235619787968d37f4c8ff9f17cce531", + "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", "query_index": 0 } ], From f247110eab76b72444448545306e3d1749d24d2a Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:09:51 +0000 Subject: [PATCH 25/80] feat: admit price and execute Planner spatial heap candidates --- Cargo.lock | 14 +- Cargo.toml | 12 +- control_plane/src/main.rs | 2 +- control_plane/src/physical/compiler.rs | 83 +++++++- .../src/physical/maintained_population.rs | 47 ++++- control_plane/src/physical/workload_cost.rs | 14 +- .../src/physical/workload_cost/automatic.rs | 79 +++++++- control_plane/tests/native_snapshot_topk.rs | 180 +++++++++++++++++ .../asapquery_compatibility_process_e2e.rs | 3 + .../tests/support/spatial_heap_process.rs | 184 ++++++++++++++++++ .../evidence-dependent-candidates.md | 10 +- .../catalog-physical-plan-runtime.md | 22 ++- 12 files changed, 602 insertions(+), 48 deletions(-) create mode 100644 control_plane/tests/native_snapshot_topk.rs create mode 100644 data_plane/tests/support/spatial_heap_process.rs diff --git a/Cargo.lock b/Cargo.lock index ea20d207f..4913b5488 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab#a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index 8041344b7..aeb0dff27 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index 8655f6a8d..77c6887c8 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -986,7 +986,7 @@ mod api_tests { .cost_comparison .as_ref() .expect("HTTP must compare automatically priced candidates"); - assert_eq!(report.model_version, "backend-workload-resources-v1"); + assert_eq!(report.model_version, "backend-workload-resources-v2"); assert!(report .candidate_evaluations .iter() diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 79813ea41..16fe06908 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -237,6 +237,10 @@ pub struct ScopedAccuracyEvidence { pub hydra_shared_grid_collision_bound: Option, #[serde(default)] pub hydra_shared_grid_failure_probability: Option, + /// Enforced upper bound across all partition/item identities for this query + /// snapshot. An observed cardinality estimate is not this contract. + #[serde(default)] + pub topk_max_distinct_items: Option, #[serde(default)] pub topk_selected_lower_bound: Option, #[serde(default)] @@ -279,6 +283,9 @@ impl ScopedAccuracyEvidence { _ => false, }; let valid_stats = valid_topk + && self + .topk_max_distinct_items + .is_none_or(|n| n > 0 && n <= (1_u64 << 53)) && self .hll .as_ref() @@ -654,6 +661,10 @@ struct QueryEvidence<'a> { } impl AccuracyEvidenceProvider for QueryEvidence<'_> { + fn topk_max_distinct_items(&self, _: &QueryExpr) -> Option { + self.scoped + .and_then(|evidence| evidence.topk_max_distinct_items) + } fn quantile_input_domain( &self, operand: &QueryExpr, @@ -946,6 +957,56 @@ impl BackendLocalPlanningInput { self.environment.observed_at_unix_ms, Some(&mut candidate_roots), )?; + // Resolve physical row identity before asking Planner for snapshot heap + // candidates. Keep canonical query semantics and exact candidates intact. + for (index, (query, root)) in queries.iter().zip(&canonical_roots).enumerate() { + let Ok(typed) = + asap_physical_operators::physical_planner::promql_rows::with_series_identity(root) + else { + continue; + }; + let evidence = QueryEvidence { + topk: topk_evidence_by_id.get(&query.query_id), + scoped: scoped_evidence_by_id.get(&query.query_id), + now_ms: self.environment.observed_at_unix_ms, + }; + let strategy = + asap_aware_mapping::SketchAlgorithmStrategy::new_with_planning_inputs_and_evidence( + &asap_aware_mapping::cost_model::DefaultCostModel, + &asap_aware_mapping::accuracy::DefaultAccuracyModel, + &asap_aware_mapping::accuracy::EqualSplitAllocator, + &evidence, + ); + let proposed = + strategy.current_series_topk_candidates(&Rc::new(typed), &query.accuracy_target); + for candidate in proposed.candidates { + let asap_aware_mapping::Replacement::Summary(root) = candidate.replacement else { + continue; + }; + let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root); + match compiled { + Ok(program) => { + planner_selection_trace.push(serde_json::json!({ + "stage": "planner.physical_candidate", "query_id": query.query_id, + "logical_root_id": crate::planner_selection::explained_root_id(&root, &query.accuracy_target), + "rationale": candidate.rationale, "physical_dag": serde_json::from_slice::(&program.encode().map_err(|error| CompileError::Snapshot(error.to_string()))?).map_err(|error| CompileError::Snapshot(error.to_string()))?, + "guarantee": root.guarantee, + })); + candidate_roots.push(vec![(index, root)]); + } + Err(error) => planner_selection_trace.push(serde_json::json!({ + "stage": "planner.physical_candidate", "query_id": query.query_id, + "status": "unsupported", "reason": error.to_string(), + })), + } + } + for rejected in proposed.rejected { + planner_selection_trace.push(serde_json::json!({ + "stage": "planner.physical_candidate", "query_id": query.query_id, + "status": "rejected", "reason": rejected.error.to_string(), + })); + } + } for query in &mut queries { prepare_window_implementations( query, @@ -1344,14 +1405,18 @@ impl DeploymentPlanCompiler { } let node = query.selected_plan_root.clone(); reject_uncertified_readouts(&query.query_id, &node, environment.target)?; - let selected = collect_selected_materializations( - &node, - request.allow_mixed_summary_and_exact_execution, - ) - .map_err(|reason| CompileError::Query { - query_id: query.query_id.clone(), - reason, - })?; + let selected = if super::maintained_population::supported_node(&node) { + Vec::new() + } else { + collect_selected_materializations( + &node, + request.allow_mixed_summary_and_exact_execution, + ) + .map_err(|reason| CompileError::Query { + query_id: query.query_id.clone(), + reason, + })? + }; if !selected.is_empty() { reject_uncertified_readouts(&query.query_id, &node, environment.target)?; } @@ -5473,6 +5538,7 @@ pub(crate) mod tests { input_row_count: Some(10), hydra_shared_grid_collision_bound: None, hydra_shared_grid_failure_probability: None, + topk_max_distinct_items: None, topk_selected_lower_bound: None, topk_excluded_upper_bound: None, topk_interval_failure_probability: None, @@ -5563,6 +5629,7 @@ pub(crate) mod tests { input_row_count: None, hydra_shared_grid_collision_bound: None, hydra_shared_grid_failure_probability: None, + topk_max_distinct_items: None, topk_selected_lower_bound: None, topk_excluded_upper_bound: None, topk_interval_failure_probability: None, diff --git a/control_plane/src/physical/maintained_population.rs b/control_plane/src/physical/maintained_population.rs index 7bb955031..a7b877428 100644 --- a/control_plane/src/physical/maintained_population.rs +++ b/control_plane/src/physical/maintained_population.rs @@ -8,23 +8,50 @@ use planner_types::post_asap::{ maintained_population::*, SummaryExpr, SummaryNode, ValueOperation, }; -fn selected(node: &SummaryNode) -> Option<(&MaintainedPopulation, &PopulationReadout)> { - let SummaryExpr::ValueOperation { +fn selected(node: &SummaryNode) -> Option<(MaintainedPopulation, PopulationReadout)> { + if let SummaryExpr::ValueOperation { child, operation: ValueOperation::ReadPopulation { readout }, .. } = &node.expr - else { - return None; - }; + { + if let SummaryExpr::ValueOperation { + operation: ValueOperation::MaintainPopulation { population }, + .. + } = &child.expr + { + return Some((population.clone(), readout.clone())); + } + } + // The source remains a maintained population when Planner places a heap, + // projection and ranking above it. Backend binds that source only. let SummaryExpr::ValueOperation { - operation: ValueOperation::MaintainPopulation { population }, + operation: ValueOperation::Limit { n, offset: 0, .. }, .. - } = &child.expr + } = &node.expr else { return None; }; - Some((population, readout)) + let dag = + planner_types::post_asap::compile_executable_dag(&std::rc::Rc::new(node.clone())).ok()?; + let populations = dag + .nodes + .iter() + .filter_map(|node| match &node.payload { + planner_types::post_asap::ExecutableOperatorPayload::Value { + operation: ValueOperation::MaintainPopulation { population }, + } => Some(population), + _ => None, + }) + .collect::>(); + let [population] = populations.as_slice() else { + return None; + }; + asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout( + &std::rc::Rc::new(node.clone()), + ) + .ok()?; + Some(((*population).clone(), PopulationReadout::TopK { k: *n })) } pub(super) fn supported_node(node: &SummaryNode) -> bool { @@ -55,7 +82,7 @@ pub(super) fn operator( .iter() .filter_map(|q| { selected(&q.selected_plan_root) - .map(|(p, _)| serde_json::to_string(p).expect("typed population serializes")) + .map(|(p, _)| serde_json::to_string(&p).expect("typed population serializes")) }) .collect(); let max_bytes = request @@ -97,7 +124,7 @@ pub(super) fn operator( .min(input.lookback_ms), }; population.validate()?; - let readout = match readout { + let readout = match &readout { PopulationReadout::Quantile { q } => SeriesReadout::Quantile { q: *q }, PopulationReadout::TopK { k } => SeriesReadout::TopK { k: *k as u64 }, PopulationReadout::Sum => SeriesReadout::Sum, diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 53bd8c978..bdb77a003 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -874,18 +874,26 @@ fn enumerate_frontier_candidates( // workload roots. Preserve each priced temporal candidate and mask. let maintained: Vec<_> = candidates .iter() - .map(|candidate| { + .filter_map(|candidate| { let mut candidate = candidate.clone(); + let mut changed = false; for (query, selected) in candidate.queries.iter_mut().zip(&maintained_roots) { if let Some(selected) = selected { - query.selected_plan_root = std::rc::Rc::clone(selected); + if !super::maintained_population::supported_node(&query.selected_plan_root) + { + query.selected_plan_root = std::rc::Rc::clone(selected); + changed = true; + } } } + if !changed { + return None; + } if maintained_roots.iter().all(Option::is_some) { candidate.allow_mixed_summary_and_exact_execution = false; candidate.enabled_materialization_keys = None; } - candidate + Some(candidate) }) .collect(); for candidate in maintained { diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index e6b3b634c..ff4dd3182 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -9,7 +9,7 @@ use asap_types::{ }; use planner_types::post_asap::SketchAlgorithm; -pub const MODEL_VERSION: &str = "backend-workload-resources-v1"; +pub const MODEL_VERSION: &str = "backend-workload-resources-v2"; const CPU_PER_ITEM: f64 = 1e-7; const CPU_PER_BYTE: f64 = 1e-9; const SAMPLE_BYTES: f64 = 24.0; @@ -72,6 +72,74 @@ fn resources( calculation, } } +// Price the installed program, including transient heap state. Group count is +// conservatively bounded by input cardinality until scoped group statistics exist. +fn snapshot_work( + entry: &asap_types::query_plan::QueryPlanEntry, + rows: f64, +) -> Result<(f64, f64), CompileError> { + use planner_types::post_asap::{SketchParams, SummaryFamilyType}; + let program = entry + .physical_dag + .as_ref() + .ok_or_else(|| invalid("missing snapshot physical program"))?; + let nodes = program["nodes"] + .as_object() + .ok_or_else(|| invalid("invalid snapshot program"))?; + let mut items = rows; // Bind complete input rows. + let mut bytes = rows * SERIES_BYTES * 3.0; + for node in nodes.values().filter_map(|node| node.get("Operator")) { + let kind = node["operator"]["kind"] + .as_object() + .ok_or_else(|| invalid("invalid native operator"))?; + let Some((name, parameters)) = kind.iter().next() else { + return Err(invalid("missing native operator kind")); + }; + match name.as_str() { + "Sort" => items += rows * rows.max(2.0).log2(), + "Limit" | "Project" | "CompiledProject" => items += rows, + "KeyedSummaryBuild" => { + let family: SummaryFamilyType = + serde_json::from_value(parameters["family"].clone()) + .map_err(|error| invalid(error.to_string()))?; + let SummaryFamilyType::Sketch(kind, _) = family else { + return Err(invalid("no snapshot cost model for non-sketch keyed build")); + }; + let (width, depth, capacity) = match kind.params() { + SketchParams::CmsWithHeap { + width, + depth, + heap_size, + } + | SketchParams::CountSketchWithHeap { + width, + depth, + heap_size, + } => (*width as f64, *depth as f64, *heap_size as f64), + _ => return Err(invalid("no snapshot heap cost model for this algorithm")), + }; + let groups = if parameters["groups"] + .as_array() + .is_some_and(|groups| groups.is_empty()) + { + rows.min(1.0) + } else { + rows + }; + items += rows * (depth + capacity.max(2.0).log2()); + bytes += groups * (width * depth * 8.0 + capacity * (SERIES_BYTES + 24.0)); + } + "KeyedReadout" => items += rows * rows.max(2.0).log2(), + _ => { + return Err(invalid(format!( + "no automatic snapshot cost model for {name}" + ))) + } + } + } + Ok((items * CPU_PER_ITEM, bytes)) +} + fn state( m: &PrecomputeMaterialization, request: &PhysicalCompilationRequest, @@ -506,12 +574,13 @@ pub(super) fn estimate( } => { output_rows = cardinality; if entry.population_snapshot().is_some() { + let (cpu, workspace) = snapshot_work(entry, cardinality)?; detail = json!({"input_rows": cardinality, "physical_program": entry.physical_dag, - "workspace_bytes_bound": cardinality * SERIES_BYTES * 3.0, - "formula": "rows * (log2(max(rows, 2)) + 2) * cpu_seconds_per_item", + "workspace_bytes_bound": workspace, + "formula": "sum of installed operator work; grouped heap count bounded by input rows", "cpu_seconds_per_item": CPU_PER_ITEM}); - cardinality * (cardinality.max(2.0).log2() + 2.0) * CPU_PER_ITEM + cpu } else { cardinality * CPU_PER_ITEM } @@ -582,7 +651,7 @@ pub(super) fn estimate( BTreeSet::new() }; let workspace_byte_seconds = if entry.population_snapshot().is_some() { - cardinality * SERIES_BYTES * 3.0 * cpu * evaluations + snapshot_work(entry, cardinality)?.1 * cpu * evaluations } else { 0.0 }; diff --git a/control_plane/tests/native_snapshot_topk.rs b/control_plane/tests/native_snapshot_topk.rs new file mode 100644 index 000000000..9eae454b1 --- /dev/null +++ b/control_plane/tests/native_snapshot_topk.rs @@ -0,0 +1,180 @@ +//! Planner owns the snapshot heap program; Backend admits and prices it. +use control_plane::physical::{ + compiler::{ + BackendLocalPlanningInput, DeploymentPlanCompiler, BACKEND_REVISION, PLANNER_REVISION, + }, + workload_cost::{ + enumerate_exact_and_materialized_candidates, manifest, WorkloadCostEvidence, WorkloadQuote, + }, +}; +use serde_json::{json, Value}; + +fn fixture(certified: bool) -> BackendLocalPlanningInput { + let mut wire: Value = serde_json::from_str(include_str!( + "../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let query = "topk by (job) (1, spatial_value)"; + let mut entry = wire["query_workload"]["repeating_queries"][3].clone(); + entry["query"] = query.into(); + entry["requirements"]["accuracy"] = + json!({"explicit":{"EpsilonDelta":{"epsilon":0.1,"delta":0.1}}}); + wire["query_workload"]["repeating_queries"] = json!([entry]); + wire["implementation"]["topk_evidence"] = json!({}); + wire["implementation"]["data_snapshot_id"] = "snapshot-topk-test".into(); + if certified { + wire["implementation"]["accuracy_evidence"] = json!({query: { + "query_string": query, "data_snapshot_id":"snapshot-topk-test", + "data_workload": wire["data_workload"], "source":"enforced-fixture-contract", + "observed_at_unix_ms":9500, "valid_for_ms":60000, + "topk_max_distinct_items":1000, + "topk_selected_lower_bound":101.0, "topk_excluded_upper_bound":100.0, + "topk_interval_failure_probability":0.001 + }}); + } + serde_json::from_value(wire).unwrap() +} + +fn heap(plan: &control_plane::physical::compiler::CompiledPhysicalPlan) -> bool { + plan.query_plan.entries.values().any(|entry| { + entry + .physical_dag + .as_ref() + .is_some_and(|program| program.to_string().contains("CountSketchWithHeap")) + }) +} + +// Same physical inventory, different deployment quotes: selection must reverse. +#[test] +fn snapshot_heap_and_exact_candidates_reach_deployment_cost_selection() { + for prefer_heap in [false, true] { + let mut input = fixture(true); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + assert!(request + .planner_selection_trace + .iter() + .any(|event| event["stage"] == "planner.physical_candidate" + && event.get("physical_dag").is_some())); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let mut saw_heap = false; + let mut saw_exact = false; + let quotes = candidates + .into_iter() + .filter_map(|candidate| { + let plan = DeploymentPlanCompiler + .compile_promql(candidate.clone(), environment.clone()) + .ok()?; + let is_heap = heap(&plan); + let local = plan + .query_plan + .entries + .values() + .all(|entry| entry.population_snapshot().is_some()); + saw_heap |= is_heap; + saw_exact |= local && !is_heap; + if is_heap { + assert!(plan.precompute_plan.materializations.is_empty()); + let entry = plan.query_plan.entries.values().next().unwrap(); + let restored: asap_types::query_plan::QueryPlanEntry = + serde_json::from_value(serde_json::to_value(entry).unwrap()).unwrap(); + restored.recover_population_physical_dag().unwrap(); + } + let manifest = manifest(&plan, &candidate.queries).unwrap(); + Some(WorkloadQuote { + unit_costs: manifest + .components + .keys() + .map(|key| { + ( + key.clone(), + if local && is_heap == prefer_heap { + 1.0 + } else { + 1e12 + }, + ) + }) + .collect(), + manifest, + executable: true, + }) + }) + .collect(); + assert!( + saw_heap, + "certified signed heap candidate never reached pricing" + ); + assert!(saw_exact, "exact population candidate disappeared"); + input.workload_cost_evidence = Some(WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "snapshot-topk-test".into(), + model_version: "fixture-cost-reversal".into(), + observed_at_unix_ms: 10000, + valid_for_ms: 60000, + quotes, + }); + assert_eq!(heap(&input.compile_promql().unwrap()), prefer_heap); + } +} + +// A priced physical graph is not an accuracy proof. Missing population/gap +// evidence must leave the exact candidate available and the heap uninstalled. +#[test] +fn unknown_snapshot_heap_guarantee_cannot_be_installed() { + let (request, environment) = fixture(false).into_physical_compilation_request().unwrap(); + assert!(request + .planner_selection_trace + .iter() + .any(|event| event["stage"] == "planner.physical_candidate")); + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + if let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) { + assert!(!heap(&plan)); + } + } +} + +// Analytical costing must account for transient heap state and operator work, +// rather than pricing every population program as the same Sort/Limit pair. +#[test] +fn automatic_costs_include_installed_heap_workspace() { + let input = fixture(true); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let heap_ids = enumerate_exact_and_materialized_candidates(request) + .unwrap() + .into_iter() + .filter_map(|candidate| { + DeploymentPlanCompiler + .compile_promql(candidate, environment.clone()) + .ok() + }) + .filter(heap) + .map(|plan| plan.envelope.plan_id) + .collect::>(); + assert!(!heap_ids.is_empty()); + let plan = input.compile_promql().unwrap(); + let report = plan.cost_comparison.unwrap(); + let evaluated = report + .candidate_evaluations + .iter() + .filter(|candidate| candidate.plan_id.is_some_and(|id| heap_ids.contains(&id))) + .collect::>(); + assert!(!evaluated.is_empty()); + for candidate in evaluated { + assert!( + candidate.total_cost.is_some(), + "{:?}", + candidate.unavailable_reason + ); + let resources = candidate.automatic_cost.as_ref().unwrap(); + assert_eq!(resources.model_version, "backend-workload-resources-v2"); + assert!(resources.components.values().any(|component| { + component.calculation.get("physical_program").is_some() + && component.calculation["workspace_bytes_bound"] + .as_f64() + .unwrap_or(0.) + > 0. + && component.memory_byte_seconds > 0. + })); + } +} diff --git a/data_plane/tests/asapquery_compatibility_process_e2e.rs b/data_plane/tests/asapquery_compatibility_process_e2e.rs index 79ea86a03..a6322c8ef 100644 --- a/data_plane/tests/asapquery_compatibility_process_e2e.rs +++ b/data_plane/tests/asapquery_compatibility_process_e2e.rs @@ -1916,3 +1916,6 @@ async fn collector_free_profile_serves_complete_matrix_and_falls_back_exactly() #[path = "support/univmon_erp_process.rs"] mod univmon_erp_process; + +#[path = "support/spatial_heap_process.rs"] +mod spatial_heap_process; diff --git a/data_plane/tests/support/spatial_heap_process.rs b/data_plane/tests/support/spatial_heap_process.rs new file mode 100644 index 000000000..5d805725d --- /dev/null +++ b/data_plane/tests/support/spatial_heap_process.rs @@ -0,0 +1,184 @@ +use super::*; +use control_plane::physical::{ + compiler::{ + BackendLocalPlanningInput, DeploymentPlanCompiler, BACKEND_REVISION, PLANNER_REVISION, + }, + workload_cost::{ + enumerate_exact_and_materialized_candidates, manifest, WorkloadCostEvidence, WorkloadQuote, + }, +}; + +// Actual installed heap program: Remote Write -> current snapshot -> native +// CountSketch build/readout -> HTTP result. Updates never accumulate old weights. +#[tokio::test] +async fn spatial_heap_installs_and_serves_replacements_staleness_and_expiry() { + let query = "topk by (job) (1, spatial_value)"; + let mut wire: Value = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let mut entry = wire["query_workload"]["repeating_queries"][3].clone(); + entry["query"] = query.into(); + entry["requirements"]["accuracy"] = + serde_json::json!({"explicit":{"EpsilonDelta":{"epsilon":0.1,"delta":0.1}}}); + wire["query_workload"]["repeating_queries"] = serde_json::json!([entry]); + wire["implementation"]["topk_evidence"] = serde_json::json!({}); + wire["implementation"]["data_snapshot_id"] = "spatial-heap-process".into(); + // Across every tested snapshot, the winner is >=900, every excluded value + // is <=10, and there are at most three complete series identities. + wire["implementation"]["accuracy_evidence"] = serde_json::json!({query:{ + "query_string":query,"data_snapshot_id":"spatial-heap-process", + "data_workload":wire["data_workload"],"source":"enforced-test-population", + "observed_at_unix_ms":9500,"valid_for_ms":60000,"topk_max_distinct_items":3, + "topk_selected_lower_bound":900.0,"topk_excluded_upper_bound":10.0, + "topk_interval_failure_probability":0.001 + }}); + let mut snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = snapshot + .clone() + .into_physical_compilation_request() + .unwrap(); + let mut saw_heap = false; + let quotes = enumerate_exact_and_materialized_candidates(request) + .unwrap() + .into_iter() + .filter_map(|candidate| { + let plan = DeploymentPlanCompiler + .compile_promql(candidate.clone(), environment.clone()) + .ok()?; + let heap = plan.query_plan.entries.values().any(|entry| { + entry + .physical_dag + .as_ref() + .is_some_and(|program| program.to_string().contains("CountSketchWithHeap")) + }); + saw_heap |= heap; + let manifest = manifest(&plan, &candidate.queries).unwrap(); + Some(WorkloadQuote { + unit_costs: manifest + .components + .keys() + .map(|key| (key.clone(), if heap { 1.0 } else { 1e12 })) + .collect(), + manifest, + executable: true, + }) + }) + .collect(); + assert!(saw_heap); + snapshot.workload_cost_evidence = Some(WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "spatial-heap-process".into(), + model_version: "test-only-heap-selection".into(), + observed_at_unix_ms: 10000, + valid_for_ms: 60000, + quotes, + }); + let plan = snapshot.clone().compile_promql().unwrap(); + let entry = plan.query_plan.entries.values().next().unwrap(); + assert!(entry + .physical_dag + .as_ref() + .unwrap() + .to_string() + .contains("CountSketchWithHeap")); + entry.recover_population_physical_dag().unwrap(); + assert!(plan.precompute_plan.materializations.is_empty()); + + let calls = Arc::new(std::sync::atomic::AtomicU64::new(0)); + let observed = calls.clone(); + let listener = tokio::net::TcpListener::bind("127.0.0.1:0").await.unwrap(); + let fallback = format!("http://{}", listener.local_addr().unwrap()); + let task = tokio::spawn(async move { + axum::serve(listener,Router::new().route("/-/healthy",get(||async{"healthy"})).route("/api/v1/query",get(move ||{ + let observed=observed.clone();async move { + observed.fetch_add(1,std::sync::atomic::Ordering::Relaxed); + Json(serde_json::json!({"status":"success","data":{"resultType":"vector","result":[]}})) + } + }))).await.unwrap(); + }); + let output = tempfile::tempdir().unwrap(); + let path = output.path().join("snapshot.json"); + std::fs::write(&path, serde_json::to_vec(&snapshot).unwrap()).unwrap(); + let port = unused_port(); + let mut child = ChildGuard( + Command::new(env!("CARGO_BIN_EXE_data_plane")) + .args([ + "--profile", + "asapquery", + "--forward-unsupported-queries", + "--planning-snapshot", + ]) + .arg(path) + .args([ + "--prometheus-server", + &fallback, + "--http-port", + &port.to_string(), + "--output-dir", + ]) + .arg(output.path()) + .stdout(Stdio::null()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(), + ); + let client = reqwest::Client::new(); + let base = format!("http://127.0.0.1:{port}"); + wait_until_ready(&client, &format!("{base}/api/v1/health"), &mut child.0).await; + let end = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_millis() as i64; + let stale = + f64::from_bits(data_plane::drivers::ingest::prometheus_remote_write::STALE_NAN_BITS); + for (offset, samples, winner, score) in [ + (0, vec![("a", 1000.0), ("b", 10.0), ("c", 1.0)], "a", 1000.0), + (1000, vec![("a", -5.0), ("b", 900.0)], "b", 900.0), + (2000, vec![("b", stale), ("c", 1000.0)], "c", 1000.0), + (7000, vec![("a", 900.0)], "a", 900.0), + ] { + let request = WriteRequest { + timeseries: samples + .into_iter() + .map(|(instance, value)| { + series_with_labels( + "spatial_value", + &[("job", "api"), ("unreferenced_instance", instance)], + &if offset == 0 { + vec![(end - 5000, value), (end, value)] + } else { + vec![(end + offset, value)] + }, + ) + }) + .collect(), + }; + assert_eq!(remote_write(&client, &base, &request).await, 204); + let body: Value = client + .get(format!("{base}/api/v1/query")) + .query(&[ + ("query", query.to_owned()), + ("time", format!("{:.3}", (end + offset) as f64 / 1000.0)), + ]) + .send() + .await + .unwrap() + .json() + .await + .unwrap(); + assert!(is_warm(&body), "{body}"); + let rows = body["data"]["result"].as_array().unwrap(); + assert_eq!(rows.len(), 1, "{body}"); + assert_eq!(rows[0]["metric"]["unreferenced_instance"], winner, "{body}"); + let actual = rows[0]["value"][1] + .as_str() + .unwrap() + .parse::() + .unwrap(); + assert!((actual - score).abs() < 1e-8, "{body}"); + } + assert_eq!(calls.load(std::sync::atomic::Ordering::Relaxed), 0); + task.abort(); +} diff --git a/docs/design_docs/evidence-dependent-candidates.md b/docs/design_docs/evidence-dependent-candidates.md index 83c57b87b..f7af388d3 100644 --- a/docs/design_docs/evidence-dependent-candidates.md +++ b/docs/design_docs/evidence-dependent-candidates.md @@ -211,7 +211,7 @@ flowchart LR Compare --> Select[Lowest-cost feasible physical candidate] ``` -`backend-workload-resources-v1` is an explicit analytical reference model, not a +`backend-workload-resources-v2` is an explicit analytical reference model, not a calibrated prediction or a monetary quote. It computes a resource vector before weighting it: `cost = CPU_seconds + 1e-9 * memory_byte_seconds + 1e-8 * network_bytes`. These fixed versioned weights express a default tradeoff; a deployment can still @@ -317,3 +317,11 @@ bound must not change the query's read interval. A temporal producer that cannot implement a fractional range remains unsupported for that binding, while exact execution preserves the original range. Level-3 acceptance uses the actual replay cadence and still requires a local executable plan. + +Spatial TopK admission keeps the exact population ranking and the Planner's +CountSketch-with-heap physical candidate separate. The heap requires scoped +score separation and an enforced `topk_max_distinct_items` bound; an estimated +workload cardinality is insufficient. Missing evidence leaves the candidate +visible but ineligible for installation. Cost model v2 prices the installed +native operators and transient heap workspace. A complete provider quote can +choose either candidate; neither is forced by operator name. diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 10dcb744b..6c294488a 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -56,9 +56,8 @@ an explicitly planned physical operation. The storage integration test covers durable per-series sums, native quantile state construction, publication, bound readout and restart of both the store and -resolver. Automatic PromQL physical-candidate installation, Rate-to-heap storage -execution and spatial latest-value heap execution remain pending. This test does -not establish those paths. +resolver. The full PromQL physical-candidate handoff and Rate-to-heap storage +execution remain pending. This storage test does not establish those paths. Bound frozen reads resolve the stored-output/group prefix through the persistent series resolver. Each cached part builds a sorted output/window index once on @@ -72,7 +71,16 @@ all eligible members through a snapshot binding. Planner compiles the ranking above that boundary; the QueryPlan persists that physical program before candidate pricing and activation. Serving recovers its operators and supplies full-label native rows without parsing or lowering the query. Automatic cost -estimates include sorting CPU and temporary workspace; provider quote manifests -include the physical program itself. Other population readouts retain their -existing paths. This path does not imply that spatial heap candidates or buffered -Rate-to-heap persistence are deployed yet. +estimates include native operator CPU and temporary workspace; provider quote +manifests include the physical program itself. Other population readouts retain +their existing paths. + +Planner also exposes a CountSketch-with-heap candidate over that same snapshot. +Backend requires scoped membership/score evidence, including the enforced +`topk_max_distinct_items` bound, before installation. Source cardinality estimates +do not supply that accuracy bound. Signed sample values cannot authorize CMS. +Backend compares the complete physical programs; it does not replace the selected +heap with Sort/Limit. The heap is rebuilt for each evaluation, so decreases, +staleness and expiry do not accumulate historical weights. Automated real-process +Remote Write/HTTP coverage verifies these changes with no exact-backend fallback. +This is a query-time heap candidate; buffered Rate-to-heap persistence is separate. From b1ec716c3af5d4d16ded288c15a4e6146b82868b Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:11:13 +0000 Subject: [PATCH 26/80] test: expose spatial heap programs and assert explicit accuracy admission --- control_plane/tests/issue754_level1.rs | 49 +++++++++++++++++++ .../issue754-human-review/render.py | 32 +++++++++--- 2 files changed, 75 insertions(+), 6 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index fa301e987..af64772b8 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -600,6 +600,35 @@ fn issue754_queries_have_valid_physical_plans() { "root substitutions must not be reported as exhaustive joint search" ); } + let snapshot_heap_root = if case.name == "spatial-topk" { + let trace = request + .planner_selection_trace + .iter() + .find(|trace| { + trace["stage"] == "planner.physical_candidate" + && trace["physical_dag"] + .to_string() + .contains("CountSketchWithHeap") + }) + .expect("Planner must expose a physical signed snapshot heap candidate"); + let program = asap_physical_operators::physical_planner::CompiledPhysicalDag::decode( + &serde_json::to_vec(&trace["physical_dag"]).unwrap(), + ) + .unwrap(); + assert_eq!(program.input_contracts().count(), 1); + let encoded = trace["physical_dag"].to_string(); + assert!(encoded.contains("KeyedSummaryBuild") && encoded.contains("KeyedReadout")); + assert!(encoded.contains("$promql_series_identity")); + assert!( + !encoded.contains("CurrentSeries"), + "the source already supplies an eligible snapshot" + ); + assert!(trace["guarantee"].to_string().contains("topk_max_distinct_items"), + "this fixture has no enforced distinct-item bound; do not invent one from estimated cardinality"); + Some(trace["logical_root_id"].as_str().unwrap().to_owned()) + } else { + None + }; let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let mut valid_plans = Vec::new(); let mut quotes = Vec::new(); @@ -715,6 +744,26 @@ fn issue754_queries_have_valid_physical_plans() { let selected = input .compile_promql() .unwrap_or_else(|error| panic!("{} selected plan failed: {error}", case.name)); + if let Some(root_id) = snapshot_heap_root { + let report = selected.cost_comparison.as_ref().unwrap(); + let heap = report + .candidate_evaluations + .iter() + .filter(|candidate| candidate.logical_root_ids.contains(&root_id)) + .collect::>(); + assert!( + !heap.is_empty(), + "physical heap candidate disappeared before admission" + ); + assert!( + heap.iter().all(|candidate| candidate.total_cost.is_none() + && candidate + .unavailable_reason + .as_ref() + .is_some_and(|reason| reason.contains("accuracy guarantee"))), + "missing proof must be an explicit admission failure: {heap:?}" + ); + } let selected_entry = selected.query_plan.lookup(&case.expr).unwrap(); assert!(selected_entry.nodes.contains_key(&selected_entry.root)); if let Some(error) = assert_selected_plan(&case.name, &selected) { diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index a08b0ede2..8c589c1ab 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -111,16 +111,30 @@ def block(value): 'Costs below come from the controlled Level 1 fixture, not production measurements.', ''] traces = report.get('logical_selection', []) for trace in traces: + if trace.get('stage') == 'planner.physical_candidate': + lines += ['### Planner physical candidate', '', + f"Logical root: {cell(trace.get('logical_root_id'))}.", '', + trace.get('rationale', '').replace('alternatives', 'candidates'), '', + 'Guarantee: ' + cell(trace.get('guarantee')), ''] + program = trace.get('physical_dag') + if program: + lines += ['| Node | Dependencies | Native operator / input |', '| --- | --- | --- |'] + for node_id, node in program['nodes'].items(): + op = node.get('Operator') + lines.append(f"| {node_id} | {cell(op['inputs'] if op else [])} | {cell(op['operator']['kind'] if op else {'Input': node['Input']})} |") + lines += ['', f"Roots: {cell(program['roots'])}.", ''] + if trace.get('reason'): + lines += [trace['reason'], ''] if trace.get('computation_search_scope'): lines += [block(trace['computation_search_scope'])] for group in trace.get('groups', []): for rejected in group.get('rejected', []): description = rejected.get('description', '').split(' — ', 1)[0] lines += [f"- {description}: {rejected.get('reason', '')}"] - lines += ['', '| Candidate | Status | Fixture cost | Rejection / unavailable reason |', - '| --- | --- | --- | --- |'] + lines += ['', '| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason |', + '| --- | --- | --- | --- | --- |'] for index, candidate in enumerate(report.get('candidates', [])): - lines.append(f"| {index} | {cell(candidate.get('status'))} | {cell(candidate.get('total_cost'))} | {cell(candidate.get('unavailable_reason'))} |") + lines.append(f"| {index} | {cell(candidate.get('logical_root_ids'))} | {cell(candidate.get('status'))} | {cell(candidate.get('total_cost'))} | {cell(candidate.get('unavailable_reason'))} |") exported = sorted((BASE / 'candidates').glob(path.stem + '-*.json')) if exported: lines += ['', 'Successfully compiled candidate plans: ' + ', '.join( @@ -155,9 +169,15 @@ def block(value): completion of the Planner physical-candidate installation/execution handoff. Logical provenance and installed native physical programs are shown separately. Spatial TopK binds a complete current-series snapshot and runs a persisted native -Sort → Limit program. This is the exact ranking candidate; spatial CMS/CountSketch -heap deployment and Rate → heap storage E2E remain outstanding. Other PromQL -paths still use the documented Backend adapter representation. +Sort → Limit program. Planner also exposes a CountSketch-with-heap physical +candidate over the same snapshot. This fixture has no enforced distinct-item +bound or score-separation proof, so its heap candidate is explicitly rejected +before pricing. The inherited `native_snapshot_topk` tests cover certified heap +admission, cost-dependent selection and analytical workspace costing; a separate +real-process test covers Remote Write and heap HTTP results. Signed samples do +not authorize CMS. Rate → heap storage E2E and the complete physical-candidate +handoff remain outstanding. Other PromQL paths still use the documented Backend +adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; From 9673c2f86bc64b738c50c66446475ec0e89b241e Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:11:13 +0000 Subject: [PATCH 27/80] docs: export spatial heap physical candidates and admission evidence --- .../issue754-human-review/README.md | 14 +- .../candidates/grouped-rate-0.json | 22 +- .../candidates/grouped-rate-1.json | 22 +- .../candidates/grouped-temporal-sum-0.json | 26 +- .../candidates/grouped-temporal-sum-1.json | 26 +- .../candidates/grouped-temporal-sum-3.json | 26 +- .../candidates/quantile-ratio-0.json | 30 +- .../candidates/quantile-ratio-1.json | 30 +- .../candidates/quantile-ratio-2.json | 30 +- .../candidates/spatial-quantile-0.json | 18 +- .../candidates/spatial-quantile-1.json | 18 +- .../candidates/spatial-quantile-2.json | 18 +- .../candidates/spatial-quantile-3.json | 18 +- .../candidates/spatial-sum-0.json | 18 +- .../candidates/spatial-sum-1.json | 18 +- .../candidates/spatial-sum-2.json | 18 +- .../candidates/spatial-sum-3.json | 18 +- .../candidates/spatial-topk-1.json | 781 +++++- .../candidates/spatial-topk-2.json | 781 +++++- .../candidates/temporal-quantile-0.json | 22 +- .../candidates/temporal-quantile-1.json | 18 +- .../candidates/temporal-quantile-2.json | 18 +- .../candidates/temporal-rate-0.json | 18 +- .../candidates/temporal-rate-1.json | 18 +- .../candidates/temporal-rate-2.json | 18 +- .../candidates/temporal-rate-3.json | 18 +- .../candidates/temporal-sum-0.json | 18 +- .../candidates/temporal-sum-1.json | 18 +- .../candidates/temporal-sum-2.json | 18 +- .../candidates/topk-rate-0.json | 22 +- .../candidates/topk-rate-1.json | 22 +- .../candidates/topk-rate-2.json | 22 +- .../issue754-human-review/grouped-rate.json | 56 +- .../issue754-human-review/grouped-rate.md | 10 +- .../grouped-temporal-sum.json | 70 +- .../grouped-temporal-sum.md | 12 +- .../issue754-human-review/quantile-ratio.json | 78 +- .../issue754-human-review/quantile-ratio.md | 14 +- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 56 +- .../issue754-human-review/spatial-quantile.md | 12 +- .../issue754-human-review/spatial-sum.json | 56 +- .../issue754-human-review/spatial-sum.md | 12 +- .../issue754-human-review/spatial-topk.json | 2446 ++++++++++++++--- .../issue754-human-review/spatial-topk.md | 30 +- .../temporal-quantile.json | 54 +- .../temporal-quantile.md | 14 +- .../issue754-human-review/temporal-rate.json | 56 +- .../issue754-human-review/temporal-rate.md | 12 +- .../issue754-human-review/temporal-sum.json | 50 +- .../issue754-human-review/temporal-sum.md | 10 +- .../issue754-human-review/topk-rate.json | 58 +- .../issue754-human-review/topk-rate.md | 10 +- 53 files changed, 4195 insertions(+), 1105 deletions(-) diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index b6b1a5edb..1b6af1e56 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -5,7 +5,7 @@ recorded. Selected plans and successfully compiled candidate plans are retained as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab`. +`3ebe195260fa6e16e226183ee50938078bb8359f`. ## Current implementation boundary @@ -13,9 +13,15 @@ These exports describe the current Backend implementation. They do **not** prove completion of the Planner physical-candidate installation/execution handoff. Logical provenance and installed native physical programs are shown separately. Spatial TopK binds a complete current-series snapshot and runs a persisted native -Sort → Limit program. This is the exact ranking candidate; spatial CMS/CountSketch -heap deployment and Rate → heap storage E2E remain outstanding. Other PromQL -paths still use the documented Backend adapter representation. +Sort → Limit program. Planner also exposes a CountSketch-with-heap physical +candidate over the same snapshot. This fixture has no enforced distinct-item +bound or score-separation proof, so its heap candidate is explicitly rejected +before pricing. The inherited `native_snapshot_topk` tests cover certified heap +admission, cost-dependent selection and analytical workspace costing; a separate +real-process test covers Remote Write and heap HTTP results. Signed samples do +not authorize CMS. Rate → heap storage E2E and the complete physical-candidate +handoff remain outstanding. Other PromQL paths still use the documented Backend +adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index 123b8c872..716a3ea88 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", + "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" + "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,26 +1418,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index 2ffb30e88..693e86240 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", + "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +216,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" + "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,26 +287,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index 5b600fe60..e9b6c63a4 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", + "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", + "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", + "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" + "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", + "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" + "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index 863d4f96c..49daa4185 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", + "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +188,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", + "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +211,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", + "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +302,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" + "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", + "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,26 +373,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" + "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index 6a1b51961..c7feee3f3 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -661,7 +661,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1238,7 +1238,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -1254,7 +1254,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", + "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1317,7 +1317,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", + "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,7 +1340,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", + "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1431,13 +1431,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" + "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", + "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1502,26 +1502,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" + "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index 37887ad63..fe5addb08 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", + "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" + "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", + "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" + "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index 7b1202a34..e60032e4e 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", + "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" + "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", + "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" + "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index 0b536dd6c..fcd7bb1fa 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", + "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" + "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", + "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" + "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index 40a6ad016..7377ee334 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index eb62c88e1..c25f15f5e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index e56f7beff..c9ec3fbf3 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +435,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -451,7 +451,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -540,26 +540,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index fead73855..e801ca7fd 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index 3e6576370..7966735f5 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index 31234d33a..3d1505a7e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index 9997c44c6..a2c3e9155 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +430,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -446,7 +446,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,26 +511,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index 2d91d46f2..202191b36 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index a6baa8a40..f241762e7 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], @@ -126,37 +126,800 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" + "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" + "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 6 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index d13682daf..9e72ff5f9 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], @@ -684,37 +684,800 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" + "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" + "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 6 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 7ca3b8f3d..93990ad75 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index ce5c682bf..275b86170 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index be9aa580c..319a02302 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index 390793723..a9e661021 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index 526e90134..33d0ae1ac 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index 20ac86a99..cf0997427 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index 9ea2aa147..e8d0e1648 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index a78c1f7f0..52dc7296a 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", + "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" + "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index a5e2771f9..5825d728d 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", + "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" + "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index 5207fe44c..2ecd24de6 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", + "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" + "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index 6a2dbf257..9eaaf99b7 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1382,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -1398,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", + "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" + "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,26 +1534,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index 9279042fb..d732fa4d7 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", + "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +190,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" + "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,26 +261,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index ab435f25c..8bfde5e7d 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +146,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -162,7 +162,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", + "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +227,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" + "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,26 +298,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index 78d7a2bf9..540f606a2 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", + "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" + "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,26 +1418,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], @@ -1451,7 +1451,7 @@ "selected_manifest": { "plan_id": 5849823772717530049, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2348,11 +2348,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:f230d8bc50921ce808e9311911fc776d66b66e7433f6947be1c9943466796196", + "candidate_id": "asap-explain-v1:candidate:e24adf1285fa1eed56de7020722b27b0418799447cfcdb3ba5132694dcc72a8c", "logical_root_ids": [ - "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd" + "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1" ], - "physical_candidate_id": "asap-explain-v1:physical:6faa68c67e8f289e7f9a1e64d0c24650a07999f39aedf6529b9f23be70e8a40f", + "physical_candidate_id": "asap-explain-v1:physical:bb3f21ec7602196b32695c2b69a8f9ac184cb26d6151526e1ca6ce7bffaf1df5", "identity_unavailable_reason": null, "status": "selected", "plan_id": 5849823772717530049, @@ -2360,11 +2360,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a959caa6967ff99cc8deefbdb636b6edc43eb2b16eb8b595a671ce19b9f4f7c6", + "candidate_id": "asap-explain-v1:candidate:23dc04e12c02d4d5c5af6f0756e9fe5bb8c3c789908ba5d4eb756b5ddc9d359a", "logical_root_ids": [ - "asap-explain-v1:root:2a79206efb177996c55cfb12c09b78c92ca2ed04176b67fea97747696e9743a6" + "asap-explain-v1:root:4f1a460e06820b58ecb3eba688270ec13eb5a8490e30d797b6e6792e02b0eb7b" ], - "physical_candidate_id": "asap-explain-v1:physical:5e9ecb09b1b2f2aff38d5a0bcc36bef5f34d1acb5d83674c7ba85ab4a5377c2b", + "physical_candidate_id": "asap-explain-v1:physical:b8fbcdeca76f58bf9cf8fbde0302c30be58ffd1ada10166cadd7935dd9a10e57", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 741363842036532054, @@ -2372,9 +2372,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:d4d221ffef0fec0d1fe1593c006e4253e370c388e59e09ed63066beeee98ec78", + "candidate_id": "asap-explain-v1:candidate:184cfd0174f1cf55343c3795a046d1277724343956ff51441b696b24b998941f", "logical_root_ids": [ - "asap-explain-v1:root:5df1ace69da89319e7b67f2864a2fd2063d51f3a94a22c2be30610bcc12c499b" + "asap-explain-v1:root:72da058ea30881ecb59998b94e12f7eec58af16de26d7d41ee8aa00bf93584e3" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2390,7 +2390,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], @@ -2406,7 +2406,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3fda5c992969c5978a1e8672ff855cb24d1dfd6487c4ba30da2265b4d6ea24e8", + "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2497,13 +2497,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:b9db0f12fe58751f840e4ab478db97cdc31b368c40be3a116cbfff15ef9eb5e8" + "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2568,26 +2568,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c9e9cfae6daea9a3a138cb585e32f8418a5b14cd1695f390e67041c7a13fb7fd", + "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index e64eb8b10..ba9e6b712 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -45,11 +45,11 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `125.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1"]` | `"selected"` | `125.0` | `null` | +| 1 | `["asap-explain-v1:root:4f1a460e06820b58ecb3eba688270ec13eb5a8490e30d797b6e6792e02b0eb7b"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:72da058ea30881ecb59998b94e12f7eec58af16de26d7d41ee8aa00bf93584e3"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json) diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index 75a79f11a..f39e0753f 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", + "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", + "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", + "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" + "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", + "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" + "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -1304,7 +1304,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2242,11 +2242,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:4ebb24803d83200624dfec4177c7ef0a2f7b1442ca6682ed390b34628ceb04f8", + "candidate_id": "asap-explain-v1:candidate:bcdbc3b637b8f444ff07ff4c6755cadf52cb8960d7f0a757c64f735a681f023a", "logical_root_ids": [ - "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2" + "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b" ], - "physical_candidate_id": "asap-explain-v1:physical:b9fcc6588863a9c5fade0e46d34a6c04ad5a91f9d02ebbeeff64003dab485fae", + "physical_candidate_id": "asap-explain-v1:physical:92098dbf5e86e905d02cb8932aad992c4fa15eb757823ee484541f25d15a159d", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2254,11 +2254,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3012a7e49fb51f587501e373db3f5ec662825a93a16097c39328d0014c0b9628", + "candidate_id": "asap-explain-v1:candidate:39bac75e1666f80961c267f440db330ddd5e540b1eec3369466171877adfe0aa", "logical_root_ids": [ - "asap-explain-v1:root:56622cde69e47088cb9a2c23b18f8184294c61e27fe2498c27d08d1e9f9c955f" + "asap-explain-v1:root:ec68700333a360fe95b44ffe857bff4ddb5edd7a68e5c6e6739fd46598318ffd" ], - "physical_candidate_id": "asap-explain-v1:physical:24e97979bb62814e66466406e9640c264643f89f6da2de8445850813c0e4f442", + "physical_candidate_id": "asap-explain-v1:physical:94827ee547e549273683ae292afa22147bd622e063685fd8decd46178c02e0f7", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, @@ -2266,9 +2266,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:66aa5a46bc3f3c15ab6946723b33cb45574c5c633547293f5d83366f19a0f4e4", + "candidate_id": "asap-explain-v1:candidate:ff64d5acbac251e3bf1bf0f13c1b756a4ae7dc3bd300f98aba99a343038e415f", "logical_root_ids": [ - "asap-explain-v1:root:c10700cdf819a67dbc451d7d8c753a30a33b54cde7670dfe8d783953375d492f" + "asap-explain-v1:root:677c17ebaa3903cdf54856f869cf13e5d3b347f6793c243f5537ce6474b80741" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2278,11 +2278,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:353b9047b049959eac239ae090c46aafc344b5b93cf8abc12131448da734a570", + "candidate_id": "asap-explain-v1:candidate:7bcef65f6c4034c216aee7d4ec18b8b08485a99d825b1dedf427610424043d66", "logical_root_ids": [ - "asap-explain-v1:root:1a72a3a70587927764b29c724e0a85a6cdd3ee8cb058c2b170877d9442dcd0e4" + "asap-explain-v1:root:b7c61d6400b48010b50be44a67267fba78022d774c798351e28de3af7fed5319" ], - "physical_candidate_id": "asap-explain-v1:physical:f01e15f7e35fc1cea749dc1aa23151990bb555973fb43e27ef6ef250b2e9674d", + "physical_candidate_id": "asap-explain-v1:physical:c89e9c40f5153391caacab6f5626d821db9065de6b5523a17864f2f5bb98f909", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3225737927651639557, @@ -2296,7 +2296,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], @@ -2312,7 +2312,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1750d9765f1c56d5f8952d2770bf7fbb31ffa49f8a6d3988e7d4f01740db5cd1", + "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2375,7 +2375,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7c84baf0b1398c6f83158a3ee03ac062bea1521831c063217a603449fec56373", + "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2398,7 +2398,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:90651390bcb6b9dc7048a5863ec72860240bab3ede21b30f27859ad374cdc8b4", + "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2489,13 +2489,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:421ce61d4f81c3375509596819c623dcb0911262835188bc2e78cd008995fa45" + "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9fa983bec171b04f2e7aebb2afa3bede773cd9f428ed3c3d1a636e330d02b76d", + "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2560,26 +2560,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9010ca5559b562b241aa54b4a6d94e483556cf86d9f010fa56b679559f2203e9" + "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:85feb3bee6b41d345d88246536b0c03e63db8ac1ac8b8747caa85f4cafeed2e2", + "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index 841b8164b..cd5e41db7 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -39,12 +39,12 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 3 | `"unselected"` | `125.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:ec68700333a360fe95b44ffe857bff4ddb5edd7a68e5c6e6739fd46598318ffd"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:677c17ebaa3903cdf54856f869cf13e5d3b347f6793c243f5537ce6474b80741"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:b7c61d6400b48010b50be44a67267fba78022d774c798351e28de3af7fed5319"]` | `"unselected"` | `125.0` | `null` | Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index 70d5564df..5eb49133e 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.0049751243781094535 + "alpha": 0.0049751243781094535, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", + "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" + "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", + "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" + "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -1934,7 +1934,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2920,11 +2920,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:0f5e87b59f97881ebf9af54f6c22b212a25504fc3747ac8ae08437a6ae0b7954", + "candidate_id": "asap-explain-v1:candidate:c6a2b009d2c1aa37345f7c481c0ffbb3f89014e6004dea59d93f0e70bdf8827c", "logical_root_ids": [ - "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134" + "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b" ], - "physical_candidate_id": "asap-explain-v1:physical:92634b68d6cdc0500c62854a6b73001c347c064e8fcb513969be9826a38819e3", + "physical_candidate_id": "asap-explain-v1:physical:fe80af1b8e6881d4f62f517282a46faf75abeb554e32e65c9fd5fb0eea149753", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2932,11 +2932,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:6fa2ad2cb002cd8f28c989540fcd0a42483be21bd102cb91d76b13a2018ff2f1", + "candidate_id": "asap-explain-v1:candidate:5438e08f906e008686fb177ce958d7cdf42300c28374d2133b0106ecce782cc9", "logical_root_ids": [ - "asap-explain-v1:root:660486d049b403846130cdf71bb275617c4cc93bf1ea997f6962e2058319d4dc" + "asap-explain-v1:root:23c3df7787dc24dff3251071956d7d703b06c8e7291d420679fdbc7045aa4b8e" ], - "physical_candidate_id": "asap-explain-v1:physical:68f58110fb820de87dc6cafbd6744340d62588cad90195800a4d162a7b23a1a6", + "physical_candidate_id": "asap-explain-v1:physical:32bf3e01616d42054a60a40da3a65127e293100a900f074e00e03527f0c14dde", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, @@ -2944,11 +2944,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8e61b63bd075e09a444ffb3c336296f68c433b3c5d0d1bf3dd052c3dc795ed47", + "candidate_id": "asap-explain-v1:candidate:829279ee5efce3964bfb5c91056c064b60aff45617e0f7f4d73fe205f2c5c88d", "logical_root_ids": [ - "asap-explain-v1:root:2d4915e083b87dd61d60c549e51eb593d4ccc0e75d073869edc0f1935a4d19bf" + "asap-explain-v1:root:ddd37e37de447338654e5b71ea256bbf69beda84ae8734a7f9650d801eade1f6" ], - "physical_candidate_id": "asap-explain-v1:physical:58465fb9fd9ba14730e9d579ec699f6ba7b5f9b66e4efcae3bf1df5513037d08", + "physical_candidate_id": "asap-explain-v1:physical:6c45827509fe64a58cb12d17bcb506215f8431f355552c963023b50e964209bc", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 12971657221408630864, @@ -2969,7 +2969,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], @@ -2985,7 +2985,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:10e1fa38168e2dee9595124877eac365f1ee9bcefcc3aea07529683846e69de2", + "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3176,13 +3176,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e9d165fc6315704a00992ee6c8be1b685ad6f555c474edf1e1f6620a8331a910" + "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3271,27 +3271,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b96b3af2ecbc4d73bc16ca9691616d23738761b0c6ca2965ffcb516da815ba09", + "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3380,26 +3380,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:a512533ae714e893970072fc366e97576550f0b0193c6e291b5529da60fb3ddd" + "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:e61e69a09a7e44241cd847f0c2e4955324e83d8a3d231cadedcff199b5155134", + "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index 9ed387c17..8b5cfe6bd 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -51,11 +51,11 @@ Costs below come from the controlled Level 1 fixture, not production measurement - quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } - quantile(q=0.5) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `155.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `61000000000000.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b"]` | `"selected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:23c3df7787dc24dff3251071956d7d703b06c8e7291d420679fdbc7045aa4b8e"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:ddd37e37de447338654e5b71ea256bbf69beda84ae8734a7f9650d801eade1f6"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) @@ -92,8 +92,8 @@ Stored output `2776719732314936823` → semantic definition `sds-v1:f20a6a984012 "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.0049751243781094535 + "alpha": 0.0049751243781094535, + "promql_right_closed": true }, "grouping_labels": { "labels": [] diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 0c8b3456a..2f15fd64d 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -d0be8eb7e171f5c61b271a97c08368ce8afb6438 +b1ec716c3af5d4d16ded288c15a4e6146b82868b diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index 9bc458448..3953433a4 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -1299,7 +1299,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2325,11 +2325,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:5b4be6a05b3b6e2e6596d7ade527a0d7d0b169fc18d4b6c4e85c22cad8f0535a", + "candidate_id": "asap-explain-v1:candidate:a40f559bea163720eca835b0c4f3d659d99be6cb0036175f64b3a37c14175959", "logical_root_ids": [ - "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435" + "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0" ], - "physical_candidate_id": "asap-explain-v1:physical:6ed9f1af5f228ac7803fded06569acbd1b8c0be6b44b740c23a415196b97ec69", + "physical_candidate_id": "asap-explain-v1:physical:3b0bcd1ecf2921e3c361135bd0cfe1421fb4abda87064575ed19400f49da8839", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2337,11 +2337,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:42e68cbceacce410d62f9405d9dc9c3485471d59edb2a0bcf67cd683e9032d44", + "candidate_id": "asap-explain-v1:candidate:236f93f4ab302c2d89e6ec3aa784721ece289fe0882b26f732f0201d175c8da6", "logical_root_ids": [ - "asap-explain-v1:root:4b20fdab43b1b28fadbeed5d1d58f609993c459c9769a80886d78db928cdfd14" + "asap-explain-v1:root:9377634ea064bea3a66d6598cf85ef8648d59bc0473debae77b5958390104be7" ], - "physical_candidate_id": "asap-explain-v1:physical:bd687525dc05fa45d52099f28df85c7b5b15e87bbb3a1887397b69f82f070a27", + "physical_candidate_id": "asap-explain-v1:physical:2698a88757662eedbcdb11fc533b04c0a21db737017780610dc7a04cbf94ea68", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2349,11 +2349,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:63417654fd2c1b1936cfb56b52677bdb4a6ef2b97c99fe9cbeac03c1d6df1619", + "candidate_id": "asap-explain-v1:candidate:6519f699db797c537c5edafdda8639405bd4b1d7bb98a3c5fcda4fddb1e0250a", "logical_root_ids": [ - "asap-explain-v1:root:a02032b74a0effec8eeeb63dc4dbc66ca3996481ae5ae20c03b9be65f2a7b23d" + "asap-explain-v1:root:198743eeb4cf6ad3369e04e5e07dfd7570c71dadf47a32aef1ca714a46d0dcd5" ], - "physical_candidate_id": "asap-explain-v1:physical:d8b63986108649d560f37e4b4867e7d6ec6adbd9deac7b3371cc5353a2141472", + "physical_candidate_id": "asap-explain-v1:physical:8a753ff3af2fcc37552b5a22cce4593f0020f2ab26e3d428dd3635745da2e8da", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, @@ -2361,11 +2361,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a0aae2049eafee320e2782c2950e11fc7a23d5f7788792bace55bea4236cdf65", + "candidate_id": "asap-explain-v1:candidate:fe90af02ac3b4d9d72a09d1149e65649c459d17a6e45f2b16589fa8fde10cd57", "logical_root_ids": [ - "asap-explain-v1:root:49b1aa77f52b9227c0a5350e08c5b349f95db2a0744afffa402ed054ad6cbd3f" + "asap-explain-v1:root:6d5fa81380e4588417d6d892ec1f786499d644abbc6ea906446dac9db4a4fd26" ], - "physical_candidate_id": "asap-explain-v1:physical:733217656bc6b69deeb7917cb50421d814726e2da08aa7829a8eea4bbe6a9536", + "physical_candidate_id": "asap-explain-v1:physical:3d0c4c6add84c0a405cee8d0f297afb139e2e912d6742b9629e4894eacad2b4d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 7667691247138405742, @@ -2379,7 +2379,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], @@ -2395,7 +2395,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7b174562d9646710eb574d36a927d81143df6ed3b832d368c285bd28c82944bc", + "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2484,26 +2484,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:984d42c3f0e4a4395b903de903cbf36bdb65f794eb51bc99b699d81d512b3c15" + "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:88ae7a2ff7f2cdb0b04c0008d0a839a212c3d365a84f3aba08e94ab3bb87b435", + "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index b170d677a..c6e28e5ea 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -43,12 +43,12 @@ Costs below come from the controlled Level 1 fixture, not production measurement - quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `130.0` | `null` | -| 3 | `"unselected"` | `61000000000000.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:9377634ea064bea3a66d6598cf85ef8648d59bc0473debae77b5958390104be7"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:198743eeb4cf6ad3369e04e5e07dfd7570c71dadf47a32aef1ca714a46d0dcd5"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:6d5fa81380e4588417d6d892ec1f786499d644abbc6ea906446dac9db4a4fd26"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index 54ed23aa0..a9bbc01d2 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -1121,7 +1121,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2056,11 +2056,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:6a127a2c84314aa69af70cf98097c1ad74e5ac5befae7cd0a2e6dc310c9e3ecb", + "candidate_id": "asap-explain-v1:candidate:72d4b48034f12f7d866848c54d60ca468c704adec16dba5c774be1c50dc0404f", "logical_root_ids": [ - "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741" + "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313" ], - "physical_candidate_id": "asap-explain-v1:physical:c1a20352aa02a2ec52c235f8461494979d3a3d1e131d48b6887de35da9d3fe5a", + "physical_candidate_id": "asap-explain-v1:physical:a8bbfd343a6d21b494cb67a0d408c842e17fd747e658f15a826901882ffc826d", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2068,11 +2068,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:6b7f5f502c215bbe11af4533c99f4e852ea21085d856367e125102682fadd1aa", + "candidate_id": "asap-explain-v1:candidate:34174130c782d1b266606b4a2c0c0453d8c57aab6c94b9a09255a141fcbc5b57", "logical_root_ids": [ - "asap-explain-v1:root:66135fdc046799539bd7f756ef242a7a113f086da767e8b191b1cb8b8c4a53ec" + "asap-explain-v1:root:2935fd3a75baedb0549fea7dbe3d3933f76142da47a4a293caf2558aab6f4a62" ], - "physical_candidate_id": "asap-explain-v1:physical:fa10b69a810c41f778e2d78d12efd1524250127bbed7218a5c9045e9f43aa3a1", + "physical_candidate_id": "asap-explain-v1:physical:42a5a0486551be7f7802718d48a8fd677620e984837e20f582e9cefa6f1177a8", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2080,11 +2080,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:469a2fbc8564a43147110f5431263a10a95b925a7bc4bc171fadf7f01e5b9a3d", + "candidate_id": "asap-explain-v1:candidate:8499e91e1ea40815d606a432dd7e9839152edf9bdfb4ed5e8c8b9558ca16a051", "logical_root_ids": [ - "asap-explain-v1:root:b9652c0de28ab2862dacd2ef9c18f9e9e4028ccb15dadba68433a130dad4fa0c" + "asap-explain-v1:root:dcda374abb5ab2069d67f417b0d637df071f8df1a82813b3be18a768cef1e16f" ], - "physical_candidate_id": "asap-explain-v1:physical:d63c6edf80f683cc27b025e0dee277ed406c24cc055c131e34272501737c34e9", + "physical_candidate_id": "asap-explain-v1:physical:0cb9ffdb195c5cbb7f83a2b27c7b38f748aeb4ac5ae6b9fe7b88a650ac618b98", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, @@ -2092,11 +2092,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3f117c6a2e237331b17863a065caaaad73a323fd4d06ae19e050cd345e1f61d1", + "candidate_id": "asap-explain-v1:candidate:682ec622350cda5b143311a6d7ecbf20ffa108f7c54fbdda611a43afc11f506b", "logical_root_ids": [ - "asap-explain-v1:root:4ed6897fc26fc3fb16a9bc7dffaf82c8e96c9818da17a354f4bcece79d839b6c" + "asap-explain-v1:root:e482255fa6fa4b7a0fa48d597024c21bf0cf8e1978d5b27ff868cec7c501b9fe" ], - "physical_candidate_id": "asap-explain-v1:physical:eafeb143f456f8ffcf38bb581806be3963974e797c17588d7bc4ce78a0ef6989", + "physical_candidate_id": "asap-explain-v1:physical:e1116cc1f71a1410f3f841680dc9d7d86373910bd9a0240279414af7f25748a9", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 10907830462850005469, @@ -2110,7 +2110,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], @@ -2126,7 +2126,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36a0d67d1a9867a0c6694215e9cabe96f02360cd88a8c9f634104510cf0d4c63", + "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2191,26 +2191,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8f9d5ba23d8daf7c8bceace22dfb32573f4e3df0f5a4a6f9a34da32e60974f45" + "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:198854365982990c5f58a096fd4ac8f8d591f6cf145eb8b80894b77d4e9d8741", + "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index 283fe596c..1a7ab58ae 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -39,12 +39,12 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `130.0` | `null` | -| 3 | `"unselected"` | `122.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:2935fd3a75baedb0549fea7dbe3d3933f76142da47a4a293caf2558aab6f4a62"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:dcda374abb5ab2069d67f417b0d637df071f8df1a82813b3be18a768cef1e16f"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:e482255fa6fa4b7a0fa48d597024c21bf0cf8e1978d5b27ff868cec7c501b9fe"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index ee00353c1..012eadddf 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], @@ -684,207 +684,187 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" + "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" + "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", "query_index": 0 } ], "schema_version": 1 - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 2697027346875258477, - "selected_manifest": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "topk by (label_0) (3, data)", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } }, - "components": { - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": { - "implementation": { - "phase": "build", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": { - "implementation": { - "phase": "residency", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": { - "implementation": { - "phase": "retire", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": { - "implementation": { - "phase": "update", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false + "rule": "topk_membership_margin_certificate" } - }, - "unit": "horizon", - "multiplicity": 1.0 + ] }, - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "inputs": [], - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false + "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "readout": { - "kind": "snapshot" + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } } }, - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { "fields": [ { "dtype": { @@ -917,327 +897,1885 @@ ], "time_index": 0 } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null } - }, - "18446744073709551615": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false } ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "2": { - "Operator": { - "inputs": [ - 18446744073709551615 - ], - "operator": { - "inputs": [ + "name": "$promql_series_identity", + "nullable": false + }, { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } } - ], - "kind": { - "Limit": { - "groups": [ - 2 + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false ], - "n": 3, - "offset": 0 + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } } }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "Planner": { + "expression": { + "Column": 0 }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - ], - "time_index": 0 + } } - } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } } - }, - "roots": [ - 2 - ], - "version": 1 + } }, - "query": "topk by (label_0) (3, data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } } } }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": 2.0, - "query:compat-query-0:0": 60.0, - "result:compat-query-0": 60.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 2.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:2e8330c0806ce81c1b647def58612dcd7a4385683f0afdcec531b0c50a0582dc", - "logical_root_ids": [ - "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:8fa5210328f1e035c75217367caaa8d6a73422c4bd8c5505d6459b57134d3c5a", - "logical_root_ids": [ - "asap-explain-v1:root:4cc29743b3bb94cfe065fcf278ab3cdc123c112e8d16f6b9cf7fca545064cf56" - ], - "physical_candidate_id": "asap-explain-v1:physical:5614e4f0b316ccd7ed73d0c308cb394f3283acd63235c0ab49fa9e4f01ea88cc", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5538412219857372274, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:5c0901aab70db49ff20a0236f76515940f01f1905f3ae82f93defb03e5ce3d8e", - "logical_root_ids": [ - "asap-explain-v1:root:c835637dc5b10b6122f702799d94b14aef0af49da473458de6788bd46862002d" - ], - "physical_candidate_id": "asap-explain-v1:physical:3a44f6e106b3221aa8a2e0864d3df71dbc61d7c20b60087affe4b131a1306c84", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 2697027346875258477, - "total_cost": 130.0, - "unavailable_reason": null + "roots": [ + 6 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", - "query_index": 0 + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 2697027346875258477, + "selected_manifest": { + "plan_id": 2697027346875258477, + "plan_version": 1, + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "topk by (label_0) (3, data)", + "source": { + "TimeSeries": { + "metric": "data" + } + } } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:d1fb6ce69319906d0ecba39fa10c91521b2578e755241f1fc2df449571b44eb9" + "components": { + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": { + "implementation": { + "phase": "build", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:56c511761421b4738cc8e4889124c0e82ffb4e62403d6f2d68c1e1117f7a7722" + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": { + "implementation": { + "phase": "residency", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:fefd4546492e8b576aa41c6054095794989712b3f4b9a9cebe1bf7c52efadbb0" + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": { + "implementation": { + "phase": "retire", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:8b6b65e3ba94853ad8f5c681cfba1a0d755386474d3c4713179eaf94a2cdd0a4", - "query_index": 0 - } - ], - "schema_version": 1 + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": { + "implementation": { + "phase": "update", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 5000 + }, + "node": { + "inputs": [], + "op": "logical", + "operator": { + "kind": "current_series", + "population": { + "grouping": { + "labels": [ + "label_0" + ], + "without": false + }, + "history_retention_ms": 0, + "lookback_ms": 5000, + "matchers": [], + "max_bytes": 1073741824, + "max_input_lag_ms": 5000, + "max_k": 3, + "max_series": 100000, + "metric": "data", + "quantiles": false + }, + "readout": { + "kind": "snapshot" + } + } + }, + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "18446744073709551615": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "2": { + "Operator": { + "inputs": [ + 18446744073709551615 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 2 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, data)" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 0 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": 2.0, + "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": 2.0, + "query:compat-query-0:0": 60.0, + "result:compat-query-0": 60.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 2.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:candidate:df3b0bb8def4a9f917215d915b30d795673ed9317a20f36a29a5b2e095963bd0", + "logical_root_ids": [ + "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:04dd3837b02350b6386ca513ac7264af0827ac0e1e3ffdb5443fdb67aaf6e1c7", + "logical_root_ids": [ + "asap-explain-v1:root:6bcde9e7369ab7cd9b27c33a64182d767fe88c2af0d632733de19108b377f375" + ], + "physical_candidate_id": "asap-explain-v1:physical:e673be4e79f15fabc260655141c302d6a31a2195d0f19bac4d4534f9b8d8b2fd", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5538412219857372274, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:c194059bcc7c025a96e3685d7966450bcb4a67ea01e9aa4ab9557ad9a2e081c7", + "logical_root_ids": [ + "asap-explain-v1:root:1090e332041c96a28fe239565dad1a116f856886c584b1ba49d0aaf3dc02d3f0" + ], + "physical_candidate_id": "asap-explain-v1:physical:a990dbf8f92d084d74b1ca0cef50991f5012a338f44c0e938b2deb68c627513c", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 2697027346875258477, + "total_cost": 130.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:89d32e9674561d4a6fa2eea5f313634f7355a6cc3d4b60da57d1f89d631a13d9", + "logical_root_ids": [ + "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + } + ] + }, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "physical_dag": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 6 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 3568b8961..5031de854 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -62,12 +62,32 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"selected"` | `130.0` | `null` | +Logical root: `"asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43"`. + +top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) + +Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 2 | `[1]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | +| 3 | `[2]` | `{"KeyedReadout":{"k":100,"state":1}}` | +| 4 | `[3]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | +| 5 | `[4]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 6 | `[5]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[6]`. + + +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 1 | `["asap-explain-v1:root:6bcde9e7369ab7cd9b27c33a64182d767fe88c2af0d632733de19108b377f375"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:1090e332041c96a28fe239565dad1a116f856886c584b1ba49d0aaf3dc02d3f0"]` | `"selected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index 6bad7ebdc..f60fd6509 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -1208,7 +1208,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2150,11 +2150,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:c36ecf0af861b51039b977b1af3c13cf37cfd416d3f3488272aabaf17480cd29", + "candidate_id": "asap-explain-v1:candidate:176ede0a6b63660a2c2588dd9bd6c680fbc1572e7eaca3855ab5e1ec76468524", "logical_root_ids": [ - "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630" + "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7" ], - "physical_candidate_id": "asap-explain-v1:physical:735678078bb1f9a8761d4717487ffc16b2aad0dad608efaeff7f944bd4a0a0b6", + "physical_candidate_id": "asap-explain-v1:physical:ec8b6a7ddadbdbffb5fbe7518f517e9d2c3a0cd288c4a78070814194368467f5", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2162,11 +2162,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:4367a3c8554c98f085a7c2b14e068b318f27fa7d1c5bb3932a8b30bd997c7c22", + "candidate_id": "asap-explain-v1:candidate:b852d84482c33e1ff8d37522aa9849d2bcf3eb12037b21402438f02ef8a3826c", "logical_root_ids": [ - "asap-explain-v1:root:e5e0da1405c6bca9df68f0a6f00a4dc1f53c207f9a092cb1a3ba2272c8f797cd" + "asap-explain-v1:root:3d81ba5ec5c336a1c18e69c62e0ee52e108ce328016ef3ae3ff1ed3a550fc3bd" ], - "physical_candidate_id": "asap-explain-v1:physical:5d06eeaf07f7ce05c9ff60ce5c70507c950ee9647b6880b4cfc1f03d416d1bee", + "physical_candidate_id": "asap-explain-v1:physical:3d0009e4fa658fb05eed9f32c79fb5e138f029d5a23eb4543f72d3e1526c9836", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, @@ -2174,11 +2174,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a4d5c2efd1719c6fc118ff2ed5e183c578bb9dc402ea933750c659345bd1bae7", + "candidate_id": "asap-explain-v1:candidate:410e4bd0be322f0fdcc0a4786f11d8bb33fcea8c7f052e5571a3a00ed4cf1a2b", "logical_root_ids": [ - "asap-explain-v1:root:0e1f5bc0cdcb3cc8098f608a4f9464f8c44da9385188e5172f92b1f0c92f22a8" + "asap-explain-v1:root:6255bfbde517cfeb768cd858f05893bd0c849864f281889972454405b3902ddf" ], - "physical_candidate_id": "asap-explain-v1:physical:d4aec9dc1410dc16b2beb2103cffc1db62296e366109425fac545f6dbf6b1417", + "physical_candidate_id": "asap-explain-v1:physical:f17c063b020cef844f08c768483bca2dbea4cf4640951890c25976428d58e94a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 11545774673163874085, @@ -2192,7 +2192,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], @@ -2208,7 +2208,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:9e97085c5d652961e28a16e4518247408fc449ef869db16dc80aaaf8a819ab0d", + "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2297,26 +2297,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:eea622554301e16cc68a699004b18e89cda0b2115698c008cf3603b4ebeb414d" + "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b5b862aa5bee9b13179208c85fa65a0862b1260f501e4ea973a5f104a132e630", + "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index a32d60445..cc518de5d 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -43,11 +43,11 @@ Costs below come from the controlled Level 1 fixture, not production measurement - quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `61000000000000.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:3d81ba5ec5c336a1c18e69c62e0ee52e108ce328016ef3ae3ff1ed3a550fc3bd"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:6255bfbde517cfeb768cd858f05893bd0c849864f281889972454405b3902ddf"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) @@ -84,8 +84,8 @@ Stored output `3752266711358116078` → semantic definition `sds-v1:2fde0175b6e4 "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [] diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index 60e0fa487..37269158d 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -1037,7 +1037,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1888,11 +1888,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:ee83ed85fdf4a56dae3ee99c5707ddb3bdf238ebcee41438a45fd8fadceb8084", + "candidate_id": "asap-explain-v1:candidate:2ae3eec54e347515d5a9f170e47209c1e0d2e3c0660a15c3ccffc269f9a06fb1", "logical_root_ids": [ - "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404" + "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a" ], - "physical_candidate_id": "asap-explain-v1:physical:f355a738036778990294f7bcd6574560786116d25b3e66ac0e08e416d0276e0c", + "physical_candidate_id": "asap-explain-v1:physical:78e545aa3c28a3cd256f16ebf80da92667856ed5626a197bfb9b1df616dfe76c", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1900,11 +1900,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:d9d6d4f5892e160fa2b13a90bd46160164f91a6a5c711bd10bf09a08e7b3a834", + "candidate_id": "asap-explain-v1:candidate:4a913b04d3a2d3913ca117c5d574d273c99d6690dd940b8bbf31c969156ec35b", "logical_root_ids": [ - "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404" + "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a" ], - "physical_candidate_id": "asap-explain-v1:physical:019eeab0f62aecf607f10848fbae0847a18dde5febbdaec050d5ddf636de9784", + "physical_candidate_id": "asap-explain-v1:physical:ac804f17cd4e6f010afa52c3f545d9d3c1e145f0a59620053f0cac3c23b70eb7", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1912,11 +1912,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:e6b38a94f8a03895827d35d6b0cb58660e8db628934df2a429fea1ac7dbb407b", + "candidate_id": "asap-explain-v1:candidate:d3e06eae007fd2f8d3e6c571d2670fb5d0343c651c31b5bf24da4b27f586182d", "logical_root_ids": [ - "asap-explain-v1:root:7928fb21665390d4fa88b3ba3fe2dbb9f8575cfece073d59edcb960655e70cee" + "asap-explain-v1:root:b57aa9eb5bd61930e38fc2f3c21f49aeb395cbe91f890cd78e5866627585fb5d" ], - "physical_candidate_id": "asap-explain-v1:physical:f80a57d784c94352a27426459ed42b8594829d33d34c83ead2e32926d73263df", + "physical_candidate_id": "asap-explain-v1:physical:dca275793539777bde21f664dbe247c427ee467eb6b26a2e6800e538631f2913", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, @@ -1924,11 +1924,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ee41374191639fc922aa906c4e0fab7bc264d1e7b2572e12016191389d71c4cb", + "candidate_id": "asap-explain-v1:candidate:8f450dbc700449c476cff5b137687357aab46304b22cfd0cd858fe821afd5b80", "logical_root_ids": [ - "asap-explain-v1:root:b8bb8f4f68b8052126a3cd025153a34bc9fd38f64ba6040525d1449f78d41476" + "asap-explain-v1:root:22c795f951af3c2a58789de34483f339922cdb926b6425596028f6cf458bb0fa" ], - "physical_candidate_id": "asap-explain-v1:physical:2962f36fc577d0725c965c52a50333b84a263d13fb02ea5f9718e70c6119da4e", + "physical_candidate_id": "asap-explain-v1:physical:96d3f0e274007d14582f35d245ba1470f9ddbad40be7437ba307dad8baa12078", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3235857638904289352, @@ -1942,7 +1942,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], @@ -1958,7 +1958,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:fc4755fcc44fbe658e51d03df74d39d867b5aaaadc90cdd1e847b84a64626c0d", + "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2023,26 +2023,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:8cc81b1da93825d5f9e8e272c0a10182bc4a6be7f267154f9cb4b6d88ba37c67" + "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:31e448448346d0fad508170679351a4028e817567a8895b74c19e5a598be0404", + "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index 88e8a1d28..6b1839e01 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -39,12 +39,12 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `122.0` | `null` | -| 2 | `"unselected"` | `61000000000000.0` | `null` | -| 3 | `"unselected"` | `122.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a"]` | `"unselected"` | `122.0` | `null` | +| 2 | `["asap-explain-v1:root:b57aa9eb5bd61930e38fc2f3c21f49aeb395cbe91f890cd78e5866627585fb5d"]` | `"unselected"` | `61000000000000.0` | `null` | +| 3 | `["asap-explain-v1:root:22c795f951af3c2a58789de34483f339922cdb926b6425596028f6cf458bb0fa"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index d51ad8a4e..93f36cea0 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", + "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" + "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -1030,7 +1030,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1881,11 +1881,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:6ad8d1d65e32f0f7108a5dd37178b33fb50772062466d1f14e12277c02c6824b", + "candidate_id": "asap-explain-v1:candidate:74a8ff36533e91cf857751e32f0c797ff18ba3c4418bd4d0fc82cc13f411b562", "logical_root_ids": [ - "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7" + "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373" ], - "physical_candidate_id": "asap-explain-v1:physical:c9257b19922673a4018a05addb3093c192303c2318eafd369c6bfc616d130443", + "physical_candidate_id": "asap-explain-v1:physical:163fbf13819bf944d7ec6c3646ec5b9d4041d80b36cc26ce88cf233d6bc83914", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1893,11 +1893,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:1d6752200435647c7acc12d6698d728fef465909dc70c55e61bdffdf613e9db7", + "candidate_id": "asap-explain-v1:candidate:14667efe5bebdbaa76921ced9c0b1f64ba3d9e353fed798a2670cd6052229964", "logical_root_ids": [ - "asap-explain-v1:root:ec52f362e7da2859c410e06d4ba4282a1f290d632b5d355642f41aea445db705" + "asap-explain-v1:root:6f807235b84232925ad508c8c585c2e8c2be1f75ce9f1aca20c86b11cf100f6e" ], - "physical_candidate_id": "asap-explain-v1:physical:605c72a373d20d17d4d431b6072cc978fba0c485ddddd05046cc6c727665f82b", + "physical_candidate_id": "asap-explain-v1:physical:7abc377c6036e9692df559740b1872b72ee4924876b9c40d1aad0fab4134fc91", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, @@ -1905,11 +1905,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c82fb942a7cb4a9a5498ef095433fe251ed9ad3c6fac8779b9410526e1b7ea40", + "candidate_id": "asap-explain-v1:candidate:b12724e04f78c2adf91f62905edfa5ea5f3cf0f90472b145dd02806357131b88", "logical_root_ids": [ - "asap-explain-v1:root:ff7b199b011c887a5dcb8e1a3f02569f68ac15b6cf33afd6fd01cd223186ba83" + "asap-explain-v1:root:f0eae8f84fc9d14b63bbcece67194b5db2edc5f149fe7c52f557df238240a137" ], - "physical_candidate_id": "asap-explain-v1:physical:5ca05116c8367377adcd62f9eb7ed62bf83517dea9dd6af940167ad2c2c0ded1", + "physical_candidate_id": "asap-explain-v1:physical:d8f043089afa3e9869fff9d63f58f7252f0f61524d854d2c3e58350945810fac", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17637043547591721229, @@ -1923,7 +1923,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], @@ -1939,7 +1939,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:2f3c4e8f9f2aa0086c231255e812b52490dca1f89682ed1a5d578da2ceff2851", + "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2004,26 +2004,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:17f8a289ee7f479aa94da025bf452d25f874b0e0d19aa4e6fb984157e3e1f21f" + "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9410926acb9202f70cb805a0fdf52c8469cc2e71596c23cd61ab0457aa87796b" + "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8ca27e5eac480f8e2d3285ff8e1c5deff0d68949afd7332b1ca452233147c3ee" + "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:80e1c864dd956e45fa442088f69da94a3a092b301c519a2b83ccdcae323316a7", + "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index 5978556b9..3a0972001 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -39,11 +39,11 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `95.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `122.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:6f807235b84232925ad508c8c585c2e8c2be1f75ce9f1aca20c86b11cf100f6e"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:f0eae8f84fc9d14b63bbcece67194b5db2edc5f149fe7c52f557df238240a137"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index 408417620..10c597508 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1382,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -1398,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", + "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" + "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,26 +1534,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -1567,7 +1567,7 @@ "selected_manifest": { "plan_id": 14733843382488271694, "plan_version": 1, - "planner_revision": "a2bf21fd7c8e9eda344ff2fed7f9d8c66dd9b5ab", + "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2495,11 +2495,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:ef74bc33a88d6526a7a7d997e6a794ca7d74917d93e4fb26933333b6d66d211f", + "candidate_id": "asap-explain-v1:candidate:e2b335a2a3129c1f84f935828760faaab68180906d1ef57cb048df438444f54a", "logical_root_ids": [ - "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0" + "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d" ], - "physical_candidate_id": "asap-explain-v1:physical:97172bd8e2268e70626d8997f03755dc0d02296265c9f1b9271c50da90afdb50", + "physical_candidate_id": "asap-explain-v1:physical:0b5efaf0e5fb7de1dedf91de0086e7fa3116b357d364bb014302488e53f6ca8b", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14733843382488271694, @@ -2507,11 +2507,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3714757443a03b4eb0ded3a4400c15326fefd81d6663d7ece3725bdf78244fba", + "candidate_id": "asap-explain-v1:candidate:0e63876c51c892794259bec307d894155ac7fc712227f9b2b136a39d0a95f90e", "logical_root_ids": [ - "asap-explain-v1:root:c58a659a1bd3e41ce56250a57fa01c277c3b90e9ee56249916b22c7b3c6c2e9d" + "asap-explain-v1:root:85695f3e2398a8f92061778b3a0f9ad6470c7fd2fff67e1c223b1d09ced9b08e" ], - "physical_candidate_id": "asap-explain-v1:physical:56d5fefd58fb659b3c4f8cd09f2651d2fcbaee79744ee7be7a0d44f963fa2014", + "physical_candidate_id": "asap-explain-v1:physical:b415146366a96d3ea899a3d7ed1b8e05d7246e7805b9b20c1cfd7d5ee09fc7fa", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 15833270860732361489, @@ -2519,11 +2519,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c0fd0b0d5953632b7ee452e54544925c61b7bc3b3497aac31875f32290aaaf74", + "candidate_id": "asap-explain-v1:candidate:076cf2fc813075e7da666d97b143d0f480ceb94646477c9d5910025f14aeb242", "logical_root_ids": [ - "asap-explain-v1:root:65b7ee2557cf7d577373055b62916da6be8e95f46c97da128b809e25361f15f2" + "asap-explain-v1:root:e28a371ca7f0bf312bb0f9e26cd45ffc61f072e4c8441e7309f4a9e3830661fb" ], - "physical_candidate_id": "asap-explain-v1:physical:8ae425c11ff27e2f223d16a34882a2750345dd0f8462aa62ae84afff9c799033", + "physical_candidate_id": "asap-explain-v1:physical:94e26686325f55499a386d867ba414b2da8fd4f9d5e9d227b93f98ee6f4f8bf0", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5379663311087285901, @@ -2537,7 +2537,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], @@ -2553,7 +2553,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:58325459c0b5c3afd7a457c537051c8ebe6dd2a918443a2472913b26e2e2007f", + "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2618,13 +2618,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:10e5eeed5cc7b2b4ef844875ec7126eb009903ed07c1963c3ca66c11073644f9" + "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c1bd00a24b97ff3ae03c1c94b838378381e1670fa65e2d321aaa78c9f12bc9d6", + "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2689,26 +2689,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:466902b13e9749257667814533798cc9d7d8cb7be985bc3e417ab14559379b18" + "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:693b5ee47c5522fafaf694030611b6c41549550d84b21dcf83d044d1fa6f6a8b" + "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ecb546eb3c47bd97637e1d6babf17b12b1f85a2bbe0fc331dc0119d27dfcea9" + "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3cd135211aa0afd01c9717580bec3fe158b5cb953cdb4051485175b51f8864f0", + "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index 15169f351..5de355d6c 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -50,11 +50,11 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` -| Candidate | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | -| 0 | `"selected"` | `155.0` | `null` | -| 1 | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `"unselected"` | `242.0` | `null` | +| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | +| --- | --- | --- | --- | --- | +| 0 | `["asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d"]` | `"selected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:85695f3e2398a8f92061778b3a0f9ad6470c7fd2fff67e1c223b1d09ced9b08e"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:e28a371ca7f0bf312bb0f9e26cd45ffc61f072e4c8441e7309f4a9e3830661fb"]` | `"unselected"` | `242.0` | `null` | Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json) From c76fd8fcb650be3cf9b0f8039662cf2691c32580 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:40:16 +0000 Subject: [PATCH 28/80] feat: execute Planner Rate heap candidates over durable counter SDS --- Cargo.lock | 14 +- Cargo.toml | 12 +- control_plane/src/physical/compiler.rs | 87 +++++- control_plane/src/physical/plan_dot.rs | 3 + .../src/physical/workload_cost/automatic.rs | 9 +- control_plane/src/query_plan.rs | 1 + control_plane/tests/native_rate_topk.rs | 168 ++++++++++++ crates/asap_types/src/query_plan.rs | 13 +- crates/asap_types/src/query_plan/native.rs | 111 ++++++++ .../asap_query_engine/logical_dag.rs | 4 +- .../logical_dag/native_values.rs | 72 +++-- .../asap_query_engine/post_asap_readout.rs | 3 +- .../types/hot_reload_config.rs | 3 + .../asapquery_compatibility_process_e2e.rs | 3 + data_plane/tests/support/rate_heap_process.rs | 251 ++++++++++++++++++ .../evidence-dependent-candidates.md | 7 + .../catalog-physical-plan-runtime.md | 18 +- 17 files changed, 732 insertions(+), 47 deletions(-) create mode 100644 control_plane/tests/native_rate_topk.rs create mode 100644 data_plane/tests/support/rate_heap_process.rs diff --git a/Cargo.lock b/Cargo.lock index 4913b5488..3dd033406 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=3ebe195260fa6e16e226183ee50938078bb8359f#3ebe195260fa6e16e226183ee50938078bb8359f" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index aeb0dff27..efdbb69da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "3ebe195260fa6e16e226183ee50938078bb8359f" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 16fe06908..ea4428e1a 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -977,13 +977,21 @@ impl BackendLocalPlanningInput { &asap_aware_mapping::accuracy::EqualSplitAllocator, &evidence, ); - let proposed = - strategy.current_series_topk_candidates(&Rc::new(typed), &query.accuracy_target); + let typed = Rc::new(typed); + let mut proposed = + strategy.current_series_topk_candidates(&typed, &query.accuracy_target); + let direct = asap_aware_mapping::ReplacementStrategy::propose( + &strategy, + &asap_aware_mapping::TargetSubDAG::new(&typed), + ); + proposed.candidates.extend(direct.candidates); + proposed.rejected.extend(direct.rejected); for candidate in proposed.candidates { let asap_aware_mapping::Replacement::Summary(root) = candidate.replacement else { continue; }; - let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root); + let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root) + .or_else(|_| asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking(&root).map(|(_, program)| program)); match compiled { Ok(program) => { planner_selection_trace.push(serde_json::json!({ @@ -2102,8 +2110,65 @@ impl DeploymentPlanCompiler { } else { false }; - let mut entry = if let Some(operator) = - super::maintained_population::operator(&request, query)? + let native_rate = + asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking( + &query.selected_plan_root, + ) + .ok(); + let mut entry = if let Some((source, program)) = native_rate { + let mut entry = crate::query_plan::compile_bound_composable_mapped( + query.query_id.clone(), + canonical.clone(), + &source, + instant, + FallbackPolicy::ExactBackend, + binding, + |node, query_node| { + if let Some(id) = executable_dags[query_index] + .as_ref() + .and_then(|compiled| compiled.node_ids.node_id(node)) + { + query_node_bindings.insert((query_index, id), query_node); + } + }, + )?; + let root = crate::query_plan::QueryNodeId( + entry.nodes.keys().map(|id| id.0).max().unwrap_or(0) + 1, + ); + let sources = program + .input_contracts() + .map(|(id, _)| id) + .collect::>(); + if sources.len() != 1 { + return Err(CompileError::Snapshot( + "Rate physical candidate requires one source binding".into(), + )); + } + entry.nodes.insert( + root, + crate::query_plan::QueryPlanNode::Physical { + inputs: vec![entry.root], + source_nodes: sources, + max_bytes: request + .retained_summary_memory_budget_bytes + .unwrap_or(64 * 1024 * 1024), + }, + ); + entry.root = root; + entry.physical_dag = Some( + serde_json::from_slice( + &program + .encode() + .map_err(|e| CompileError::Snapshot(e.to_string()))?, + ) + .map_err(|e| CompileError::Snapshot(e.to_string()))?, + ); + entry.recover_vector_physical_dag()?; + if let Some(compiled) = &executable_dags[query_index] { + query_node_bindings.insert((query_index, compiled.dag.root), root); + } + Ok(entry) + } else if let Some(operator) = super::maintained_population::operator(&request, query)? { let root = crate::query_plan::QueryNodeId(0); let compiled = executable_dags[query_index] @@ -4215,7 +4280,17 @@ fn collect_selected_materializations( } let mut selected = Vec::new(); - walk(node, None, composable, None, &mut selected)?; + let physical_source = + asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking(node) + .ok() + .map(|(source, _)| source); + walk( + physical_source.as_ref().unwrap_or(node), + None, + composable, + None, + &mut selected, + )?; if composable { selected .retain(|state| !has_unsafe_raw_entity_leaf(node, &[Rc::clone(&state.node)], false)); diff --git a/control_plane/src/physical/plan_dot.rs b/control_plane/src/physical/plan_dot.rs index 715aacf7b..b39ea0288 100644 --- a/control_plane/src/physical/plan_dot.rs +++ b/control_plane/src/physical/plan_dot.rs @@ -139,6 +139,9 @@ fn escape(value: &str) -> String { fn query_node_label(node: &QueryPlanNode) -> String { match node { + QueryPlanNode::Physical { source_nodes, .. } => { + format!("Planner Physical DAG\nbound sources {source_nodes:?}") + } QueryPlanNode::RelationalJoin { .. } => "RelationalJoin".into(), QueryPlanNode::Relational { .. } => "Relational".into(), QueryPlanNode::Logical { operator, .. } => format!("Logical\n{}", residual_label(operator)), diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index ff4dd3182..8a600ace5 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -499,6 +499,11 @@ pub(super) fn estimate( let mut detail = json!({"input_rows":input_rows}); let mut network = 0.0; let cpu = match node { + Node::Physical { .. } => { + let (cpu, workspace) = snapshot_work(entry, input_rows)?; + detail = json!({"input_rows":input_rows,"physical_program":entry.physical_dag,"workspace_bytes_bound":workspace}); + cpu + } Node::ReadMaterialization { binding } => { let s = states .get(&binding.materialization.fingerprint()) @@ -650,7 +655,9 @@ pub(super) fn estimate( } else { BTreeSet::new() }; - let workspace_byte_seconds = if entry.population_snapshot().is_some() { + let workspace_byte_seconds = if matches!(node, Node::Physical { .. }) { + snapshot_work(entry, input_rows)?.1 * cpu * evaluations + } else if entry.population_snapshot().is_some() { snapshot_work(entry, cardinality)?.1 * cpu * evaluations } else { 0.0 diff --git a/control_plane/src/query_plan.rs b/control_plane/src/query_plan.rs index 003e7a5f9..282ab6bbf 100644 --- a/control_plane/src/query_plan.rs +++ b/control_plane/src/query_plan.rs @@ -178,6 +178,7 @@ where for (local, mut physical) in nodes { match &mut physical { QueryPlanNode::Logical { inputs, .. } + | QueryPlanNode::Physical { inputs, .. } | QueryPlanNode::SummaryMerge { inputs } | QueryPlanNode::ExternalExact { inputs, .. } => { for input in inputs { diff --git a/control_plane/tests/native_rate_topk.rs b/control_plane/tests/native_rate_topk.rs new file mode 100644 index 000000000..d1cbfb129 --- /dev/null +++ b/control_plane/tests/native_rate_topk.rs @@ -0,0 +1,168 @@ +//! Planner owns Rate ranking; Backend binds durable state and prices candidates. +use control_plane::physical::{ + compiler::{BackendLocalPlanningInput, DeploymentPlanCompiler}, + workload_cost::enumerate_exact_and_materialized_candidates, +}; +use serde_json::{json, Value}; + +fn fixture(certified: bool) -> BackendLocalPlanningInput { + let mut wire: Value = serde_json::from_str(include_str!( + "../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let query = "topk by (job) (1, rate(requests_total[1m]))"; + let mut entry = wire["query_workload"]["repeating_queries"][3].clone(); + entry["query"] = query.into(); + entry["requirements"]["accuracy"] = + json!({"explicit":{"EpsilonDelta":{"epsilon":0.1,"delta":0.1}}}); + wire["query_workload"]["repeating_queries"] = json!([entry]); + wire["implementation"]["topk_evidence"] = json!({}); + wire["implementation"]["data_snapshot_id"] = "snapshot-topk-test".into(); + if certified { + wire["implementation"]["accuracy_evidence"] = json!({query: { + "query_string": query, "data_snapshot_id":"snapshot-topk-test", + "data_workload": wire["data_workload"], "source":"enforced-fixture-contract", + "observed_at_unix_ms":9500, "valid_for_ms":60000, + "topk_max_distinct_items":1000, + "topk_selected_lower_bound":101.0, "topk_excluded_upper_bound":100.0, + "topk_interval_failure_probability":0.001 + }}); + } + serde_json::from_value(wire).unwrap() +} + +// An admitted Rate heap reads durable counter state; it must not become an +// external whole-query fallback or accumulate counter samples as heap weights. +#[test] +fn rate_heap_candidates_bind_durable_counter_windows() { + let (request, environment) = fixture(true).into_physical_compilation_request().unwrap(); + let mut families = std::collections::BTreeSet::new(); + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) else { + continue; + }; + let entry = plan.query_plan.entries.values().next().unwrap(); + let Some(program) = &entry.physical_dag else { + continue; + }; + for family in ["CmsWithHeap", "CountSketchWithHeap"] { + if program.to_string().contains(family) { + assert_eq!(entry.instant.lookback_ms, 60_000); + assert!(entry.nodes.values().any(|node| matches!( + node, + asap_types::query_plan::QueryPlanNode::ExactReadout { + readout: asap_types::query_plan::ExactReadout::Rate, + .. + } + ))); + assert_eq!(entry.materialization_bindings().len(), 1); + assert_eq!( + entry.materialization_bindings()[0].readout_lookback_ms, + Some(60_000) + ); + assert!(!plan.precompute_plan.materializations.is_empty()); + let mut restored: asap_types::query_plan::QueryPlanEntry = + serde_json::from_value(serde_json::to_value(entry).unwrap()).unwrap(); + restored.recover_vector_physical_dag().unwrap(); + restored.physical_dag = None; + assert!(restored.recover_vector_physical_dag().is_err()); + let mut drifted = entry.clone(); + if let asap_types::query_plan::QueryPlanNode::Physical { source_nodes, .. } = + drifted.nodes.get_mut(&drifted.root).unwrap() + { + source_nodes[0] += 100; + } + assert!(drifted.recover_vector_physical_dag().is_err()); + let mut wrong_window = entry.clone(); + wrong_window.instant.lookback_ms = 5_000; + assert!(wrong_window.recover_vector_physical_dag().is_err()); + families.insert(family); + } + } + } + assert_eq!( + families, + std::collections::BTreeSet::from(["CmsWithHeap", "CountSketchWithHeap"]) + ); +} + +// Scoped evidence is required even when a physical heap can be compiled. +#[test] +fn missing_rate_heap_proof_leaves_exact_candidate_available() { + let (request, environment) = fixture(false).into_physical_compilation_request().unwrap(); + let mut exact = false; + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + if let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) { + for entry in plan.query_plan.entries.values() { + if let Some(program) = &entry.physical_dag { + assert!(!program.to_string().contains("WithHeap")); + exact = true; + } + } + } + } + assert!(exact); +} + +// Provider costs may choose exact ranking, CMS or CountSketch over the same +// counter population; no family is selected before deployment costs exist. +#[test] +fn rate_heap_costs_can_select_each_compiled_candidate() { + use control_plane::physical::{ + compiler::{BACKEND_REVISION, PLANNER_REVISION}, + workload_cost::{manifest, WorkloadCostEvidence, WorkloadQuote}, + }; + for preferred in ["exact", "CmsWithHeap", "CountSketchWithHeap"] { + let mut input = fixture(true); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let quotes = enumerate_exact_and_materialized_candidates(request) + .unwrap() + .into_iter() + .filter_map(|candidate| { + let plan = DeploymentPlanCompiler + .compile_promql(candidate.clone(), environment.clone()) + .ok()?; + let entry = plan.query_plan.entries.values().next().unwrap(); + let program = entry + .physical_dag + .as_ref() + .map(ToString::to_string) + .unwrap_or_default(); + let preferred_plan = entry.physical_vector_binding().is_some() + && if preferred == "exact" { + !program.contains("WithHeap") + } else { + program.contains(preferred) + }; + let manifest = manifest(&plan, &candidate.queries).unwrap(); + Some(WorkloadQuote { + unit_costs: manifest + .components + .keys() + .map(|key| (key.clone(), if preferred_plan { 1.0 } else { 1e12 })) + .collect(), + manifest, + executable: true, + }) + }) + .collect(); + input.workload_cost_evidence = Some(WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "snapshot-topk-test".into(), + model_version: "controlled-rate-ranking-cost".into(), + observed_at_unix_ms: 10000, + valid_for_ms: 60000, + quotes, + }); + let plan = input.compile_promql().unwrap(); + let entry = plan.query_plan.entries.values().next().unwrap(); + assert!(entry.physical_vector_binding().is_some()); + let program = entry.physical_dag.as_ref().unwrap().to_string(); + if preferred == "exact" { + assert!(!program.contains("WithHeap")); + } else { + assert!(program.contains(preferred)); + } + } +} diff --git a/crates/asap_types/src/query_plan.rs b/crates/asap_types/src/query_plan.rs index bbf0ceb33..9fcda7c3e 100644 --- a/crates/asap_types/src/query_plan.rs +++ b/crates/asap_types/src/query_plan.rs @@ -395,7 +395,9 @@ impl QueryPlanEntry { self.query_id, self.root.0 ))); } - if self.population_snapshot().is_some() { + if self.physical_vector_binding().is_some() { + self.recover_vector_physical_dag()?; + } else if self.population_snapshot().is_some() { self.recover_population_physical_dag()?; } else if self.relation_output_schema()?.is_some() || self.physical_dag.is_some() { self.recover_relational_physical_dag()?; @@ -603,6 +605,14 @@ pub struct ExternalExactRequest { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(tag = "op", rename_all = "snake_case", deny_unknown_fields)] pub enum QueryPlanNode { + /// Bind deployment-provided vectors to the already compiled physical DAG. + /// Input positions correspond to `source_nodes`; operators live only in + /// QueryPlanEntry.physical_dag, never in this binding. + Physical { + inputs: Vec, + source_nodes: Vec, + max_bytes: u64, + }, RelationalJoin { inputs: [QueryNodeId; 2], join_kind: planner_types::pre_asap::JoinKind, @@ -672,6 +682,7 @@ impl QueryPlanNode { | Self::SummaryEstimate { input, .. } | Self::ExactReadout { input, .. } => std::slice::from_ref(input), Self::SummaryMerge { inputs } + | Self::Physical { inputs, .. } | Self::Logical { inputs, .. } | Self::ExternalExact { inputs, .. } => inputs, } diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs index da3637e0a..ecd2a414e 100644 --- a/crates/asap_types/src/query_plan/native.rs +++ b/crates/asap_types/src/query_plan/native.rs @@ -326,6 +326,117 @@ impl QueryPlanEntry { } } +impl QueryPlanEntry { + pub fn physical_vector_binding(&self) -> Option<(&[QueryNodeId], &[u64], u64)> { + match self.nodes.get(&self.root) { + Some(QueryPlanNode::Physical { + inputs, + source_nodes, + max_bytes, + }) => Some((inputs, source_nodes, *max_bytes)), + _ => None, + } + } + + /// The initial stored-vector adapter binds exact per-series counter reads. + /// Recovery validates source identities and schemas without logical lowering. + pub fn recover_vector_physical_dag(&self) -> Result { + let invalid = |message: &str| QueryPlanError::Invalid(message.into()); + let (inputs, source_nodes, max_bytes) = self + .physical_vector_binding() + .ok_or_else(|| invalid("missing physical vector binding"))?; + if max_bytes == 0 + || usize::try_from(max_bytes).is_err() + || inputs.is_empty() + || inputs.len() != source_nodes.len() + || source_nodes.iter().copied().collect::>().len() != source_nodes.len() + { + return Err(invalid("invalid physical vector source mapping or budget")); + } + for input in inputs { + let Some(QueryPlanNode::ExactReadout { + input: state, + readout: ExactReadout::Rate, + }) = self.nodes.get(input) + else { + return Err(invalid( + "physical vector requires an exact per-series Rate readout", + )); + }; + let Some(QueryPlanNode::ReadMaterialization { binding }) = self.nodes.get(state) else { + return Err(invalid( + "physical Rate input requires its installed stored output", + )); + }; + if binding + .readout_lookback_ms + .is_none_or(|window| window == 0 || window != self.instant.lookback_ms) + || !matches!(&binding.output_grouping, PhysicalGrouping::PerEntity) + { + return Err(invalid( + "physical Rate input must preserve every series and its window", + )); + } + } + let value = self + .physical_dag + .as_ref() + .ok_or_else(|| invalid("missing installed vector physical DAG"))?; + let dag = CompiledPhysicalDag::decode( + &serde_json::to_vec(value).map_err(|e| QueryPlanError::Invalid(e.to_string()))?, + ) + .map_err(|e| QueryPlanError::Invalid(e.to_string()))?; + if dag + .input_contracts() + .map(|(id, _)| id) + .collect::>() + != source_nodes.iter().copied().collect() + || dag.roots().len() != 1 + { + return Err(invalid( + "physical vector program differs from installed source mapping", + )); + } + use planner_types::{post_asap::SummaryFamilyType, pre_asap::DataType}; + let vector_schema = |schema: &SummarySchema| { + [ + ( + asap_physical_operators::physical_planner::promql_rows::SERIES_IDENTITY_COLUMN, + DataType::Utf8, + ), + ("value", DataType::Float64), + ] + .into_iter() + .all(|(name, dtype)| { + schema.fields.iter().any(|f| { + f.name == name + && f.dtype == SummaryFamilyType::Plain(dtype.clone()) + && !f.nullable + }) + }) && schema.time_index.is_some_and(|i| { + schema + .fields + .get(i) + .is_some_and(|f| f.dtype == SummaryFamilyType::Plain(DataType::Timestamp)) + }) + }; + if dag + .input_contracts() + .any(|(_, input)| !vector_schema(&input.schema)) + || !vector_schema( + &dag.output_contract(dag.roots()[0]) + .map_err(|e| QueryPlanError::Invalid(e.to_string()))? + .schema, + ) + { + return Err(invalid( + "physical vector program loses complete identity, timestamp or value", + )); + } + Ok(dag) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs index 06b9af019..6340553d2 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs @@ -96,13 +96,13 @@ pub(crate) fn execute_installed( where F: FnMut(QueryNodeId, u64) -> Result, { - if entry.population_snapshot().is_some() { + if entry.population_snapshot().is_some() || entry.physical_vector_binding().is_some() { if !leaves.is_empty() { return Err(miss( "population physical input must use its installed source binding", )); } - return native_values::execute_population(entry, at, callback); + return native_values::execute_vectors(entry, at, callback); } execute_values(entry, leaves, at, callback) } diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index c7471ea9e..2ca9cf2bd 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -130,7 +130,7 @@ pub(super) fn semi_join( output(values, result) } -pub(super) fn execute_population( +pub(super) fn execute_vectors( entry: &asap_types::query_plan::QueryPlanEntry, at: u64, mut callback: F, @@ -157,33 +157,63 @@ where }; use futures::{executor::block_on, StreamExt}; use std::collections::BTreeMap; - let program = entry - .recover_population_physical_dag() - .map_err(|error| miss(error.to_string()))?; - let (input_id, input) = program.input_contracts().next().unwrap(); + let (program, bindings, max_bytes) = + if let Some((inputs, source_nodes, budget)) = entry.physical_vector_binding() { + ( + entry + .recover_vector_physical_dag() + .map_err(|e| miss(e.to_string()))?, + source_nodes + .iter() + .copied() + .zip(inputs.iter().copied()) + .collect::>(), + budget, + ) + } else { + let program = entry + .recover_population_physical_dag() + .map_err(|e| miss(e.to_string()))?; + let source = program.input_contracts().next().unwrap().0; + ( + program, + BTreeMap::from([(source, entry.root)]), + entry.population_snapshot().unwrap().max_bytes, + ) + }; let at_signed = i64::try_from(at).map_err(|_| miss("evaluation timestamp overflow"))?; - let values = super::vector(super::from_result(callback(entry.root, at)?)?)?; - let rows = values - .into_iter() - .map(|(labels, value)| { - series_row(&input.schema, &labels, at_signed, value) - .map_err(|error| miss(error.to_string())) - }) - .collect::, _>>()?; - let batch = - Batch::try_new(input.schema.clone(), rows).map_err(|error| miss(error.to_string()))?; - let source = Operator::source(input.schema.clone(), vec![batch]) - .map_err(|error| miss(error.to_string()))?; + let mut sources = BTreeMap::new(); + let mut input_bytes = 0usize; + for (input_id, input) in program.input_contracts() { + let values = super::vector(super::from_result(callback(bindings[&input_id], at)?)?)?; + let rows = values + .into_iter() + .map(|(labels, value)| { + series_row(&input.schema, &labels, at_signed, value) + .map_err(|e| miss(e.to_string())) + }) + .collect::, _>>()?; + let batch = Batch::try_new(input.schema.clone(), rows).map_err(|e| miss(e.to_string()))?; + input_bytes = input_bytes + .checked_add(batch.bytes()) + .ok_or_else(|| miss("physical input size overflow"))?; + if input_bytes > max_bytes as usize { + return Err(miss("physical input exceeds run budget")); + } + let source = + Operator::source(input.schema.clone(), vec![batch]).map_err(|e| miss(e.to_string()))?; + sources.insert(input_id, Box::new(source) as Source<'_>); + } let graph = program - .instantiate(BTreeMap::from([(input_id, Box::new(source) as Source<'_>)])) - .map_err(|error| miss(error.to_string()))?; + .instantiate(sources) + .map_err(|e| miss(e.to_string()))?; let context = dag::RunContext::new( dag::Scope::Query { evaluation_time_ms: at_signed, revision: 0, }, dag::Limits { - max_bytes: entry.population_snapshot().unwrap().max_bytes as usize, + max_bytes: max_bytes as usize, ..dag::Limits::default() }, ) @@ -229,7 +259,7 @@ where Ok(( QueryResult::vector(values, at), super::ExecutionStats { - summary_readout_evaluations: 1, + summary_readout_evaluations: bindings.len(), ..Default::default() }, )) diff --git a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs index e4805b193..1511ed8c9 100644 --- a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs +++ b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs @@ -321,7 +321,8 @@ impl PhysicalQueryRuntime<'_> { item_labels: merged_item_labels.unwrap_or_default(), }) } - QueryPlanNode::Logical { .. } + QueryPlanNode::Physical { .. } + | QueryPlanNode::Logical { .. } | QueryPlanNode::Relational { .. } | QueryPlanNode::ExternalExact { .. } | QueryPlanNode::RelationalJoin { .. } => Err(PhysicalNodeError::Fallback( diff --git a/data_plane/src/storage_engines/types/hot_reload_config.rs b/data_plane/src/storage_engines/types/hot_reload_config.rs index 096d2f41e..a18216de4 100644 --- a/data_plane/src/storage_engines/types/hot_reload_config.rs +++ b/data_plane/src/storage_engines/types/hot_reload_config.rs @@ -80,6 +80,9 @@ impl RuntimePhysicalPlan { .map_err(|error| error.to_string())?; let mut program = entry.clone(); program.root = root; + // A bound readout is an input to the physical graph, not a second + // invocation of that graph. Keep only its storage/readout contract. + program.physical_dag = None; program.nodes = reachable .into_iter() .map(|id| (id, entry.nodes[&id].clone())) diff --git a/data_plane/tests/asapquery_compatibility_process_e2e.rs b/data_plane/tests/asapquery_compatibility_process_e2e.rs index a6322c8ef..e01a9bf95 100644 --- a/data_plane/tests/asapquery_compatibility_process_e2e.rs +++ b/data_plane/tests/asapquery_compatibility_process_e2e.rs @@ -1919,3 +1919,6 @@ mod univmon_erp_process; #[path = "support/spatial_heap_process.rs"] mod spatial_heap_process; + +#[path = "support/rate_heap_process.rs"] +mod rate_heap_process; diff --git a/data_plane/tests/support/rate_heap_process.rs b/data_plane/tests/support/rate_heap_process.rs new file mode 100644 index 000000000..4c023a1b2 --- /dev/null +++ b/data_plane/tests/support/rate_heap_process.rs @@ -0,0 +1,251 @@ +use super::*; +use control_plane::physical::{ + compiler::{ + BackendLocalPlanningInput, DeploymentPlanCompiler, BACKEND_REVISION, PLANNER_REVISION, + }, + workload_cost::{ + enumerate_exact_and_materialized_candidates, manifest, WorkloadCostEvidence, WorkloadQuote, + }, +}; + +// Real Remote Write -> persisted counter windows -> exact Rate -> Planner heap +// -> HTTP. Restart reads the same bound SDS and retained physical program. +#[tokio::test] +async fn rate_countsketch_heap_survives_counter_reset_and_durable_restart() { + run("CountSketchWithHeap").await; +} + +#[tokio::test] +async fn rate_cms_heap_survives_counter_reset_and_durable_restart() { + run("CmsWithHeap").await; +} + +async fn run(algorithm: &str) { + let query = "topk by (job) (1, rate(requests_total[1m]))"; + let mut wire: Value = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" + )) + .unwrap(); + let mut entry = wire["query_workload"]["repeating_queries"][3].clone(); + entry["query"] = query.into(); + entry["requirements"]["accuracy"] = + serde_json::json!({"explicit":{"EpsilonDelta":{"epsilon":0.1,"delta":0.1}}}); + entry["demand"]["fixed_interval_at"]["interval"] = 60_000.into(); + entry["demand"]["fixed_interval_at"]["evaluation_phase"] = 0.into(); + wire["query_workload"]["repeating_queries"] = serde_json::json!([entry]); + wire["implementation"]["topk_evidence"] = serde_json::json!({}); + wire["implementation"]["data_snapshot_id"] = "rate-heap-process".into(); + // Fixture rates: winner >=500, excluded rates <=10, at most three series. + wire["implementation"]["accuracy_evidence"] = serde_json::json!({query:{ + "query_string":query,"data_snapshot_id":"rate-heap-process", + "data_workload":wire["data_workload"],"source":"enforced-test-population", + "observed_at_unix_ms":9500,"valid_for_ms":60000,"topk_max_distinct_items":3, + "topk_selected_lower_bound":500.0,"topk_excluded_upper_bound":10.0, + "topk_interval_failure_probability":0.001 + }}); + let mut snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = snapshot + .clone() + .into_physical_compilation_request() + .unwrap(); + let mut saw_heap = false; + let quotes = enumerate_exact_and_materialized_candidates(request) + .unwrap() + .into_iter() + .filter_map(|candidate| { + let plan = DeploymentPlanCompiler + .compile_promql(candidate.clone(), environment.clone()) + .ok()?; + let heap = plan.query_plan.entries.values().any(|entry| { + entry + .physical_dag + .as_ref() + .is_some_and(|program| program.to_string().contains(algorithm)) + }); + saw_heap |= heap; + let manifest = manifest(&plan, &candidate.queries).unwrap(); + Some(WorkloadQuote { + unit_costs: manifest + .components + .keys() + .map(|key| (key.clone(), if heap { 1.0 } else { 1e12 })) + .collect(), + manifest, + executable: true, + }) + }) + .collect(); + assert!(saw_heap); + snapshot.workload_cost_evidence = Some(WorkloadCostEvidence { + backend_revision: BACKEND_REVISION.into(), + planner_revision: PLANNER_REVISION.into(), + data_snapshot_id: "rate-heap-process".into(), + model_version: "test-only-heap-selection".into(), + observed_at_unix_ms: 10000, + valid_for_ms: 60000, + quotes, + }); + let plan = snapshot.clone().compile_promql().unwrap(); + let entry = plan.query_plan.entries.values().next().unwrap(); + assert!(entry + .physical_dag + .as_ref() + .unwrap() + .to_string() + .contains(algorithm)); + entry.recover_vector_physical_dag().unwrap(); + assert_eq!(plan.precompute_plan.materializations.len(), 1); + + let install = data_plane::drivers::query::servers::http::PhysicalPlanInstallRequest { + summary_catalog: plan.summary_catalog, + collector_plans: plan.collector_plans, + precompute_plan: plan.precompute_plan, + transmission_plan: plan.transmission_plan, + query_plan: plan.query_plan, + storage_routing: None, + adaptation_evidence: vec![], + }; + let directory = tempfile::tempdir().unwrap(); + let artifact = directory.path().join("plan.json"); + let disk = directory.path().join("disk"); + std::fs::write(&artifact, serde_json::to_vec(&install).unwrap()).unwrap(); + let spawn = |port: u16| { + ChildGuard( + Command::new(env!("CARGO_BIN_EXE_data_plane")) + .arg("--physical-plan") + .arg(&artifact) + .args(["--http-port", &port.to_string(), "--output-dir"]) + .arg(directory.path()) + .arg("--enable-remote-write") + .arg("--persistence-enabled") + .arg("--persistence-dir") + .arg(&disk) + .args([ + "--persistence-memory-limit-mb", + "1", + "--persistence-hot-window-secs", + "1", + "--persistence-delete-older-than-secs", + "0", + "--persistence-seal-window-count", + "1", + "--persistence-flush-interval-ms", + "10", + "--precompute-allowed-lateness-ms", + "0", + "--precompute-flush-interval-ms", + "25", + ]) + .stdout(Stdio::null()) + .stderr(Stdio::inherit()) + .spawn() + .unwrap(), + ) + }; + let client = reqwest::Client::new(); + let mut expected = Vec::new(); + for restart in [false, true] { + let port = unused_port(); + let backend = format!("http://127.0.0.1:{port}"); + let mut child = spawn(port); + wait_until_ready(&client, &format!("{backend}/api/v1/health"), &mut child.0).await; + if !restart { + let request = WriteRequest { + timeseries: [ + ( + "a", + vec![ + (1000, 1000.), + (20000, 20000.), + (40000, 40000.), + (60000, 60000.), + (61000, 61000.), + (80000, 61000.), + (100000, 61000.), + (120000, 61000.), + ], + ), + ( + "b", + vec![ + (1000, 1.), + (20000, 20.), + (40000, 40.), + (60000, 60.), + (61000, 1000.), + (80000, 20000.), + (100000, 50.), + (120000, 20050.), + ], + ), + ( + "c", + vec![ + (1000, 0.1), + (20000, 2.), + (40000, 4.), + (60000, 6.), + (61000, 6.1), + (80000, 8.), + (100000, 10.), + (120000, 12.), + ], + ), + ] + .into_iter() + .map(|(id, samples)| { + series_with_labels( + "requests_total", + &[("job", "api"), ("unreferenced_instance", id)], + &samples, + ) + }) + .collect(), + }; + assert_eq!(remote_write(&client, &backend, &request).await, 204); + drain_precompute(&client, &backend).await; + } + for (index, (at, winner, score)) in [(60., "a", 1000.), (120., "b", 39050. / 59.)] + .into_iter() + .enumerate() + { + let body = wait_for_warm_instant( + &client, + &backend, + query, + at, + &directory.path().join("query_engine.log"), + ) + .await; + let rows = body["data"]["result"].as_array().unwrap(); + assert_eq!(rows.len(), 1, "{body}"); + assert_eq!(rows[0]["metric"]["unreferenced_instance"], winner, "{body}"); + let value = rows[0]["value"][1] + .as_str() + .unwrap() + .parse::() + .unwrap(); + assert!((value - score).abs() < 1e-8, "{body}, expected {score}"); + if restart { + assert_eq!(body["data"]["result"], expected[index]); + } else { + expected.push(body["data"]["result"].clone()); + } + } + let missing: Value = client + .get(format!("{backend}/api/v1/query")) + .query(&[("query", query), ("time", "180")]) + .send() + .await + .unwrap() + .json() + .await + .unwrap(); + assert!( + !is_warm(&missing), + "missing counter window was served as complete: {missing}" + ); + // The drained source cohort is durable before the first process exits. + assert!(disk.join("sketch_index/parts").is_dir()); + } +} diff --git a/docs/design_docs/evidence-dependent-candidates.md b/docs/design_docs/evidence-dependent-candidates.md index f7af388d3..0931f5f03 100644 --- a/docs/design_docs/evidence-dependent-candidates.md +++ b/docs/design_docs/evidence-dependent-candidates.md @@ -325,3 +325,10 @@ workload cardinality is insufficient. Missing evidence leaves the candidate visible but ineligible for installation. Cost model v2 prices the installed native operators and transient heap workspace. A complete provider quote can choose either candidate; neither is forced by operator name. + +Rate TopK follows the same admission and pricing boundary. Nonnegative finalized +counter rates admit CMS as well as CountSketch when the scoped accuracy evidence +is sufficient. Exact ranking remains available. The installed physical program +consumes the complete per-series Rate vector from bound counter SDS; Backend +quotes can select any of the three programs, and automatic costs charge the +actual native workspace. Operator support alone does not supply accuracy proof. diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 6c294488a..1c28eb6d2 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -56,8 +56,8 @@ an explicitly planned physical operation. The storage integration test covers durable per-series sums, native quantile state construction, publication, bound readout and restart of both the store and -resolver. The full PromQL physical-candidate handoff and Rate-to-heap storage -execution remain pending. This storage test does not establish those paths. +resolver. That test does not establish the full PromQL physical-candidate handoff or +precomputed heap publication. Bound frozen reads resolve the stored-output/group prefix through the persistent series resolver. Each cached part builds a sorted output/window index once on @@ -84,3 +84,17 @@ heap with Sort/Limit. The heap is rebuilt for each evaluation, so decreases, staleness and expiry do not accumulate historical weights. Automated real-process Remote Write/HTTP coverage verifies these changes with no exact-backend fallback. This is a query-time heap candidate; buffered Rate-to-heap persistence is separate. + +For `topk by (...) (..., rate(metric[1m]))`, Planner also compiles exact ranking, +CMS heap and CountSketch heap above the exact per-series Rate boundary. Backend +binds that input to the installed counter SDS. `QueryPlanNode::Physical` maps +source node IDs to deployment readouts and supplies the run budget; it contains +no second operator representation. Recovery requires the persisted physical +program, matching source IDs, complete identity and the same readout window. + +The process E2E tests ingest raw counters, publish durable counter windows, run +native ranking, restart the process and repeat both window queries. Both heap +families preserve hidden series labels, account for counter resets and rebuild +ranking independently for each window. Missing windows cannot serve a warm +result. This path stores counter state and builds the heap at query time; +publishing the heap itself during precompute requires a separate placement. From 34911e6fe9c93f989fb1ef9027df01592177e304 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:46:33 +0000 Subject: [PATCH 29/80] test: review native Rate ranking and both heap candidate admissions --- control_plane/tests/issue754_level1.rs | 209 ++++++++++-------- .../issue754-human-review/render.py | 13 +- 2 files changed, 128 insertions(+), 94 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index af64772b8..532bc439c 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -183,6 +183,74 @@ fn topk_rate_sort_contract_rejects_wrong_value_expression() { } } +fn assert_native_ranking(installed: &asap_types::query_plan::QueryPlanEntry) { + let physical = if installed.physical_vector_binding().is_some() { + installed.recover_vector_physical_dag().unwrap() + } else { + installed.recover_population_physical_dag().unwrap() + }; + let inputs = physical.input_contracts().collect::>(); + assert_eq!( + inputs.len(), + 1, + "spatial ranking binds one complete population" + ); + let input = &inputs[0].1.schema; + assert!(input + .fields + .iter() + .any(|field| field.name == "$promql_series_identity")); + let value_column = input + .fields + .iter() + .position(|field| field.name == "value") + .unwrap(); + let group_column = input + .fields + .iter() + .position(|field| field.name == "label_0") + .unwrap(); + let program: Value = serde_json::from_slice(&physical.encode().unwrap()).unwrap(); + let operations: Vec<_> = program["nodes"] + .as_object() + .unwrap() + .values() + .filter_map(|node| node.get("Operator")) + .collect(); + assert_eq!(operations.len(), 2); + let sort = operations + .iter() + .find(|node| node["operator"]["kind"].get("Sort").is_some()) + .unwrap(); + assert_eq!( + sort["operator"]["kind"]["Sort"]["keys"], + json!([{"column":value_column,"descending":true,"nulls_first":false}]) + ); + assert_eq!( + sort["operator"]["kind"]["Sort"]["groups"], + json!([group_column]) + ); + let limit = operations + .iter() + .find(|node| node["operator"]["kind"].get("Limit").is_some()) + .unwrap(); + assert_eq!( + limit["operator"]["kind"]["Limit"], + json!({"n":3,"offset":0,"groups":[group_column]}) + ); + assert_eq!(sort["inputs"], json!([inputs[0].0])); + let sort_id: u64 = program["nodes"] + .as_object() + .unwrap() + .iter() + .find(|(_, node)| node.get("Operator") == Some(*sort)) + .unwrap() + .0 + .parse() + .unwrap(); + assert_eq!(limit["inputs"], json!([sort_id])); +} + fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { if name == "topk-rate" { for dag in plan.query_plan.selected_dags.values() { @@ -246,67 +314,7 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option>(); - assert_eq!( - inputs.len(), - 1, - "spatial ranking binds one complete population" - ); - let input = &inputs[0].1.schema; - assert!(input - .fields - .iter() - .any(|field| field.name == "$promql_series_identity")); - let value_column = input - .fields - .iter() - .position(|field| field.name == "value") - .unwrap(); - let group_column = input - .fields - .iter() - .position(|field| field.name == "label_0") - .unwrap(); - let program: Value = serde_json::from_slice(&physical.encode().unwrap()).unwrap(); - let operations: Vec<_> = program["nodes"] - .as_object() - .unwrap() - .values() - .filter_map(|node| node.get("Operator")) - .collect(); - assert_eq!(operations.len(), 2); - let sort = operations - .iter() - .find(|node| node["operator"]["kind"].get("Sort").is_some()) - .unwrap(); - assert_eq!( - sort["operator"]["kind"]["Sort"]["keys"], - json!([{"column":value_column,"descending":true,"nulls_first":false}]) - ); - assert_eq!( - sort["operator"]["kind"]["Sort"]["groups"], - json!([group_column]) - ); - let limit = operations - .iter() - .find(|node| node["operator"]["kind"].get("Limit").is_some()) - .unwrap(); - assert_eq!( - limit["operator"]["kind"]["Limit"], - json!({"n":3,"offset":0,"groups":[group_column]}) - ); - assert_eq!(sort["inputs"], json!([inputs[0].0])); - let sort_id: u64 = program["nodes"] - .as_object() - .unwrap() - .iter() - .find(|(_, node)| node.get("Operator") == Some(*sort)) - .unwrap() - .0 - .parse() - .unwrap(); - assert_eq!(limit["inputs"], json!([sort_id])); + assert_native_ranking(installed); assert!( materializations.is_empty(), "{name}: current-series readout has no summary producer" @@ -349,6 +357,15 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Option &["CountSketchWithHeap"], + "topk-rate" => &["CmsWithHeap", "CountSketchWithHeap"], + _ => &[], + }; + let heap_roots = + heap_families .iter() - .find(|trace| { - trace["stage"] == "planner.physical_candidate" - && trace["physical_dag"] - .to_string() - .contains("CountSketchWithHeap") + .map(|family| { + let trace = request + .planner_selection_trace + .iter() + .find(|trace| { + trace["stage"] == "planner.physical_candidate" + && trace["physical_dag"].to_string().contains(family) + }) + .unwrap_or_else(|| { + panic!("{}: Planner must expose native {family}", case.name) + }); + let program = + asap_physical_operators::physical_planner::CompiledPhysicalDag::decode( + &serde_json::to_vec(&trace["physical_dag"]).unwrap(), + ) + .unwrap(); + assert_eq!(program.input_contracts().count(), 1); + let encoded = trace["physical_dag"].to_string(); + assert!( + encoded.contains("KeyedSummaryBuild") && encoded.contains("KeyedReadout") + ); + assert!(encoded.contains("$promql_series_identity")); + assert!( + !encoded.contains("CurrentSeries"), + "the bound source supplies this evaluation's vector" + ); + assert!(trace["guarantee"].to_string().contains("topk_max_distinct_items"), + "fixture lacks an enforced bound; cardinality estimates cannot certify a heap"); + trace["logical_root_id"].as_str().unwrap().to_owned() }) - .expect("Planner must expose a physical signed snapshot heap candidate"); - let program = asap_physical_operators::physical_planner::CompiledPhysicalDag::decode( - &serde_json::to_vec(&trace["physical_dag"]).unwrap(), - ) - .unwrap(); - assert_eq!(program.input_contracts().count(), 1); - let encoded = trace["physical_dag"].to_string(); - assert!(encoded.contains("KeyedSummaryBuild") && encoded.contains("KeyedReadout")); - assert!(encoded.contains("$promql_series_identity")); - assert!( - !encoded.contains("CurrentSeries"), - "the source already supplies an eligible snapshot" - ); - assert!(trace["guarantee"].to_string().contains("topk_max_distinct_items"), - "this fixture has no enforced distinct-item bound; do not invent one from estimated cardinality"); - Some(trace["logical_root_id"].as_str().unwrap().to_owned()) - } else { - None - }; + .collect::>(); let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let mut valid_plans = Vec::new(); let mut quotes = Vec::new(); @@ -744,7 +773,7 @@ fn issue754_queries_have_valid_physical_plans() { let selected = input .compile_promql() .unwrap_or_else(|error| panic!("{} selected plan failed: {error}", case.name)); - if let Some(root_id) = snapshot_heap_root { + for root_id in heap_roots { let report = selected.cost_comparison.as_ref().unwrap(); let heap = report .candidate_evaluations diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 8c589c1ab..44c3f5a86 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -92,7 +92,7 @@ def block(value): dependencies = [] payload = {'Input': node['Input']['properties']} fields = node['Input']['schema']['fields'] - name = 'Bound population snapshot' + name = 'Bound physical input' else: operator = node['Operator'] dependencies = operator['inputs'] @@ -175,9 +175,14 @@ def block(value): before pricing. The inherited `native_snapshot_topk` tests cover certified heap admission, cost-dependent selection and analytical workspace costing; a separate real-process test covers Remote Write and heap HTTP results. Signed samples do -not authorize CMS. Rate → heap storage E2E and the complete physical-candidate -handoff remain outstanding. Other PromQL paths still use the documented Backend -adapter representation. +not authorize CMS. Rate TopK also exposes native exact ranking, CMS and +CountSketch heaps above its bound per-series Rate readout. This fixture lacks +heap proof and records the rejection. Separate controlled tests select each +program through Backend costs; process E2E tests verify both heap families over +durable counter SDS, including reset, window changes and process restart. +Those paths build the heap at query time. Stored-heap precompute and the complete +physical-candidate handoff remain outstanding; other PromQL paths retain the +documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; From ff95a297907bfb053616a3deca04baafcb11e9e8 Mon Sep 17 00:00:00 2001 From: zz_y Date: Sun, 27 Sep 2026 23:48:08 +0000 Subject: [PATCH 30/80] docs: export native Rate plans and CMS CountSketch admission evidence --- .../issue754-human-review/README.md | 13 +- .../candidates/grouped-rate-0.json | 225 +- .../candidates/grouped-rate-1.json | 225 +- .../candidates/grouped-temporal-sum-0.json | 38 +- .../candidates/grouped-temporal-sum-1.json | 38 +- .../candidates/grouped-temporal-sum-3.json | 38 +- .../candidates/quantile-ratio-0.json | 34 +- .../candidates/quantile-ratio-1.json | 30 +- .../candidates/quantile-ratio-2.json | 30 +- .../candidates/spatial-quantile-0.json | 34 +- .../candidates/spatial-quantile-1.json | 30 +- .../candidates/spatial-quantile-2.json | 30 +- .../candidates/spatial-quantile-3.json | 30 +- .../candidates/spatial-sum-0.json | 24 +- .../candidates/spatial-sum-1.json | 24 +- .../candidates/spatial-sum-2.json | 24 +- .../candidates/spatial-sum-3.json | 24 +- .../candidates/spatial-topk-1.json | 20 +- .../candidates/spatial-topk-2.json | 20 +- .../candidates/temporal-quantile-0.json | 34 +- .../candidates/temporal-quantile-1.json | 30 +- .../candidates/temporal-quantile-2.json | 30 +- .../candidates/temporal-rate-0.json | 24 +- .../candidates/temporal-rate-1.json | 24 +- .../candidates/temporal-rate-2.json | 24 +- .../candidates/temporal-rate-3.json | 24 +- .../candidates/temporal-sum-0.json | 24 +- .../candidates/temporal-sum-1.json | 24 +- .../candidates/temporal-sum-2.json | 24 +- .../candidates/topk-rate-0.json | 1821 ++++- .../candidates/topk-rate-1.json | 1821 ++++- .../candidates/topk-rate-2.json | 1821 ++++- .../candidates/topk-rate-3.dot | 23 + .../candidates/topk-rate-3.json | 3741 +++++++++ .../issue754-human-review/grouped-rate.json | 474 +- .../issue754-human-review/grouped-rate.md | 22 +- .../grouped-temporal-sum.json | 94 +- .../grouped-temporal-sum.md | 28 +- .../issue754-human-review/quantile-ratio.json | 74 +- .../issue754-human-review/quantile-ratio.md | 6 +- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 84 +- .../issue754-human-review/spatial-quantile.md | 32 +- .../issue754-human-review/spatial-sum.json | 68 +- .../issue754-human-review/spatial-sum.md | 18 +- .../issue754-human-review/spatial-topk.json | 56 +- .../issue754-human-review/spatial-topk.md | 12 +- .../temporal-quantile.json | 74 +- .../temporal-quantile.md | 26 +- .../issue754-human-review/temporal-rate.json | 68 +- .../issue754-human-review/temporal-rate.md | 18 +- .../issue754-human-review/temporal-sum.json | 62 +- .../issue754-human-review/temporal-sum.md | 16 +- .../issue754-human-review/topk-rate.dot | 12 +- .../issue754-human-review/topk-rate.json | 7099 ++++++++++++++--- .../issue754-human-review/topk-rate.md | 375 +- 56 files changed, 17310 insertions(+), 1830 deletions(-) create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-3.json diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 1b6af1e56..7a921d73f 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -5,7 +5,7 @@ recorded. Selected plans and successfully compiled candidate plans are retained as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`3ebe195260fa6e16e226183ee50938078bb8359f`. +`c899084019580eac55e6502eb641d42e748c6ff2`. ## Current implementation boundary @@ -19,9 +19,14 @@ bound or score-separation proof, so its heap candidate is explicitly rejected before pricing. The inherited `native_snapshot_topk` tests cover certified heap admission, cost-dependent selection and analytical workspace costing; a separate real-process test covers Remote Write and heap HTTP results. Signed samples do -not authorize CMS. Rate → heap storage E2E and the complete physical-candidate -handoff remain outstanding. Other PromQL paths still use the documented Backend -adapter representation. +not authorize CMS. Rate TopK also exposes native exact ranking, CMS and +CountSketch heaps above its bound per-series Rate readout. This fixture lacks +heap proof and records the rejection. Separate controlled tests select each +program through Backend costs; process E2E tests verify both heap families over +durable counter SDS, including reset, window changes and process restart. +Those paths build the heap at query time. Stored-heap precompute and the complete +physical-candidate handoff remain outstanding; other PromQL paths retain the +documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index 716a3ea88..238383c89 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", + "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" + "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,30 +1418,233 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index 693e86240..83e735760 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", + "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +216,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" + "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,30 +287,233 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index e9b6c63a4..cf5c2e9de 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", + "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", + "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", + "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" + "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", + "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,30 +1271,42 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" + "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index 49daa4185..bae4fa7e0 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", + "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +188,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", + "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +211,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", + "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +302,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" + "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", + "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,30 +373,42 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" + "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index c7feee3f3..140970587 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -661,7 +661,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1238,7 +1238,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], @@ -1254,7 +1254,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", + "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1317,7 +1317,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", + "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,7 +1340,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", + "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1431,13 +1431,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" + "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", + "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1502,30 +1502,42 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" + "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index fe5addb08..6e0b5953d 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.0049751243781094535 }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", + "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" + "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", + "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" + "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index e60032e4e..72f785c9a 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", + "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" + "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", + "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" + "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index fcd7bb1fa..a13ebd242 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", + "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" + "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", + "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" + "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index 7377ee334..ebc1c6061 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -439,8 +439,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [ @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,30 +1266,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index c25f15f5e..01ed75fcc 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,30 +214,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index c9ec3fbf3..c793ea532 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +435,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -451,7 +451,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -540,30 +540,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index e801ca7fd..cf12a7bc5 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,30 +214,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index 7966735f5..a5d964e6b 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,30 +1088,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index 3d1505a7e..71b6677ae 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,30 +190,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index a2c3e9155..d4d0f1262 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +430,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -446,7 +446,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,30 +511,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index 202191b36..0bb4f2aa1 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,30 +194,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index f241762e7..0a087713e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -126,33 +126,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" + "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" + "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -255,7 +255,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index 9e72ff5f9..5614d221e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" + "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" + "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 93990ad75..5f545fdfa 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "alpha": 0.01, - "promql_right_closed": true + "promql_right_closed": true, + "alpha": 0.01 }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,30 +1175,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index 275b86170..e11fabec5 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,30 +214,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index 319a02302..e2fc3ca36 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,30 +214,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index a9e661021..76216a197 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,30 +999,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index 33d0ae1ac..98356f1ec 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,30 +194,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index cf0997427..ecc8e3172 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,30 +190,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index e8d0e1648..0962bdcca 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,30 +194,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index 52dc7296a..618bc955f 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", + "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,30 +997,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" + "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index 5825d728d..d3087c0b0 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", + "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,30 +190,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" + "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index 2ecd24de6..99f4aa608 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", + "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,30 +194,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" + "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index 9eaaf99b7..4fda03f32 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1382,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], @@ -1398,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,30 +1534,1829 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index d732fa4d7..410cb520c 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +190,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,30 +261,1829 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index 8bfde5e7d..ec3d5d416 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +146,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], @@ -162,7 +162,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +227,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,30 +298,1829 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot new file mode 100644 index 000000000..b386aa519 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot @@ -0,0 +1,23 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="ExactReadout\nRate"]; + query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; + query_0_1 -> query_0_0; + query_0_0 -> query_0_2; + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json new file mode 100644 index 000000000..c37560147 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json @@ -0,0 +1,3741 @@ +{ + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + }, + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 4, + "query_plan_sink": 2, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + }, + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Sort": { + "keys": [ + { + "ascending": false, + "expr": { + "Column": 1 + }, + "nulls_first": false + } + ], + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": { + "Limit": { + "n": 3, + "offset": 0, + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 2, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "2": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 2 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index 540f606a2..e396e2448 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", + "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" + "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,30 +1418,233 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ], "materialization_search_coverage": null, @@ -1451,7 +1654,7 @@ "selected_manifest": { "plan_id": 5849823772717530049, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2348,11 +2551,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:e24adf1285fa1eed56de7020722b27b0418799447cfcdb3ba5132694dcc72a8c", + "candidate_id": "asap-explain-v1:candidate:3718a7e2a1544b477121a55806c73ee63eb1e442830c7eb3367b3a109a546227", "logical_root_ids": [ - "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1" + "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e" ], - "physical_candidate_id": "asap-explain-v1:physical:bb3f21ec7602196b32695c2b69a8f9ac184cb26d6151526e1ca6ce7bffaf1df5", + "physical_candidate_id": "asap-explain-v1:physical:ae980097f1789f8487b28a9b0ce000185a6b05fecada45d05db4a332fa9e4244", "identity_unavailable_reason": null, "status": "selected", "plan_id": 5849823772717530049, @@ -2360,11 +2563,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:23dc04e12c02d4d5c5af6f0756e9fe5bb8c3c789908ba5d4eb756b5ddc9d359a", + "candidate_id": "asap-explain-v1:candidate:414d6d77f493a2a81249d218e958effb13353e1149037897237b89fe00c0c319", "logical_root_ids": [ - "asap-explain-v1:root:4f1a460e06820b58ecb3eba688270ec13eb5a8490e30d797b6e6792e02b0eb7b" + "asap-explain-v1:root:643999c2c793eda9409a53042cc0ff84502915e9de4dc74029bf589e91917ff7" ], - "physical_candidate_id": "asap-explain-v1:physical:b8fbcdeca76f58bf9cf8fbde0302c30be58ffd1ada10166cadd7935dd9a10e57", + "physical_candidate_id": "asap-explain-v1:physical:76a4622a585ca0ccd17946c02495577e572f8b3a64e81ca3d755218f6e61a032", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 741363842036532054, @@ -2372,9 +2575,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:184cfd0174f1cf55343c3795a046d1277724343956ff51441b696b24b998941f", + "candidate_id": "asap-explain-v1:candidate:ffa1323190a37c95efb5003f459f24aca1a1d083fdfd62ca9d5807a64b26b641", "logical_root_ids": [ - "asap-explain-v1:root:72da058ea30881ecb59998b94e12f7eec58af16de26d7d41ee8aa00bf93584e3" + "asap-explain-v1:root:81569c887cc72d5c00aafe4f5a9840b55e15409c4224e7e879ce7d698bb0a4d1" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2382,6 +2585,18 @@ "plan_id": null, "total_cost": null, "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:d2adaff120545a16d31914a922ee361b04725aadd13802def83f4a984fa08b37", + "logical_root_ids": [ + "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical vector program loses complete identity, timestamp or value" } ] }, @@ -2390,7 +2605,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], @@ -2406,7 +2621,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d185439a78f10a49c6af7932dfc5ed5c34b4a27bd73c6204f467b66e5f5954d5", + "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2497,13 +2712,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:547f0861c5bad93b7c695eda215a119852e44f66548340d5aa2c786dca3b1572" + "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2568,30 +2783,233 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1", + "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", "query_index": 0 } ], "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index ba9e6b712..d9a8f190a 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -44,12 +44,28 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851"`. + +Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies) + +Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | + +Roots: `[3]`. + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:f64d455c779dbeffa3b3791fa9f36aa53ff23ca87cbedcec85cd8f15514c79d1"]` | `"selected"` | `125.0` | `null` | -| 1 | `["asap-explain-v1:root:4f1a460e06820b58ecb3eba688270ec13eb5a8490e30d797b6e6792e02b0eb7b"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:72da058ea30881ecb59998b94e12f7eec58af16de26d7d41ee8aa00bf93584e3"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 0 | `["asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e"]` | `"selected"` | `125.0` | `null` | +| 1 | `["asap-explain-v1:root:643999c2c793eda9409a53042cc0ff84502915e9de4dc74029bf589e91917ff7"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:81569c887cc72d5c00aafe4f5a9840b55e15409c4224e7e879ce7d698bb0a4d1"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: physical vector program loses complete identity, timestamp or value"` | Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json) diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index f39e0753f..1a8ecae70 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", + "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", + "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", + "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" + "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", + "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,30 +1271,42 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" + "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1304,7 +1316,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2242,11 +2254,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:bcdbc3b637b8f444ff07ff4c6755cadf52cb8960d7f0a757c64f735a681f023a", + "candidate_id": "asap-explain-v1:candidate:14951da54456478c984263a34dbffdaf7907bbd5bacd5568378172f3965eddbe", "logical_root_ids": [ - "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b" + "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c" ], - "physical_candidate_id": "asap-explain-v1:physical:92098dbf5e86e905d02cb8932aad992c4fa15eb757823ee484541f25d15a159d", + "physical_candidate_id": "asap-explain-v1:physical:b83b200ba5c149687af42f542c2e941f0d061df12fb6307babdc3379169a2f14", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2254,11 +2266,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:39bac75e1666f80961c267f440db330ddd5e540b1eec3369466171877adfe0aa", + "candidate_id": "asap-explain-v1:candidate:4497bbad849b9cb96c96821a00349b9faef6c625c9e391ac0ee9cea9781a59cb", "logical_root_ids": [ - "asap-explain-v1:root:ec68700333a360fe95b44ffe857bff4ddb5edd7a68e5c6e6739fd46598318ffd" + "asap-explain-v1:root:bb5e147f97964e9682b5a4f4cbc408bff8def6352684f3d8a409a93bcb43af41" ], - "physical_candidate_id": "asap-explain-v1:physical:94827ee547e549273683ae292afa22147bd622e063685fd8decd46178c02e0f7", + "physical_candidate_id": "asap-explain-v1:physical:e1869466bdab79f2863abecbe8424d2200be28b35744b52aee9c267146bc2e30", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, @@ -2266,9 +2278,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ff64d5acbac251e3bf1bf0f13c1b756a4ae7dc3bd300f98aba99a343038e415f", + "candidate_id": "asap-explain-v1:candidate:c549a99ed4e979f440c32a2acb0316723bc56ca20e8f5aaaeac84feda0c4e387", "logical_root_ids": [ - "asap-explain-v1:root:677c17ebaa3903cdf54856f869cf13e5d3b347f6793c243f5537ce6474b80741" + "asap-explain-v1:root:d4790d6fa34e8c3a9f8880f785ad17b1b33bb6b11fb3cac6b491e7e88407c1ab" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2278,11 +2290,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:7bcef65f6c4034c216aee7d4ec18b8b08485a99d825b1dedf427610424043d66", + "candidate_id": "asap-explain-v1:candidate:3569d6731908cf822ae7faaa71a5aa3558c53748f82e58bd82f321fc3830a3e3", "logical_root_ids": [ - "asap-explain-v1:root:b7c61d6400b48010b50be44a67267fba78022d774c798351e28de3af7fed5319" + "asap-explain-v1:root:1e5ddc1f0dbddbf7c2e03528cc8d8651f5373f981dfbf13a38df07e54a91ad7a" ], - "physical_candidate_id": "asap-explain-v1:physical:c89e9c40f5153391caacab6f5626d821db9065de6b5523a17864f2f5bb98f909", + "physical_candidate_id": "asap-explain-v1:physical:b63b09506e2cf674408ae0fb8335fba87881679444c5a03bea3d21528a1fcea9", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3225737927651639557, @@ -2296,7 +2308,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], @@ -2312,7 +2324,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dc54c70b74bfa48a0ffc53df2e694293d88dde6bf96e71d4aef3dad1e0c66b2c", + "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2375,7 +2387,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e216099323c14a1947a76bf4ce53d062f10a4c85c73587ef7c4a21cc80b05bd5", + "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2398,7 +2410,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6d8c61840cf7ed33561a05716e4e14b646cedb8ce7c431820cb067059d29b402", + "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2489,13 +2501,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:4a605f315ec9077d6824ad03106609f82dab07a3ba3e97d07694286e81696c5b" + "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:38354005018322504276aaaae46c809e795fb27e6973ad1ef43fcf4d37563668", + "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2560,30 +2572,42 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:54d5df300b7567f77a5e56e8b2cf194edeb80d3fcb578fb7eeaf83e7c3fe9d46" + "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b", + "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index cd5e41db7..f8c1e004c 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -38,13 +38,33 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:6c8189cd0edd95b27e17aea6db55caf7e65a74df9fdab82440e45423cfff8f7b"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:ec68700333a360fe95b44ffe857bff4ddb5edd7a68e5c6e6739fd46598318ffd"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:677c17ebaa3903cdf54856f869cf13e5d3b347f6793c243f5537ce6474b80741"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:b7c61d6400b48010b50be44a67267fba78022d774c798351e28de3af7fed5319"]` | `"unselected"` | `125.0` | `null` | +| 0 | `["asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:bb5e147f97964e9682b5a4f4cbc408bff8def6352684f3d8a409a93bcb43af41"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:d4790d6fa34e8c3a9f8880f785ad17b1b33bb6b11fb3cac6b491e7e88407c1ab"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:1e5ddc1f0dbddbf7c2e03528cc8d8651f5373f981dfbf13a38df07e54a91ad7a"]` | `"unselected"` | `125.0` | `null` | Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index 5eb49133e..8ec912cbf 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", + "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" + "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", + "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" + "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -1934,7 +1934,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2920,11 +2920,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:c6a2b009d2c1aa37345f7c481c0ffbb3f89014e6004dea59d93f0e70bdf8827c", + "candidate_id": "asap-explain-v1:candidate:b2508b20d07bf2406e5e186377ff55fdf39460c69f40b5819f42dd87e65b3dbd", "logical_root_ids": [ - "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b" + "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab" ], - "physical_candidate_id": "asap-explain-v1:physical:fe80af1b8e6881d4f62f517282a46faf75abeb554e32e65c9fd5fb0eea149753", + "physical_candidate_id": "asap-explain-v1:physical:4f6afdcaa21c824ea853887b087599b285582ecfd5e75c2b3779eead71667ae5", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2932,11 +2932,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:5438e08f906e008686fb177ce958d7cdf42300c28374d2133b0106ecce782cc9", + "candidate_id": "asap-explain-v1:candidate:29e8f1781d89b958a960072e765e1db2c3b1889cfa4c178a5057e7c75527d9b2", "logical_root_ids": [ - "asap-explain-v1:root:23c3df7787dc24dff3251071956d7d703b06c8e7291d420679fdbc7045aa4b8e" + "asap-explain-v1:root:f122297d88d6220bee67ca1f56a1f559ce1c2149a3e304ac8b3f86b4c9e54efb" ], - "physical_candidate_id": "asap-explain-v1:physical:32bf3e01616d42054a60a40da3a65127e293100a900f074e00e03527f0c14dde", + "physical_candidate_id": "asap-explain-v1:physical:319ec2bd9419c6036c67a98a552b6a62802d81d009bb2312881a5d2d6e834381", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, @@ -2944,11 +2944,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:829279ee5efce3964bfb5c91056c064b60aff45617e0f7f4d73fe205f2c5c88d", + "candidate_id": "asap-explain-v1:candidate:bf15c64e9362f4491837e0a8a04edb8bf4fbb8791c03ebd6664f1c89641c35bb", "logical_root_ids": [ - "asap-explain-v1:root:ddd37e37de447338654e5b71ea256bbf69beda84ae8734a7f9650d801eade1f6" + "asap-explain-v1:root:4d0e6951ae09283c4de99b5818cd2c54e4924dd51371863645c52b82e1fca0ce" ], - "physical_candidate_id": "asap-explain-v1:physical:6c45827509fe64a58cb12d17bcb506215f8431f355552c963023b50e964209bc", + "physical_candidate_id": "asap-explain-v1:physical:24e1dae5e4c8cf6d534ae819af2bc604fbb7f60cff8ff6240474adb08585be57", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 12971657221408630864, @@ -2969,7 +2969,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], @@ -2985,7 +2985,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:00fcb53b7ff927170ecc368b82ad3dbad4ee3680f90029be9b2f308eaa821a34", + "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3176,13 +3176,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:3e7c2f3e0a4a6a327850cce9ee6677f2de6c11e5f3b2ed2f237f7f4ce4a22ebe" + "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3271,27 +3271,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:30cc68ee647d5906b6705398d09b4650ad4d6c1fa0a651906ab5121f0f2d8ebe", + "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3380,26 +3380,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:ecaf55f908961456bcb126cc9d7affa94104812b7caf11b1e12779b61b50bb15" + "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b", + "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index 8b5cfe6bd..8ffb3578c 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -53,9 +53,9 @@ Costs below come from the controlled Level 1 fixture, not production measurement | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:3940fdbb710d2157fa1442d60a27e84ed9ea6ac3468bf9b4632b5a86bffec77b"]` | `"selected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:23c3df7787dc24dff3251071956d7d703b06c8e7291d420679fdbc7045aa4b8e"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:ddd37e37de447338654e5b71ea256bbf69beda84ae8734a7f9650d801eade1f6"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab"]` | `"selected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:f122297d88d6220bee67ca1f56a1f559ce1c2149a3e304ac8b3f86b4c9e54efb"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:4d0e6951ae09283c4de99b5818cd2c54e4924dd51371863645c52b82e1fca0ce"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 2f15fd64d..be092b02b 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -b1ec716c3af5d4d16ded288c15a4e6146b82868b +34911e6fe9c93f989fb1ef9027df01592177e304 diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index 3953433a4..7602611af 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -439,8 +439,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [ @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,30 +1266,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1299,7 +1311,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2325,11 +2337,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:a40f559bea163720eca835b0c4f3d659d99be6cb0036175f64b3a37c14175959", + "candidate_id": "asap-explain-v1:candidate:d5ac8c7929d00364bade77119a253928f380157c5d8ebc83876921349a509b58", "logical_root_ids": [ - "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0" + "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73" ], - "physical_candidate_id": "asap-explain-v1:physical:3b0bcd1ecf2921e3c361135bd0cfe1421fb4abda87064575ed19400f49da8839", + "physical_candidate_id": "asap-explain-v1:physical:4b012e7a9199b8b6dea868a87a5e571dcb4b2b35c6069e2f8811a22146aeae14", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2337,11 +2349,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:236f93f4ab302c2d89e6ec3aa784721ece289fe0882b26f732f0201d175c8da6", + "candidate_id": "asap-explain-v1:candidate:59bb7cafd9b57c5707210f0f3c9fe49d13430269c7dc0880626e2c1e2cf2a68c", "logical_root_ids": [ - "asap-explain-v1:root:9377634ea064bea3a66d6598cf85ef8648d59bc0473debae77b5958390104be7" + "asap-explain-v1:root:77eedd0c83f98c91c83589e77f3cd1f7d40f8090794d32ff94518e0da2a03af8" ], - "physical_candidate_id": "asap-explain-v1:physical:2698a88757662eedbcdb11fc533b04c0a21db737017780610dc7a04cbf94ea68", + "physical_candidate_id": "asap-explain-v1:physical:50e60a3db582d783e33b7eb9dd278394cd7b88cfd072c50ba8a791138b77bc15", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2349,11 +2361,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:6519f699db797c537c5edafdda8639405bd4b1d7bb98a3c5fcda4fddb1e0250a", + "candidate_id": "asap-explain-v1:candidate:2e79a7dedd94b3d185248a7fd271a2a12821bab245df96dd9816d93c5017d341", "logical_root_ids": [ - "asap-explain-v1:root:198743eeb4cf6ad3369e04e5e07dfd7570c71dadf47a32aef1ca714a46d0dcd5" + "asap-explain-v1:root:66a2f16251a90e29b698bc4e5deaa442ad61437f1e43abed64041848f8956f43" ], - "physical_candidate_id": "asap-explain-v1:physical:8a753ff3af2fcc37552b5a22cce4593f0020f2ab26e3d428dd3635745da2e8da", + "physical_candidate_id": "asap-explain-v1:physical:89a799c4f984bed5e7a1b8624634f2357a7db5a8350adcc188a17972dc894fe4", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, @@ -2361,11 +2373,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:fe90af02ac3b4d9d72a09d1149e65649c459d17a6e45f2b16589fa8fde10cd57", + "candidate_id": "asap-explain-v1:candidate:cbbd862f012685aeed0569d427927a80c3af2dbc27c5b3fb466ac42b7766df3d", "logical_root_ids": [ - "asap-explain-v1:root:6d5fa81380e4588417d6d892ec1f786499d644abbc6ea906446dac9db4a4fd26" + "asap-explain-v1:root:421adad5f16b00e894bfca2d892952c678e36489cd1f4c25d8836c84a1e8fa36" ], - "physical_candidate_id": "asap-explain-v1:physical:3d0c4c6add84c0a405cee8d0f297afb139e2e912d6742b9629e4894eacad2b4d", + "physical_candidate_id": "asap-explain-v1:physical:40c3d7ab0382ead2fc584a05724e38d9bce78ce6db674db00ecd459dceccfc6b", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 7667691247138405742, @@ -2379,7 +2391,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], @@ -2395,7 +2407,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c5e5a4897a71877388d56236afd7dae6506f090854498aa7f454574b1dd06a4a", + "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2484,30 +2496,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:6294c7c7154370c35b02e7934e6d1801a62e683f2a2561e23ab2dda5ede04b15" + "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0", + "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index c6e28e5ea..a6cc91d5d 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -42,13 +42,33 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` - quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:d55703b72c0c4bb9bc209232c1d9d0afcc595b8b60f978dbc7392a2f6439c4b0"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:9377634ea064bea3a66d6598cf85ef8648d59bc0473debae77b5958390104be7"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:198743eeb4cf6ad3369e04e5e07dfd7570c71dadf47a32aef1ca714a46d0dcd5"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:6d5fa81380e4588417d6d892ec1f786499d644abbc6ea906446dac9db4a4fd26"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:77eedd0c83f98c91c83589e77f3cd1f7d40f8090794d32ff94518e0da2a03af8"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:66a2f16251a90e29b698bc4e5deaa442ad61437f1e43abed64041848f8956f43"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:421adad5f16b00e894bfca2d892952c678e36489cd1f4c25d8836c84a1e8fa36"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) @@ -85,8 +105,8 @@ Stored output `1584935399223751265` → semantic definition `sds-v1:1fd0b827ec01 "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [ diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index a9bbc01d2..be5860767 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,30 +1088,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1121,7 +1127,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2056,11 +2062,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:72d4b48034f12f7d866848c54d60ca468c704adec16dba5c774be1c50dc0404f", + "candidate_id": "asap-explain-v1:candidate:3d30019397bf6ff24e031c81bc3ef6a9f2d74b0cbdba975d5e855029edc1ba5e", "logical_root_ids": [ - "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313" + "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4" ], - "physical_candidate_id": "asap-explain-v1:physical:a8bbfd343a6d21b494cb67a0d408c842e17fd747e658f15a826901882ffc826d", + "physical_candidate_id": "asap-explain-v1:physical:46015a309425b70538a1b336b963637c6863377959001794bdb0c5b770229563", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2068,11 +2074,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:34174130c782d1b266606b4a2c0c0453d8c57aab6c94b9a09255a141fcbc5b57", + "candidate_id": "asap-explain-v1:candidate:7f808e56be87473c3fd34a178fa7e7029f3454614e277249fbae5677f04b73fe", "logical_root_ids": [ - "asap-explain-v1:root:2935fd3a75baedb0549fea7dbe3d3933f76142da47a4a293caf2558aab6f4a62" + "asap-explain-v1:root:859b668e3bad84483effc1c9f32cafbd0074f48e50342f4e67fceed1e056a697" ], - "physical_candidate_id": "asap-explain-v1:physical:42a5a0486551be7f7802718d48a8fd677620e984837e20f582e9cefa6f1177a8", + "physical_candidate_id": "asap-explain-v1:physical:b84c23c3bafa23142ab2b7cb8c61af783fe223389a2f6826f8f485a6c645e271", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2080,11 +2086,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8499e91e1ea40815d606a432dd7e9839152edf9bdfb4ed5e8c8b9558ca16a051", + "candidate_id": "asap-explain-v1:candidate:3bdf363f6201b64ad2058932dc051b6a4628158111238f148c21bdd4b07b4ab3", "logical_root_ids": [ - "asap-explain-v1:root:dcda374abb5ab2069d67f417b0d637df071f8df1a82813b3be18a768cef1e16f" + "asap-explain-v1:root:adc370740d34eba03a9c193b88fd4e29d5a3d8104091cce1117c6b6da2548a9f" ], - "physical_candidate_id": "asap-explain-v1:physical:0cb9ffdb195c5cbb7f83a2b27c7b38f748aeb4ac5ae6b9fe7b88a650ac618b98", + "physical_candidate_id": "asap-explain-v1:physical:b29e47fcd7993d2fc543e9209ce6584be126283ee7cba404bf6a0ec94c0612a5", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, @@ -2092,11 +2098,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:682ec622350cda5b143311a6d7ecbf20ffa108f7c54fbdda611a43afc11f506b", + "candidate_id": "asap-explain-v1:candidate:22d6a4d0a0bb8105cf119a239d2b00252ef39dbd37a4d4d2a08d583ffd2f21a7", "logical_root_ids": [ - "asap-explain-v1:root:e482255fa6fa4b7a0fa48d597024c21bf0cf8e1978d5b27ff868cec7c501b9fe" + "asap-explain-v1:root:db97ab23dd9487d0687eeab40856861788fe2feb9601644dbe5feee0520b5c6c" ], - "physical_candidate_id": "asap-explain-v1:physical:e1116cc1f71a1410f3f841680dc9d7d86373910bd9a0240279414af7f25748a9", + "physical_candidate_id": "asap-explain-v1:physical:db08c46f2695bc1cd419a67e721a90e424a30347b4c82db20b62e14ff74737ea", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 10907830462850005469, @@ -2110,7 +2116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], @@ -2126,7 +2132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8fa580d1d441e8bb51474a2d43898479c306cd75af66a94f30a685ba8a8aeb61", + "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2191,30 +2197,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fecc048bda298bf10e3a58c1d839d27fdc8ac74a0ec428573e225e7c31834746" + "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313", + "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index 1a7ab58ae..0c40b7c10 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -38,13 +38,23 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ccbffb2261b46356131f600b3f9c77e7458b8f7948eb57d7f8b342b7c2e55313"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:2935fd3a75baedb0549fea7dbe3d3933f76142da47a4a293caf2558aab6f4a62"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:dcda374abb5ab2069d67f417b0d637df071f8df1a82813b3be18a768cef1e16f"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:e482255fa6fa4b7a0fa48d597024c21bf0cf8e1978d5b27ff868cec7c501b9fe"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:859b668e3bad84483effc1c9f32cafbd0074f48e50342f4e67fceed1e056a697"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:adc370740d34eba03a9c193b88fd4e29d5a3d8104091cce1117c6b6da2548a9f"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:db97ab23dd9487d0687eeab40856861788fe2feb9601644dbe5feee0520b5c6c"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index 012eadddf..4bcfe7e23 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" + "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" + "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", "physical_dag": { "nodes": { "1": { @@ -1487,7 +1487,7 @@ "selected_manifest": { "plan_id": 2697027346875258477, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1911,9 +1911,9 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:df3b0bb8def4a9f917215d915b30d795673ed9317a20f36a29a5b2e095963bd0", + "candidate_id": "asap-explain-v1:candidate:f34483bbbbb624def5249f18305602d21046b70bc548087f7b25a79df49054be", "logical_root_ids": [ - "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7" + "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -1923,11 +1923,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:04dd3837b02350b6386ca513ac7264af0827ac0e1e3ffdb5443fdb67aaf6e1c7", + "candidate_id": "asap-explain-v1:candidate:6724aa09e5d7ed3bcf998544e00d2249c78711deb47a047512ec3d66ee280d57", "logical_root_ids": [ - "asap-explain-v1:root:6bcde9e7369ab7cd9b27c33a64182d767fe88c2af0d632733de19108b377f375" + "asap-explain-v1:root:abf768f94bef2e820457146939248d0df406fef3a70da171cbf2c6e34f4269b6" ], - "physical_candidate_id": "asap-explain-v1:physical:e673be4e79f15fabc260655141c302d6a31a2195d0f19bac4d4534f9b8d8b2fd", + "physical_candidate_id": "asap-explain-v1:physical:50515f20428bf99d2776a0db269b3f722d689ba784c8326137121331e0c42a80", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5538412219857372274, @@ -1935,11 +1935,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c194059bcc7c025a96e3685d7966450bcb4a67ea01e9aa4ab9557ad9a2e081c7", + "candidate_id": "asap-explain-v1:candidate:aa3548e67d41f5ad19ed754dd6256fe54100d37ca0270416aab059558c7e9443", "logical_root_ids": [ - "asap-explain-v1:root:1090e332041c96a28fe239565dad1a116f856886c584b1ba49d0aaf3dc02d3f0" + "asap-explain-v1:root:7edfeb167e264152810f299c5f3e6e96ed5db3c7f284488e52dc4c316c692cf0" ], - "physical_candidate_id": "asap-explain-v1:physical:a990dbf8f92d084d74b1ca0cef50991f5012a338f44c0e938b2deb68c627513c", + "physical_candidate_id": "asap-explain-v1:physical:634de44338b9bcbf7b796f8b3b96d8996f8077a7e3e2aa36396d40b44f8a4a26", "identity_unavailable_reason": null, "status": "selected", "plan_id": 2697027346875258477, @@ -1947,9 +1947,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:89d32e9674561d4a6fa2eea5f313634f7355a6cc3d4b60da57d1f89d631a13d9", + "candidate_id": "asap-explain-v1:candidate:567e62d8489304e606653fe66740babdf3caf8df26d88009056cd1a8da6ed8b7", "logical_root_ids": [ - "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43" + "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -1965,7 +1965,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -1982,33 +1982,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:e96817ed3871f552485654a7536072e33469cded139f3eb315e1fc810a2a32a5" + "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:e31b1e546f1cc1df9f5b174d6d5b4603ff6a014a718a188cfeec0e522ec48fa0" + "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:0952698ef2cd28778e80ac197b051a4042a8ea6f1a85205a36168c71ae7925dd" + "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7", + "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", "query_index": 0 } ], @@ -2111,7 +2111,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43", + "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 5031de854..0507ccce1 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -43,7 +43,7 @@ Roots: `[2]`. ```mermaid flowchart LR - P1["1: Bound population snapshot"] + P1["1: Bound physical input"] P18446744073709551615["18446744073709551615: Sort"] P1 --> P18446744073709551615 P2["2: Limit"] @@ -64,7 +64,7 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43"`. +Logical root: `"asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) @@ -84,10 +84,10 @@ Roots: `[6]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:27192fc14e82a405f0e491940c71fd77abd52d45f84229c51f61fd7bc58c92b7"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 1 | `["asap-explain-v1:root:6bcde9e7369ab7cd9b27c33a64182d767fe88c2af0d632733de19108b377f375"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:1090e332041c96a28fe239565dad1a116f856886c584b1ba49d0aaf3dc02d3f0"]` | `"selected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:05416c5491e4dda45929f873ae0664ba6c10b4bb9ab4da4924162a758bd29b43"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 0 | `["asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 1 | `["asap-explain-v1:root:abf768f94bef2e820457146939248d0df406fef3a70da171cbf2c6e34f4269b6"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:7edfeb167e264152810f299c5f3e6e96ed5db3c7f284488e52dc4c316c692cf0"]` | `"selected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index f60fd6509..b94eefffc 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,30 +1175,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1208,7 +1220,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2150,11 +2162,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:176ede0a6b63660a2c2588dd9bd6c680fbc1572e7eaca3855ab5e1ec76468524", + "candidate_id": "asap-explain-v1:candidate:9e4fca4ef3aeae104e0ed7f563750a953ef0b27e606e3ee9dcac74412ef37478", "logical_root_ids": [ - "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7" + "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24" ], - "physical_candidate_id": "asap-explain-v1:physical:ec8b6a7ddadbdbffb5fbe7518f517e9d2c3a0cd288c4a78070814194368467f5", + "physical_candidate_id": "asap-explain-v1:physical:0223708fe4fb1f30707e7cb6d7d95b4495a202c7133e141a7133531d49e01822", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2162,11 +2174,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:b852d84482c33e1ff8d37522aa9849d2bcf3eb12037b21402438f02ef8a3826c", + "candidate_id": "asap-explain-v1:candidate:a40ebacdde2fb9ba52af84daf81bec8e2750b305e0bb6d1dd3a4e6ef3c8d1747", "logical_root_ids": [ - "asap-explain-v1:root:3d81ba5ec5c336a1c18e69c62e0ee52e108ce328016ef3ae3ff1ed3a550fc3bd" + "asap-explain-v1:root:4e4ab63d24c24993cfe1e9894fa421f7847987f99a0d7c439089e15a2c683b9b" ], - "physical_candidate_id": "asap-explain-v1:physical:3d0009e4fa658fb05eed9f32c79fb5e138f029d5a23eb4543f72d3e1526c9836", + "physical_candidate_id": "asap-explain-v1:physical:32eba295ed0a05f397beb1af8c89d6887429ea9c1d826d9999e2af49b64e4f9d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, @@ -2174,11 +2186,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:410e4bd0be322f0fdcc0a4786f11d8bb33fcea8c7f052e5571a3a00ed4cf1a2b", + "candidate_id": "asap-explain-v1:candidate:c24d80c70e81491f6eea8bc929dd6491f277c0f2015ac2d873ebde89e65b6cf2", "logical_root_ids": [ - "asap-explain-v1:root:6255bfbde517cfeb768cd858f05893bd0c849864f281889972454405b3902ddf" + "asap-explain-v1:root:2fe14190b9dd88bb3809ca47ef933a3bf13498df5b163de40a379510af0cf48d" ], - "physical_candidate_id": "asap-explain-v1:physical:f17c063b020cef844f08c768483bca2dbea4cf4640951890c25976428d58e94a", + "physical_candidate_id": "asap-explain-v1:physical:c2b552599518675eb25da3c3f36fc91e0faa5070aab592df1146099f3d806fcd", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 11545774673163874085, @@ -2192,7 +2204,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], @@ -2208,7 +2220,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:3e4f01e2764642bda0d9c77a04635c7d663ab390b5e9f77aedee8c9dc506932b", + "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2297,30 +2309,42 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:beafc6f71587fde1a0aa0476ebe4bfbfcd8672971ddfb604fa9322535384160e" + "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7", + "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index cc518de5d..9b9009a5c 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -42,12 +42,32 @@ Costs below come from the controlled Level 1 fixture, not production measurement ``` - quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:b923f5545572b9c7df01f0bf06504b22a85b6cfcf2bb8cd49cc4996e5763a6b7"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:3d81ba5ec5c336a1c18e69c62e0ee52e108ce328016ef3ae3ff1ed3a550fc3bd"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:6255bfbde517cfeb768cd858f05893bd0c849864f281889972454405b3902ddf"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:4e4ab63d24c24993cfe1e9894fa421f7847987f99a0d7c439089e15a2c683b9b"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:2fe14190b9dd88bb3809ca47ef933a3bf13498df5b163de40a379510af0cf48d"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index 37269158d..01f91d149 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,30 +999,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": { @@ -1037,7 +1043,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1888,11 +1894,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:2ae3eec54e347515d5a9f170e47209c1e0d2e3c0660a15c3ccffc269f9a06fb1", + "candidate_id": "asap-explain-v1:candidate:b12be4fbfd5324aec0dba8fa213d697c02b71711d0c03e8008b2fb071f90e061", "logical_root_ids": [ - "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a" + "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091" ], - "physical_candidate_id": "asap-explain-v1:physical:78e545aa3c28a3cd256f16ebf80da92667856ed5626a197bfb9b1df616dfe76c", + "physical_candidate_id": "asap-explain-v1:physical:cfa4ae87d7ab7d898824e7a0089ac580830984295205a1eb15863f4a80f5f12a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1900,11 +1906,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:4a913b04d3a2d3913ca117c5d574d273c99d6690dd940b8bbf31c969156ec35b", + "candidate_id": "asap-explain-v1:candidate:5625be28fafc342b4afb91d4db763d267aa01f425cc1099cc9b0ed3488e3315e", "logical_root_ids": [ - "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a" + "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091" ], - "physical_candidate_id": "asap-explain-v1:physical:ac804f17cd4e6f010afa52c3f545d9d3c1e145f0a59620053f0cac3c23b70eb7", + "physical_candidate_id": "asap-explain-v1:physical:eaa1600404778ebdc2ccb234b478399f09fb8d799dbd38745b2c8c4f3de340bb", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1912,11 +1918,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:d3e06eae007fd2f8d3e6c571d2670fb5d0343c651c31b5bf24da4b27f586182d", + "candidate_id": "asap-explain-v1:candidate:3f4f1a785c0cd25ca8a64f43754be61497a59eba42b5303d5a0ff70402e53456", "logical_root_ids": [ - "asap-explain-v1:root:b57aa9eb5bd61930e38fc2f3c21f49aeb395cbe91f890cd78e5866627585fb5d" + "asap-explain-v1:root:cc526d3d65f393b128a334e21595156a346dbfadddc98e9db50a86c0a552399b" ], - "physical_candidate_id": "asap-explain-v1:physical:dca275793539777bde21f664dbe247c427ee467eb6b26a2e6800e538631f2913", + "physical_candidate_id": "asap-explain-v1:physical:a99b6575eb07903f905e4fd379bbd315378727e4e52a0d9ec3ef650eea321acc", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, @@ -1924,11 +1930,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8f450dbc700449c476cff5b137687357aab46304b22cfd0cd858fe821afd5b80", + "candidate_id": "asap-explain-v1:candidate:cd1877d16d46fc596e0a6ebf3ea69213ce43304226df1dd3b8b68c7762b764c4", "logical_root_ids": [ - "asap-explain-v1:root:22c795f951af3c2a58789de34483f339922cdb926b6425596028f6cf458bb0fa" + "asap-explain-v1:root:9dc1b4cf04f03b400967f5f77f952188e11ff8d0b8841fba64fe0473389b5718" ], - "physical_candidate_id": "asap-explain-v1:physical:96d3f0e274007d14582f35d245ba1470f9ddbad40be7437ba307dad8baa12078", + "physical_candidate_id": "asap-explain-v1:physical:900b4a8046e9415781af115bf9f124fbcf34cc144c3dca993467eaa34d762cae", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3235857638904289352, @@ -1942,7 +1948,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], @@ -1958,7 +1964,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:432060802aad3f3a24af57f43ea906a1e1ef8b4e73e48bec003956f55b9ddeb3", + "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2023,30 +2029,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c86c2786262bab97101c675f3749a1af8cb7e5968dc6b866f27945b5ca1562b8" + "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a", + "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index 6b1839e01..49c51b325 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -38,13 +38,23 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:a2a0be8e108cf4b16eda36967e496a4e83cdae3170482e490dc33033d4662e8a"]` | `"unselected"` | `122.0` | `null` | -| 2 | `["asap-explain-v1:root:b57aa9eb5bd61930e38fc2f3c21f49aeb395cbe91f890cd78e5866627585fb5d"]` | `"unselected"` | `61000000000000.0` | `null` | -| 3 | `["asap-explain-v1:root:22c795f951af3c2a58789de34483f339922cdb926b6425596028f6cf458bb0fa"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091"]` | `"unselected"` | `122.0` | `null` | +| 2 | `["asap-explain-v1:root:cc526d3d65f393b128a334e21595156a346dbfadddc98e9db50a86c0a552399b"]` | `"unselected"` | `61000000000000.0` | `null` | +| 3 | `["asap-explain-v1:root:9dc1b4cf04f03b400967f5f77f952188e11ff8d0b8841fba64fe0473389b5718"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index 93f36cea0..2bea977ce 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", + "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,30 +997,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" + "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1030,7 +1036,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1881,11 +1887,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:74a8ff36533e91cf857751e32f0c797ff18ba3c4418bd4d0fc82cc13f411b562", + "candidate_id": "asap-explain-v1:candidate:df0591f2e817efa191f79e1dca160f4acbbd413b12588f49670d79be54d2ab8a", "logical_root_ids": [ - "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373" + "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d" ], - "physical_candidate_id": "asap-explain-v1:physical:163fbf13819bf944d7ec6c3646ec5b9d4041d80b36cc26ce88cf233d6bc83914", + "physical_candidate_id": "asap-explain-v1:physical:59a971662b9879dde92f93bac6d6ea9c37a55240f1e3e80ebe3d2dfa8b3dbdaa", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1893,11 +1899,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:14667efe5bebdbaa76921ced9c0b1f64ba3d9e353fed798a2670cd6052229964", + "candidate_id": "asap-explain-v1:candidate:9ff386b0ba74c4339f4a7bdbf52b930ceb829fc5fd9fa41ec761f8c51352190d", "logical_root_ids": [ - "asap-explain-v1:root:6f807235b84232925ad508c8c585c2e8c2be1f75ce9f1aca20c86b11cf100f6e" + "asap-explain-v1:root:02e023b6e1dde9f687d49e396dacfb1b9bf4894655cb19d15899ae29f95b03ad" ], - "physical_candidate_id": "asap-explain-v1:physical:7abc377c6036e9692df559740b1872b72ee4924876b9c40d1aad0fab4134fc91", + "physical_candidate_id": "asap-explain-v1:physical:3c8962843c859ad0e1fa8674e909e0a8e41f8e588832f3db944b6a4cede86d19", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, @@ -1905,11 +1911,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:b12724e04f78c2adf91f62905edfa5ea5f3cf0f90472b145dd02806357131b88", + "candidate_id": "asap-explain-v1:candidate:9371677a13317da1cf024686d1453491ad168b34130b7a6fefbc5987c9c2a439", "logical_root_ids": [ - "asap-explain-v1:root:f0eae8f84fc9d14b63bbcece67194b5db2edc5f149fe7c52f557df238240a137" + "asap-explain-v1:root:2b53a81cb8e5af5223d031f37bafdaee99032dccb32b1a8ac48c44cf53f2cacb" ], - "physical_candidate_id": "asap-explain-v1:physical:d8f043089afa3e9869fff9d63f58f7252f0f61524d854d2c3e58350945810fac", + "physical_candidate_id": "asap-explain-v1:physical:2f1cbd73de8f77997c24c4a90335c6837fe7deb76b3137f8bc0d154b8cb88772", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17637043547591721229, @@ -1923,7 +1929,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], @@ -1939,7 +1945,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ddb8c16c4f5aec3b773b025cdc1e4eec2c733a68e274576f1757570455ccd539", + "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2004,30 +2010,36 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0885a0efcc767ef8af6766cff6b83bf360a6772dee606eff0b9fc4710e5a5122" + "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:df98395508fd3a37471a4d942a450f147b3021612eb1151aa6b2440fb088e9cc" + "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:51facd601e4ab4442e86745d45fa67b7644e33889ef84b8a2457ae6bb4dd7c5e" + "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373", + "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", "query_index": 0 } ], "schema_version": 1 + }, + { + "query_id": "compat-query-0", + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index 3a0972001..a89a133d2 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -38,12 +38,22 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `null`. + + + +Guarantee: `null` + +invalid DAG: ranking requires one exact per-series Rate frontier + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:4c9b21a678ae6be64cc8d6d6311fdd9e261ee1c5239ad0654a4f7fa64333c373"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:6f807235b84232925ad508c8c585c2e8c2be1f75ce9f1aca20c86b11cf100f6e"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:f0eae8f84fc9d14b63bbcece67194b5db2edc5f149fe7c52f557df238240a137"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:02e023b6e1dde9f687d49e396dacfb1b9bf4894655cb19d15899ae29f95b03ad"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:2b53a81cb8e5af5223d031f37bafdaee99032dccb32b1a8ac48c44cf53f2cacb"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) diff --git a/docs/evaluation/issue754-human-review/topk-rate.dot b/docs/evaluation/issue754-human-review/topk-rate.dot index 7e569e6bf..b386aa519 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.dot +++ b/docs/evaluation/issue754-human-review/topk-rate.dot @@ -13,13 +13,11 @@ digraph compiled_physical_plan { } subgraph cluster_query_0 { label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_0_1 [label="Logical\nSort"]; - query_0_2 [label="ExactReadout\nRate"]; - query_0_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_3 [style=dashed, color=gray40, label="reads"]; + query_0_0 [label="ExactReadout\nRate"]; + query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; query_0_1 -> query_0_0; - query_0_2 -> query_0_1; - query_0_3 -> query_0_2; + query_0_0 -> query_0_2; } } diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index 10c597508..caf9a1611 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -1,17 +1,17 @@ { "envelope": { - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { "schema_version": 4, - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, "summary_descriptors": { "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { @@ -57,27 +57,27 @@ }, "outputs": { "11966640087163441478": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { "operation": { "expression": { "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -90,6 +90,18 @@ "name": "value", "nullable": false, "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -119,6 +131,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -126,7 +152,7 @@ "inputs": [], "record_range": true }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { "operation": { "family": { "ExactAggregate": [ @@ -165,6 +191,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -172,7 +212,7 @@ "inputs": [ { "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" } ] } @@ -186,18 +226,18 @@ "precompute_plan": { "summary_catalog": { "schema_version": 4, - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, - "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" }, "envelope": { - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -212,7 +252,7 @@ { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, @@ -248,15 +288,15 @@ { "semantic_fragment": { "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { "operation": { "expression": { "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -269,6 +309,18 @@ "name": "value", "nullable": false, "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -298,6 +350,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -305,7 +371,7 @@ "inputs": [], "record_range": true }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { "operation": { "family": { "ExactAggregate": [ @@ -344,6 +410,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -351,7 +431,7 @@ "inputs": [ { "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" } ] } @@ -406,7 +486,7 @@ "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -425,6 +505,12 @@ "name": "label_0", "nullable": true, "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -471,6 +557,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -542,6 +635,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -616,6 +716,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -641,7 +748,7 @@ } }, "query_sink": 4, - "query_plan_sink": 0, + "query_plan_sink": 2, "precompute_sinks": [ 1 ] @@ -652,18 +759,18 @@ "transmission_plan": { "summary_catalog": { "schema_version": 4, - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, - "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" }, "envelope": { - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -675,7 +782,7 @@ "rules": [] }, "query_plan": { - "plan_id": 14733843382488271694, + "plan_id": 11938117179177087264, "plan_version": 1, "selected_dags": { "compat-query-0": { @@ -691,7 +798,7 @@ "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -710,6 +817,12 @@ "name": "label_0", "nullable": true, "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -756,6 +869,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -827,6 +947,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -905,6 +1032,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -998,6 +1132,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1084,6 +1225,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1158,6 +1306,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1198,6 +1353,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1235,6 +1397,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1272,6 +1441,13 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -1289,71 +1465,274 @@ }, "entries": { "topk by (label_0) (3, rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "limit", - "n": 3, - "offset": 0, - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } } }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "logical", - "operator": { - "kind": "sort", - "descending": true, - "grouping": { - "labels": [ - "label_0" + "3": { + "Operator": { + "inputs": [ + 2 ], - "without": false + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } } }, - "inputs": [ - 2 - ] - }, - "2": { - "op": "exact_readout", - "input": 3, - "readout": "rate" - }, - "3": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 2, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "2": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 2 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, "fallback": "exact_backend" } } @@ -1382,7 +1761,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], @@ -1398,7 +1777,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1842,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,1185 +1913,5617 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", "query_index": 0 } ], "schema_version": 1 - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 14733843382488271694, - "selected_manifest": { - "plan_id": 14733843382488271694, - "plan_version": 1, - "planner_revision": "3ebe195260fa6e16e226183ee50938078bb8359f", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "topk by (label_0) (3, rate(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 1 - ], - "op": "logical", - "operator": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "kind": "limit", - "n": 3, - "offset": 0 - } - }, - "physical_dag": null, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 2 - ], - "op": "logical", - "operator": { - "descending": true, - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "kind": "sort" - } - }, - "physical_dag": null, - "query": "topk by (label_0) (3, rate(data[1m]))" + { + "guarantee": { + "bound": { + "op": "zero" }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:2": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 3, - "op": "exact_readout", - "readout": "rate" - }, - "physical_dag": null, - "query": "topk by (label_0) (3, rate(data[1m]))" + "failure_probability": { + "op": "zero" }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:3": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "node": { - "binding": { - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" + { + "guarantee": { + "bound": { + "op": "zero" }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 + "failure_probability": { + "op": "zero" }, - "window_ms": 10000 + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" + "input_index": 0, + "kind": "child_guarantee" }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" } - }, - "unit": "horizon", - "multiplicity": 1.0 + ] }, - "state:backend:11966640087163441478:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "record_range": true + "name": "value", + "nullable": false }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "kind": "summary_agg", - "reduction": "PerEntity" + "name": "value", + "nullable": false }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 } }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" + } + } }, - "unit": "horizon", - "multiplicity": 1.0 + "roots": [ + 4 + ], + "version": 1 }, - "state:backend:11966640087163441478:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] + "inner": { + "op": "constant", + "value": 0.006737946999085467 }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 } } - } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - "kind": "fallback" + "name": "label_0", + "nullable": true }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } }, - "name": "ts", - "nullable": false + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + "name": "label_0", + "nullable": true + }, { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false } ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "label_0", + "nullable": true }, - "kind": "summary_agg", - "reduction": "PerEntity" + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "Planner": { + "expression": { + "Column": 3 }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - ], - "time_index": 0 - } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null } - } + ], + "time_index": null, + "unique_keys": [] } - }, - "kind": "fallback" + } }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "Planner": { + "expression": { + "Column": 2 }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - ], - "time_index": 0 + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "kind": "summary_agg", - "reduction": "PerEntity" + "name": "value", + "nullable": false }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 } }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" + } + } }, - "unit": "horizon", - "multiplicity": 1.0 + "roots": [ + 7 + ], + "version": 1 }, - "state:backend:11966640087163441478:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] + "inner": { + "op": "constant", + "value": 0.009940766872773949 }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "record_range": true + "name": "value", + "nullable": false }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + { + "dtype": { + "Plain": "float64" }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "value", + "nullable": false }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "dtype": { + "Plain": "utf8" }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 } }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + } }, - "operation": "update" + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } }, - "unit": "horizon", - "multiplicity": 1.0 - } + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "query:compat-query-0:2": 30.0, - "query:compat-query-0:3": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:11966640087163441478:build": 1.0, - "state:backend:11966640087163441478:residency": 1.0, - "state:backend:11966640087163441478:retire": 1.0, - "state:backend:11966640087163441478:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:e2b335a2a3129c1f84f935828760faaab68180906d1ef57cb048df438444f54a", - "logical_root_ids": [ - "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d" - ], - "physical_candidate_id": "asap-explain-v1:physical:0b5efaf0e5fb7de1dedf91de0086e7fa3116b357d364bb014302488e53f6ca8b", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 14733843382488271694, - "total_cost": 155.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:0e63876c51c892794259bec307d894155ac7fc712227f9b2b136a39d0a95f90e", - "logical_root_ids": [ - "asap-explain-v1:root:85695f3e2398a8f92061778b3a0f9ad6470c7fd2fff67e1c223b1d09ced9b08e" - ], - "physical_candidate_id": "asap-explain-v1:physical:b415146366a96d3ea899a3d7ed1b8e05d7246e7805b9b20c1cfd7d5ee09fc7fa", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 15833270860732361489, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:076cf2fc813075e7da666d97b143d0f480ceb94646477c9d5910025f14aeb242", - "logical_root_ids": [ - "asap-explain-v1:root:e28a371ca7f0bf312bb0f9e26cd45ffc61f072e4c8441e7309f4a9e3830661fb" - ], - "physical_candidate_id": "asap-explain-v1:physical:94e26686325f55499a386d867ba414b2da8fd4f9d5e9d227b93f98ee6f4f8bf0", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5379663311087285901, - "total_cost": 242.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", - "query_index": 0 + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 11938117179177087264, + "selected_manifest": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "topk by (label_0) (3, rate(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a57a9a5af2eb437c2c385614cc70f207d5356a352eb0c5b9ca612e18611ee0a9", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "rate" + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" }, - "failure_probability": { - "op": "zero" + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:2": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 0 + ], + "max_bytes": 2147483648, + "op": "physical", + "source_nodes": [ + 2 + ] + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 2 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "query:compat-query-0:2": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:11966640087163441478:build": 1.0, + "state:backend:11966640087163441478:residency": 1.0, + "state:backend:11966640087163441478:retire": 1.0, + "state:backend:11966640087163441478:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:candidate:736baf2a73867ec897348a61ccc823177774c78a633522ac5d297061e72c994d", + "logical_root_ids": [ + "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4" + ], + "physical_candidate_id": "asap-explain-v1:physical:aa5907e46408e8391549919970e655f420aaafc8615d18d403760be0d6262b94", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 14733843382488271694, + "total_cost": 155.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:0ec721f491896880003cf0f9be813f35a621a930117bbcf22c4c3deaf6dd5230", + "logical_root_ids": [ + "asap-explain-v1:root:a3ecbd11f7f96eb2a85dd1ae44e8bce5973e9f61259d430b00a6e1f7377b5595" + ], + "physical_candidate_id": "asap-explain-v1:physical:27b98292a318f3229cf7f500958241e6fad280f0621659fbbf9055d335fd401f", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 15833270860732361489, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:6731c4ff590b338e1fa3356a4130b651c8e1377a838d3cc103131df818f3173a", + "logical_root_ids": [ + "asap-explain-v1:root:42fd4198d4b9045cf6d14bde2491b9197b60744dde46e589df25704f16013d01" + ], + "physical_candidate_id": "asap-explain-v1:physical:e3f5ff13e684ce68b9cec0dcd4d1f8ca28533bcd8927b59d36958548d91ab7e6", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5379663311087285901, + "total_cost": 242.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:4f11582a3478006c11a251a278214810d6cff2860b89971aadf06a2f099c6453", + "logical_root_ids": [ + "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2" + ], + "physical_candidate_id": "asap-explain-v1:physical:e0cb37ea35893066347434be2dd19d1626ec58759e88bb526470f7810e33d1e5", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 11938117179177087264, + "total_cost": 125.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:e717366027807039188e1db5d3e188f377b4d9d99f5a0c0c03da5678137b57d4", + "logical_root_ids": [ + "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:56656516bf1d7f9c210723cb1e1254e9e1fc191cd44912711c79aa38daf7b0d8", + "logical_root_ids": [ + "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + } + ] + }, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + "name": "value", + "nullable": false }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:6bafe9c54cda3e799b6b40c2be9654161e388bb423519a554d9996ac868fedc5" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d72e273e0a55a12a715ae312623ba8aacff4af16af0c164cfb813ff934aecb7a", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ { - "guarantee": { - "bound": { - "op": "zero" + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "failure_probability": { - "op": "zero" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "rule": "exact_input" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:b9cac0f4239c7186cb73aaaf9444df7fc60a00189f6d8cd75879f3926ff7e274" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:74c012275701cb78be91b3415f605a53802b2a710020b4c96125946d4495771a" + } }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:b4bb9f59761cfee4a65d231ca69c105189a9272accda0075e480cc45b1ad77b5" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d", - "query_index": 0 - } - ], - "schema_version": 1 + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index 5de355d6c..7919aa388 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -25,11 +25,11 @@ flowchart LR | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Sort":{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Limit":{"n":3,"offset":0,"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Sort":{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Limit":{"n":3,"offset":0,"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | ### Sort expressions @@ -37,6 +37,27 @@ Node `3`: `{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}] Its input is node `2`: `{"kind":"value","operation":"FinalizeExactAccumulator"}`. Column indices refer to that producer's output schema above. +## Installed native physical program + +This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. + +Roots: `[4]`. + +| Node | Dependencies | Operator / input contract | Output fields | +| --- | --- | --- | --- | +| 2 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 3 | `[2]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 4 | `[3]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | + +```mermaid +flowchart LR + P2["2: Bound physical input"] + P3["3: Sort"] + P2 --> P3 + P4["4: Limit"] + P3 --> P4 +``` + ## Candidate admission and costing Costs below come from the controlled Level 1 fixture, not production measurements. @@ -49,14 +70,71 @@ Costs below come from the controlled Level 1 fixture, not production measurement } ``` +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2"`. + +select exact Top-K from independently maintained temporal values + +Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]}` + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 3 | `[2]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 4 | `[3]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[4]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d"`. + +top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) + +Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.009993683192864136},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"},"metric":"frequency","provenance":[{"algorithm":"CmsWithHeap","contract":"count_min_l1_markov_v1","kind":"sketch_readout","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | +| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | +| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | +| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[7]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64"`. + +top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) + +Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | +| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | +| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | +| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[7]`. + | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:0a36a2bb43a5c67a3c0cdab44d6d7fa5a769bc85af3fb7fa2c41b396da68ef3d"]` | `"selected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:85695f3e2398a8f92061778b3a0f9ad6470c7fd2fff67e1c223b1d09ced9b08e"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:e28a371ca7f0bf312bb0f9e26cd45ffc61f072e4c8441e7309f4a9e3830661fb"]` | `"unselected"` | `242.0` | `null` | +| 0 | `["asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4"]` | `"unselected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:a3ecbd11f7f96eb2a85dd1ae44e8bce5973e9f61259d430b00a6e1f7377b5595"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:42fd4198d4b9045cf6d14bde2491b9197b60744dde46e589df25704f16013d01"]` | `"unselected"` | `242.0` | `null` | +| 3 | `["asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2"]` | `"selected"` | `125.0` | `null` | +| 4 | `["asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 5 | `["asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json) +Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-3](candidates/topk-rate-3.json) ## Persisted boundaries @@ -74,14 +152,14 @@ Binding for `compat-query-0`: } }, "query_sink": 4, - "query_plan_sink": 0, + "query_plan_sink": 2, "precompute_sinks": [ 1 ] } ``` -Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. +Stored output `11966640087163441478` → semantic definition `sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24`. ### Maintenance configuration @@ -129,55 +207,248 @@ This is the emitted adapter representation, including dependencies, pane size, r ```json { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "limit", - "n": 3, - "offset": 0, - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } } }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "logical", - "operator": { - "kind": "sort", - "descending": true, - "grouping": { - "labels": [ - "label_0" + "3": { + "Operator": { + "inputs": [ + 2 ], - "without": false + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } } }, - "inputs": [ - 2 - ] + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } }, - "2": { + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 2, + "nodes": { + "0": { "op": "exact_readout", - "input": 3, + "input": 1, "readout": "rate" }, - "3": { + "1": { "op": "read_materialization", "binding": { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" }, "materialization": 11966640087163441478, "output_grouping": { @@ -187,6 +458,16 @@ This is the emitted adapter representation, including dependencies, pane size, r "pane_origin_ms": 0, "readout_lookback_ms": 60000 } + }, + "2": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 2 + ], + "max_bytes": 2147483648 } }, "instant": { From 5d571e6b7d621d2bc68b8821a33d88696c1e6e79 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:14:40 +0000 Subject: [PATCH 31/80] Bind fixed-window Rate heap candidates to native maintenance and durable SDS --- Cargo.lock | 14 +- Cargo.toml | 12 +- control_plane/src/physical/compiler.rs | 110 ++++++++++++++- .../src/physical/executable_binding.rs | 1 + control_plane/src/physical/plan_dot.rs | 44 ++++++ control_plane/src/physical/workload_cost.rs | 22 +++ .../src/physical/workload_cost/automatic.rs | 31 ++++- control_plane/tests/native_rate_topk.rs | 116 ++++++++++++++++ crates/asap_types/src/executable_plan.rs | 64 ++++++++- crates/asap_types/src/precompute_plan.rs | 26 +++- crates/asap_types/src/query_plan.rs | 2 +- crates/asap_types/src/query_plan/native.rs | 18 ++- .../precompute_engine/maintenance_runtime.rs | 36 ++++- data_plane/src/precompute_engine/mod.rs | 1 + .../precompute_engine/native_maintenance.rs | 130 ++++++++++++++++++ .../query_engines/asap_query_engine/engine.rs | 31 ++++- .../asap_query_engine/logical_dag.rs | 2 +- .../logical_dag/native_values.rs | 123 ++++++++++++++--- .../storage_engines/sketch_db/index/native.rs | 121 ++++++++++++++-- data_plane/tests/support/rate_heap_process.rs | 76 ++++++++-- .../evidence-dependent-candidates.md | 7 + .../summary-catalog-sds-architecture.md | 8 ++ .../catalog-physical-plan-runtime.md | 23 ++++ 23 files changed, 938 insertions(+), 80 deletions(-) create mode 100644 data_plane/src/precompute_engine/native_maintenance.rs diff --git a/Cargo.lock b/Cargo.lock index 3dd033406..6c7f3f4d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=c899084019580eac55e6502eb641d42e748c6ff2#c899084019580eac55e6502eb641d42e748c6ff2" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index efdbb69da..d583e3c88 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "c899084019580eac55e6502eb641d42e748c6ff2" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index ea4428e1a..49d837c8c 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -984,6 +984,11 @@ impl BackendLocalPlanningInput { &strategy, &asap_aware_mapping::TargetSubDAG::new(&typed), ); + proposed.candidates.extend( + strategy + .fixed_window_rate_topk_candidates(&typed) + .candidates, + ); proposed.candidates.extend(direct.candidates); proposed.rejected.extend(direct.rejected); for candidate in proposed.candidates { @@ -992,6 +997,16 @@ impl BackendLocalPlanningInput { }; let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root) .or_else(|_| asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking(&root).map(|(_, program)| program)); + if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&root) { + planner_selection_trace.push(serde_json::json!({ + "stage":"planner.physical_candidate", "query_id":query.query_id, + "logical_root_id":crate::planner_selection::explained_root_id(&root, &query.accuracy_target), + "rationale":candidate.rationale, "physical_candidate":serde_json::from_slice::(&physical.encode().map_err(|e| CompileError::Snapshot(e.to_string()))?).map_err(|e| CompileError::Snapshot(e.to_string()))?, + "guarantee":root.guarantee, + })); + candidate_roots.push(vec![(index, root)]); + continue; + } match compiled { Ok(program) => { planner_selection_trace.push(serde_json::json!({ @@ -1533,7 +1548,7 @@ impl DeploymentPlanCompiler { for state in &selected { if matches!(&state.node.expr, SummaryExpr::SummaryAgg { reduction: planner_types::pre_asap::Reduction::Reduce(keys), .. - } if keys.is_empty()) + } if keys.is_empty()) || asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&query.selected_plan_root).is_ok() { if let Some(sources) = immutable_materialization_sources(&state.node) { canonical_nodes.insert(Rc::as_ptr(&state.node) as usize); @@ -2115,7 +2130,31 @@ impl DeploymentPlanCompiler { &query.selected_plan_root, ) .ok(); + let native_rate = native_rate.or_else(|| { + let physical = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&query.selected_plan_root).ok()?; + fn heap(node: &Rc) -> Option> { + match &node.expr { + SummaryExpr::SummaryAgg { family: SummaryFamilyType::Sketch(..), .. } => Some(node.clone()), + SummaryExpr::ValueOperation { child, .. } => heap(child), + SummaryExpr::SummaryEstimate { summary_input, .. } => heap(summary_input), + _ => None, + } + } + Some((heap(&query.selected_plan_root)?, physical.query)) + }); let mut entry = if let Some((source, program)) = native_rate { + let native_state_binding = if let SummaryExpr::SummaryAgg { + family: SummaryFamilyType::Sketch(..), + .. + } = &source.expr + { + let SummaryExpr::SummaryAgg { family, .. } = &source.expr else { + unreachable!() + }; + Some(binding(&source, family)?) + } else { + None + }; let mut entry = crate::query_plan::compile_bound_composable_mapped( query.query_id.clone(), canonical.clone(), @@ -2132,6 +2171,12 @@ impl DeploymentPlanCompiler { } }, )?; + if let Some(binding) = native_state_binding { + entry.nodes.insert( + entry.root, + crate::query_plan::QueryPlanNode::ReadMaterialization { binding }, + ); + } let root = crate::query_plan::QueryNodeId( entry.nodes.keys().map(|id| id.0).max().unwrap_or(0) + 1, ); @@ -2297,7 +2342,7 @@ impl DeploymentPlanCompiler { .find(|entry| entry.query_id == query_id) .expect("compiled query entry exists") .root; - let installed = super::executable_binding::install_selected_dag( + let mut installed = super::executable_binding::install_selected_dag( query_id.clone(), &compiled.dag, query_plan_sink, @@ -2313,11 +2358,35 @@ impl DeploymentPlanCompiler { query_id: query_id.clone(), reason, })?; + if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&request.queries[query_index].selected_plan_root) { + let program = physical.precompute.ok_or_else(|| CompileError::Snapshot("fixed-window candidate has no maintenance program".into()))?; + let sink = PostAsapNodeId(u32::try_from(program.roots()[0]).map_err(|_| CompileError::Snapshot("maintenance sink overflow".into()))?); + installed.native_programs.insert(sink, serde_json::from_slice(&program.encode().map_err(|e| CompileError::Snapshot(e.to_string()))?).map_err(|e| CompileError::Snapshot(e.to_string()))?); + } query_plan .selected_dags .insert(query_id.clone(), installed.document.clone()); installed_dags.insert(query_id, installed); } + let maintenance_lookbacks = materializations + .iter() + .filter_map(|target| { + target + .derived_input + .as_ref() + .map(|input| (input, target.stored_window_ms())) + }) + .flat_map(|(input, window)| input.inputs.iter().map(move |source| (*source, window))) + .fold( + BTreeMap::::new(), + |mut windows, (source, window)| { + windows + .entry(source) + .and_modify(|old| *old = (*old).max(window)) + .or_insert(window); + windows + }, + ); for materialization in &mut materializations { let fingerprint = materialization.policy_fingerprint(); let max_lookback_ms = query_plan @@ -2326,6 +2395,7 @@ impl DeploymentPlanCompiler { .flat_map(QueryPlanEntry::materialization_bindings) .filter(|binding| binding.materialization.fingerprint() == fingerprint) .filter_map(|binding| binding.readout_lookback_ms) + .chain(maintenance_lookbacks.get(&fingerprint.into()).copied()) .max(); if let Some(lookback_ms) = max_lookback_ms { materialization.num_aggregates_to_retain = Some(retained_state_count( @@ -3434,6 +3504,11 @@ pub(crate) fn retained_partition_count( A::Increase | A::Rate | A::Min | A::Max ) || !materialization.grouping_labels.names().is_empty() + || (materialization.derived_input.is_some() + && matches!( + materialization.aggregation_type, + A::CountMinSketchWithHeap | A::CountSketchWithHeap + )) { u128::from(input_cardinality.unwrap_or(1).max(1)) } else { @@ -3761,6 +3836,21 @@ fn immutable_materialization_sources(node: &SummaryNode) -> Option { asap_types::sds::PopulationPartitioning::PerEntity diff --git a/control_plane/src/physical/executable_binding.rs b/control_plane/src/physical/executable_binding.rs index 93056ad3a..9c09bf26b 100644 --- a/control_plane/src/physical/executable_binding.rs +++ b/control_plane/src/physical/executable_binding.rs @@ -55,6 +55,7 @@ pub fn install_selected_dag( } precompute_sinks.sort(); let installed = InstalledPostAsapDag { + native_programs: std::collections::BTreeMap::new(), document: OwnedPostAsapDag::from_executable(query_id, dag)?, binding: BackendExecutableBinding { nodes, diff --git a/control_plane/src/physical/plan_dot.rs b/control_plane/src/physical/plan_dot.rs index b39ea0288..112674a6b 100644 --- a/control_plane/src/physical/plan_dot.rs +++ b/control_plane/src/physical/plan_dot.rs @@ -66,6 +66,14 @@ pub fn render(plan: &CompiledPhysicalPlan) -> String { edge.role )); } + for (sink, program) in &installed.native_programs { + render_native( + &mut dot, + &format!("maintenance_{dag_index}_{}", sink.0), + "Planner maintenance operators", + program, + ); + } dot.push_str(" }\n"); } dot.push_str(" }\n"); @@ -104,12 +112,48 @@ pub fn render(plan: &CompiledPhysicalPlan) -> String { )); } } + if let Some(program) = &entry.physical_dag { + render_native( + &mut dot, + &format!("native_query_{query_index}"), + "Planner query operators", + program, + ); + } dot.push_str(" }\n"); } dot.push_str("}\n"); dot } +fn render_native(dot: &mut String, prefix: &str, label: &str, program: &serde_json::Value) { + let Some(nodes) = program["nodes"].as_object() else { + return; + }; + dot.push_str(&format!( + " subgraph cluster_{prefix} {{\n label=\"{}\";\n", + escape(label) + )); + for (id, node) in nodes { + let operator = node.get("Operator"); + let label = operator + .map(|op| op["operator"]["kind"].to_string()) + .unwrap_or_else(|| "Bound physical input".into()); + emit_node( + dot, + &format!("{prefix}_{id}"), + &format!("#{id}\n{label}"), + "", + ); + if let Some(inputs) = operator.and_then(|op| op["inputs"].as_array()) { + for input in inputs { + dot.push_str(&format!(" {prefix}_{input} -> {prefix}_{id};\n")); + } + } + } + dot.push_str(" }\n"); +} + fn materialization_node(id: u64) -> String { format!("materialization_{id:016x}") } diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index bdb77a003..f321ce3ec 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -215,6 +215,28 @@ pub fn manifest( } } } + for installed in plan.precompute_plan.executable_dags.values() { + for (sink, program) in &installed.native_programs { + let Some(asap_types::executable_plan::BackendNodeBinding::Materialization { + stored_output, + }) = installed.binding.node(*sink) + else { + return Err(invalid("native maintenance sink is unbound")); + }; + let config = plan + .precompute_plan + .materializations + .iter() + .find(|m| m.policy_fingerprint() == stored_output.fingerprint()) + .ok_or_else(|| invalid("native maintenance config is absent"))?; + add( + format!("maintenance:{}", stored_output.0), + json!({"physical_program":program,"stored_output":stored_output,"window_ms":config.stored_window_ms(),"interval_ms":config.slide_interval.saturating_mul(1000)}), + "horizon", + 1.0, + ); + } + } for rule in &plan.transmission_plan.rules { add( format!("transport:{}:{}", rule.producer_id, rule.materialization.0), diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index 8a600ace5..d0d146d03 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -78,11 +78,14 @@ fn snapshot_work( entry: &asap_types::query_plan::QueryPlanEntry, rows: f64, ) -> Result<(f64, f64), CompileError> { - use planner_types::post_asap::{SketchParams, SummaryFamilyType}; let program = entry .physical_dag .as_ref() .ok_or_else(|| invalid("missing snapshot physical program"))?; + physical_work(program, rows) +} +fn physical_work(program: &Value, rows: f64) -> Result<(f64, f64), CompileError> { + use planner_types::post_asap::{SketchParams, SummaryFamilyType}; let nodes = program["nodes"] .as_object() .ok_or_else(|| invalid("invalid snapshot program"))?; @@ -129,6 +132,7 @@ fn snapshot_work( items += rows * (depth + capacity.max(2.0).log2()); bytes += groups * (width * depth * 8.0 + capacity * (SERIES_BYTES + 24.0)); } + "Readout" => items += rows, "KeyedReadout" => items += rows * rows.max(2.0).log2(), _ => { return Err(invalid(format!( @@ -357,6 +361,31 @@ pub(super) fn estimate( "backend_summary_decode_charged_in_transport": remote_backend}), ), )?; + } else if id.starts_with("maintenance:") { + let binding = &demand.implementation; + let interval = binding["interval_ms"] + .as_u64() + .filter(|value| *value > 0) + .ok_or_else(|| invalid("invalid native maintenance interval"))? + as f64 + / 1000.0; + let window = binding["window_ms"] + .as_u64() + .ok_or_else(|| invalid("missing native window"))? as f64 + / 1000.0; + let (cpu, workspace) = physical_work(&binding["physical_program"], cardinality)?; + let runs = (horizon / interval).ceil(); + let counter_scan = cardinality * (window / cadence).ceil() * CPU_PER_ITEM; + insert( + id.clone(), + resources( + runs * (cpu + counter_scan), + workspace * horizon, + 0.0, + vec![], + json!({"runs":runs,"input_series":cardinality,"window_seconds":window,"workspace_bytes_bound":workspace,"physical_program":binding["physical_program"]}), + ), + )?; } else if id.starts_with("state:") { let binding = &demand.implementation["binding"]; let materialization: asap_types::PolicyFingerprint = diff --git a/control_plane/tests/native_rate_topk.rs b/control_plane/tests/native_rate_topk.rs index d1cbfb129..b66566e67 100644 --- a/control_plane/tests/native_rate_topk.rs +++ b/control_plane/tests/native_rate_topk.rs @@ -41,6 +41,14 @@ fn rate_heap_candidates_bind_durable_counter_windows() { let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) else { continue; }; + if plan + .precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()) + { + continue; + } let entry = plan.query_plan.entries.values().next().unwrap(); let Some(program) = &entry.physical_dag else { continue; @@ -129,6 +137,11 @@ fn rate_heap_costs_can_select_each_compiled_candidate() { .map(ToString::to_string) .unwrap_or_default(); let preferred_plan = entry.physical_vector_binding().is_some() + && !plan + .precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()) && if preferred == "exact" { !program.contains("WithHeap") } else { @@ -166,3 +179,106 @@ fn rate_heap_costs_can_select_each_compiled_candidate() { } } } + +// Fixed-window candidates retain a native maintenance graph and read its heap +// state directly; removing that graph must make recovered installation invalid. +#[test] +fn fixed_window_rate_heap_candidates_install_both_physical_graphs() { + let mut input = fixture(true); + let mut wire = serde_json::to_value(&input).unwrap(); + wire["query_workload"]["repeating_queries"][0]["demand"]["fixed_interval_at"]["interval"] = + 60_000.into(); + wire["query_workload"]["repeating_queries"][0]["demand"]["fixed_interval_at"] + ["evaluation_phase"] = 0.into(); + input = serde_json::from_value(wire).unwrap(); + let (request, environment) = input.into_physical_compilation_request().unwrap(); + let mut families = std::collections::BTreeSet::new(); + let mut errors = Vec::new(); + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + let plan = match DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) { + Ok(plan) => plan, + Err(error) => { + errors.push(error.to_string()); + continue; + } + }; + for installed in plan.precompute_plan.executable_dags.values() { + for sink in installed.native_programs.keys() { + let program = installed.native_program(*sink).unwrap().unwrap(); + let encoded = String::from_utf8(program.encode().unwrap()).unwrap(); + for family in ["CmsWithHeap", "CountSketchWithHeap"] { + if encoded.contains(family) { + families.insert(family); + } + } + assert!(encoded.contains("Rate")); + let entry = plan.query_plan.entries.values().next().unwrap(); + let query = entry.recover_vector_physical_dag().unwrap(); + assert!(!String::from_utf8(query.encode().unwrap()) + .unwrap() + .contains("KeyedSummaryBuild")); + let mut broken = plan.precompute_plan.clone(); + for installed in broken.executable_dags.values_mut() { + installed.native_programs.clear(); + } + assert!(broken.validate().is_err()); + } + } + } + assert_eq!( + families, + std::collections::BTreeSet::from(["CmsWithHeap", "CountSketchWithHeap"]), + "{errors:#?}" + ); +} + +// Candidate costs include the persisted maintenance graph, not just its cheap readout. +#[test] +fn fixed_window_heap_costs_include_native_maintenance() { + let mut wire = serde_json::to_value(fixture(true)).unwrap(); + wire["query_workload"]["repeating_queries"][0]["demand"]["fixed_interval_at"]["interval"] = + 60_000.into(); + wire["query_workload"]["repeating_queries"][0]["demand"]["fixed_interval_at"] + ["evaluation_phase"] = 0.into(); + let input: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let ids = enumerate_exact_and_materialized_candidates(request) + .unwrap() + .into_iter() + .filter_map(|candidate| { + DeploymentPlanCompiler + .compile_promql(candidate, environment.clone()) + .ok() + }) + .filter(|plan| { + plan.precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()) + }) + .map(|plan| plan.envelope.plan_id) + .collect::>(); + assert!(!ids.is_empty()); + let report = input.compile_promql().unwrap().cost_comparison.unwrap(); + let candidates = report + .candidate_evaluations + .iter() + .filter(|candidate| candidate.plan_id.is_some_and(|id| ids.contains(&id))) + .collect::>(); + assert!(!candidates.is_empty()); + for candidate in candidates { + assert!( + candidate.total_cost.is_some(), + "{:?}", + candidate.unavailable_reason + ); + let resources = candidate.automatic_cost.as_ref().unwrap(); + assert!(resources + .components + .iter() + .any(|(id, resource)| id.starts_with("maintenance:") + && resource.cpu_seconds > 0. + && resource.memory_byte_seconds > 0. + && resource.calculation.get("physical_program").is_some())); + } +} diff --git a/crates/asap_types/src/executable_plan.rs b/crates/asap_types/src/executable_plan.rs index 1c89096c6..8427b9942 100644 --- a/crates/asap_types/src/executable_plan.rs +++ b/crates/asap_types/src/executable_plan.rs @@ -178,6 +178,10 @@ impl OwnedPostAsapDag { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(deny_unknown_fields)] pub struct InstalledPostAsapDag { + /// Planner-compiled bounded programs keyed by persisted output node. + /// Deployment bindings below identify their stored input/output instances. + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] + pub native_programs: BTreeMap, pub document: OwnedPostAsapDag, pub binding: BackendExecutableBinding, } @@ -190,7 +194,64 @@ impl InstalledPostAsapDag { if self.document.schema_version != MAINTENANCE_DAG_SCHEMA_VERSION { return Err("unsupported maintenance DAG document version".into()); } - self.binding.validate_maintenance(&self.document.decode()?) + self.binding + .validate_maintenance(&self.document.decode()?)?; + for sink in self.native_programs.keys() { + self.native_program(*sink)?; + } + Ok(()) + } + + /// Recovery validates the physical producer's typed storage boundaries; + /// it never lowers the semantic provenance document again. + pub fn native_program( + &self, + sink: PostAsapNodeId, + ) -> Result, String> + { + let Some(value) = self.native_programs.get(&sink) else { + return Ok(None); + }; + let program = asap_physical_operators::physical_planner::CompiledPhysicalDag::decode( + &serde_json::to_vec(value).map_err(|e| e.to_string())?, + ) + .map_err(|e| e.to_string())?; + if program.roots() != [u64::from(sink.0)] || !self.binding.precompute_sinks.contains(&sink) + { + return Err("native maintenance program differs from its installed sink".into()); + } + let dag = self.document.decode()?; + for (id, contract) in program.input_contracts() { + let id = PostAsapNodeId(u32::try_from(id).map_err(|_| "physical source id overflow")?); + if id == sink + || !matches!( + self.binding.node(id), + Some(BackendNodeBinding::Materialization { .. }) + ) + || dag + .nodes + .iter() + .find(|n| n.id == id) + .is_none_or(|n| n.output_schema != *contract.schema) + { + return Err( + "native maintenance source differs from installed state boundary".into(), + ); + } + } + let output = program + .output_contract(u64::from(sink.0)) + .map_err(|e| e.to_string())?; + if program.input_contracts().count() == 0 + || dag + .nodes + .iter() + .find(|n| n.id == sink) + .is_none_or(|n| n.output_schema != *output.schema) + { + return Err("native maintenance output differs from semantic schema".into()); + } + Ok(Some(program)) } /// Project the selected semantic DAG onto the maintenance ancestors of its @@ -379,6 +440,7 @@ mod tests { #[test] fn installed_maintenance_dag_rejects_complete_dag_version() { let installed = InstalledPostAsapDag { + native_programs: std::collections::BTreeMap::new(), document: OwnedPostAsapDag { schema_version: OWNED_POST_ASAP_DAG_SCHEMA_VERSION, query_id: "q".into(), diff --git a/crates/asap_types/src/precompute_plan.rs b/crates/asap_types/src/precompute_plan.rs index 96c558ce9..40573bb17 100644 --- a/crates/asap_types/src/precompute_plan.rs +++ b/crates/asap_types/src/precompute_plan.rs @@ -549,12 +549,6 @@ impl PrecomputePlan { return Err(invalid()); } validated_source_window_cohort(config, &sources)?; - if sources - .iter() - .any(|source| !matches!(source.aggregation_type, crate::AggregationType::Sum)) - { - return Err(invalid()); - } if config.window_size != config.slide_interval { return Err(invalid()); } @@ -576,8 +570,26 @@ impl PrecomputePlan { .iter() .find(|node| node.id == *sink) .ok_or_else(invalid)?; - validate_maintenance_reduction(config, target_node) + let native = installed + .native_program(*sink) .map_err(PrecomputePlanError::CatalogContract)?; + if sources.iter().any(|source| { + !matches!(source.aggregation_type, crate::AggregationType::Sum) + && !(native.is_some() + && matches!(source.aggregation_type, crate::AggregationType::Rate)) + }) { + return Err(invalid()); + } + if native.is_none() { + validate_maintenance_reduction(config, target_node) + .map_err(PrecomputePlanError::CatalogContract)?; + } else if !matches!( + config.aggregation_type, + crate::AggregationType::CountMinSketchWithHeap + | crate::AggregationType::CountSketchWithHeap + ) { + return Err(invalid()); + } let inputs: Vec<_> = dag .edges .iter() diff --git a/crates/asap_types/src/query_plan.rs b/crates/asap_types/src/query_plan.rs index 9fcda7c3e..b509908ca 100644 --- a/crates/asap_types/src/query_plan.rs +++ b/crates/asap_types/src/query_plan.rs @@ -605,7 +605,7 @@ pub struct ExternalExactRequest { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(tag = "op", rename_all = "snake_case", deny_unknown_fields)] pub enum QueryPlanNode { - /// Bind deployment-provided vectors to the already compiled physical DAG. + /// Bind deployment-provided vectors or stored batches to the compiled physical DAG. /// Input positions correspond to `source_nodes`; operators live only in /// QueryPlanEntry.physical_dag, never in this binding. Physical { diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs index ecd2a414e..8e49e3212 100644 --- a/crates/asap_types/src/query_plan/native.rs +++ b/crates/asap_types/src/query_plan/native.rs @@ -354,6 +354,16 @@ impl QueryPlanEntry { return Err(invalid("invalid physical vector source mapping or budget")); } for input in inputs { + if let Some(QueryPlanNode::ReadMaterialization { binding }) = self.nodes.get(input) { + if binding.readout_lookback_ms != Some(self.instant.lookback_ms) + || binding.window_ms != self.instant.lookback_ms + || binding.window_ms == 0 + || !matches!(&binding.output_grouping, PhysicalGrouping::Reduce(labels) if labels.is_empty()) + { + return Err(invalid(&format!("stored native batch requires one complete bound window: {binding:?}, query lookback {}", self.instant.lookback_ms))); + } + continue; + } let Some(QueryPlanNode::ExactReadout { input: state, readout: ExactReadout::Rate, @@ -422,7 +432,13 @@ impl QueryPlanEntry { }; if dag .input_contracts() - .any(|(_, input)| !vector_schema(&input.schema)) + .any(|(id, input)| { + let position = source_nodes.iter().position(|source| *source == id).unwrap(); + if matches!(self.nodes.get(&inputs[position]), Some(QueryPlanNode::ReadMaterialization { .. })) { + let summaries = input.schema.fields.iter().filter(|field| !matches!(field.dtype, SummaryFamilyType::Plain(_))).collect::>(); + !matches!(summaries.as_slice(), [field] if matches!(&field.dtype, SummaryFamilyType::Sketch(kind, _) if matches!(kind.algorithm(), planner_types::post_asap::SketchAlgorithm::CmsWithHeap | planner_types::post_asap::SketchAlgorithm::CountSketchWithHeap))) + } else { !vector_schema(&input.schema) } + }) || !vector_schema( &dag.output_contract(dag.roots()[0]) .map_err(|e| QueryPlanError::Invalid(e.to_string()))? diff --git a/data_plane/src/precompute_engine/maintenance_runtime.rs b/data_plane/src/precompute_engine/maintenance_runtime.rs index 3206809e0..c3b868ac2 100644 --- a/data_plane/src/precompute_engine/maintenance_runtime.rs +++ b/data_plane/src/precompute_engine/maintenance_runtime.rs @@ -1460,8 +1460,12 @@ fn execute_finite_complete_populations( .iter() .find(|node| node.id == sink) .ok_or("complete target node is absent")?; - asap_types::precompute_plan::validate_maintenance_reduction(config, target_node)?; - if !matches!(&target_node.payload, ExecutableOperatorPayload::SummaryAgg { + let native_program = installed.native_program(sink)?; + if native_program.is_none() { + asap_types::precompute_plan::validate_maintenance_reduction(config, target_node)?; + } + if native_program.is_none() + && !matches!(&target_node.payload, ExecutableOperatorPayload::SummaryAgg { reduction: planner_types::pre_asap::Reduction::Reduce(keys), .. } if keys.is_empty()) { @@ -1511,6 +1515,26 @@ fn execute_finite_complete_populations( for window in common_windows.unwrap_or_default() { let cohort = store.read_complete_raw_maintenance_cohort(generation, &derived.inputs, window)?; + if let Some(program) = &native_program { + let max_bytes = asap_physical_operators::runtime::Limits::default().max_bytes; + let batch = super::native_maintenance::execute( + installed, + program, + cohort.inputs(), + window, + max_bytes, + )?; + let mut output = crate::storage_engines::types::PrecomputedOutput::new( + window.0, + window.1, + None, + target.fingerprint(), + ); + output.population_labels = Some(Population::new()); + output.catalog_generation = Some(Arc::clone(generation)); + store.publish_native_summary_output(resolver, config, &output, batch, max_bytes)?; + continue; + } let (dag, key) = prepare_frozen_maintenance_sink( installed, &plan.materializations, @@ -2797,6 +2821,7 @@ mod tests { }, ); let installed = InstalledPostAsapDag { + native_programs: std::collections::BTreeMap::new(), document, binding: durable_binding, }; @@ -3181,7 +3206,11 @@ mod tests { binding .nodes .insert(PostAsapNodeId(6), BackendNodeBinding::MaintenanceInput); - let installed = InstalledPostAsapDag { document, binding }; + let installed = InstalledPostAsapDag { + native_programs: BTreeMap::new(), + document, + binding, + }; let configs = [first, second, target]; let catalog = Arc::new( asap_types::summary_catalog::SummaryCatalog::from_materializations(2, 1, &configs) @@ -4142,6 +4171,7 @@ mod tests { bundle.precompute_plan.executable_dags = BTreeMap::from([( "retry".into(), InstalledPostAsapDag { + native_programs: BTreeMap::new(), document: { let mut document = OwnedPostAsapDag::from_executable("retry".into(), &dag).unwrap(); diff --git a/data_plane/src/precompute_engine/mod.rs b/data_plane/src/precompute_engine/mod.rs index 726801a29..8019d2568 100644 --- a/data_plane/src/precompute_engine/mod.rs +++ b/data_plane/src/precompute_engine/mod.rs @@ -8,6 +8,7 @@ pub mod ingest_handler; pub mod maintenance_runtime; pub(crate) mod metrics; pub mod multisource_coordinator; +mod native_maintenance; pub mod output_sink; pub mod raw_dag; pub mod series_buffer; diff --git a/data_plane/src/precompute_engine/native_maintenance.rs b/data_plane/src/precompute_engine/native_maintenance.rs new file mode 100644 index 000000000..dba59db09 --- /dev/null +++ b/data_plane/src/precompute_engine/native_maintenance.rs @@ -0,0 +1,130 @@ +//! Bind a complete durable counter cohort to a Planner-owned maintenance graph. +use std::{collections::BTreeMap, sync::Arc}; + +use asap_physical_operators::{ + operators::Operator, + physical_planner::{CompiledPhysicalDag, Source}, + runtime::{Limits, RunContext, Scope}, + values::{Batch, Value}, +}; +use asap_types::executable_plan::{BackendNodeBinding, InstalledPostAsapDag}; +use futures::{executor::block_on, StreamExt}; +use planner_types::{ + post_asap::{PostAsapNodeId, SummaryFamilyType}, + pre_asap::DataType, +}; + +pub(super) fn execute( + installed: &InstalledPostAsapDag, + program: &CompiledPhysicalDag, + inputs: &[crate::storage_engines::sketch_db::index::FrozenExactWindows], + window: (u64, u64), + max_bytes: usize, +) -> Result { + let mut sources = BTreeMap::new(); + let mut input_bytes = 0usize; + for (id, contract) in program.input_contracts() { + let node = PostAsapNodeId(u32::try_from(id).map_err(|_| "native source id overflow")?); + let Some(BackendNodeBinding::Materialization { stored_output }) = + installed.binding.node(node) + else { + return Err("native maintenance input has no stored binding".into()); + }; + let mut rows = Vec::new(); + for input in inputs + .iter() + .filter(|input| input.stored_output_reference.stored_output_id == *stored_output) + { + let state = input + .windows + .get(&window) + .ok_or("native maintenance requires an exact complete counter window")?; + let row = contract + .schema + .fields + .iter() + .map(|field| match &field.dtype { + SummaryFamilyType::ExactAggregate( + planner_types::post_asap::ExactKind::Rate, + _, + ) => Ok(Value::Summary { + family: field.dtype.clone(), + state: Arc::clone(state), + }), + SummaryFamilyType::Plain(DataType::Timestamp) => Ok(Value::Timestamp( + i64::try_from(window.1).map_err(|_| "native window overflow")?, + )), + SummaryFamilyType::Plain(DataType::Utf8) + if field.name == "$promql_series_identity" => + { + Ok(Value::Utf8( + serde_json::to_string(&input.group) + .map_err(|e| e.to_string())? + .into(), + )) + } + SummaryFamilyType::Plain(DataType::Utf8) => Ok(Value::Utf8( + input + .group + .get(&field.name) + .cloned() + .unwrap_or_default() + .into(), + )), + _ => Err("unsupported native maintenance stored input field".to_string()), + }) + .collect::, String>>()?; + rows.push(row); + } + let batch = Batch::try_new(contract.schema.clone(), rows).map_err(|e| e.to_string())?; + input_bytes = input_bytes + .checked_add(batch.bytes()) + .ok_or("native input size overflow")?; + if input_bytes > max_bytes { + return Err("native maintenance input exceeds run budget".into()); + } + sources.insert( + id, + Box::new( + Operator::source(contract.schema.clone(), vec![batch]) + .map_err(|e| e.to_string())?, + ) as Source<'_>, + ); + } + let graph = program.instantiate(sources).map_err(|e| e.to_string())?; + let context = RunContext::new( + Scope::Ingestion { + window_start_ms: i64::try_from(window.0).map_err(|_| "native window overflow")?, + window_end_ms: i64::try_from(window.1).map_err(|_| "native window overflow")?, + revision: 0, + }, + Limits { + max_bytes, + ..Limits::default() + }, + ) + .map_err(|e| e.to_string())?; + let schema = program + .output_contract(program.roots()[0]) + .map_err(|e| e.to_string())? + .schema; + let mut stream = graph + .execute(program.roots(), context) + .map_err(|e| e.to_string())? + .remove(0); + block_on(async { + let mut rows = Vec::new(); + let mut bytes = 0usize; + while let Some(batch) = stream.next().await { + let batch = batch.map_err(|e| e.to_string())?; + bytes = bytes + .checked_add(batch.bytes()) + .ok_or("native output size overflow")?; + if bytes > max_bytes { + return Err("native maintenance output exceeds publication budget".into()); + } + rows.extend(batch.rows().iter().cloned()); + } + Batch::try_new(schema, rows).map_err(|e| e.to_string()) + }) +} diff --git a/data_plane/src/query_engines/asap_query_engine/engine.rs b/data_plane/src/query_engines/asap_query_engine/engine.rs index ede83919d..afb3e3e12 100644 --- a/data_plane/src/query_engines/asap_query_engine/engine.rs +++ b/data_plane/src/query_engines/asap_query_engine/engine.rs @@ -400,11 +400,28 @@ impl ASAPQueryEngine { .summary_store .as_ref() .map(|index| index.summary_update_revision()); - let result = super::logical_dag::execute_installed( - entry, - leaves, - at, - |root, evaluation_ms| { + let result = if entry + .physical_vector_binding() + .is_some_and(|(inputs, _, _)| { + inputs.iter().all(|input| { + matches!( + entry.nodes.get(input), + Some(asap_types::query_plan::QueryPlanNode::ReadMaterialization { .. }) + ) + }) + }) { + let store = self.summary_store.as_ref().ok_or_else(|| { + EngineError::capability_miss("native_stored", "summary store unavailable") + })?; + super::logical_dag::native_values::execute_stored( + entry, + physical.query_plan.plan_id, + physical.query_plan.plan_version, + store, + at, + ) + } else { + super::logical_dag::execute_installed(entry, leaves, at, |root, evaluation_ms| { if let Some(asap_types::query_plan::QueryPlanNode::Logical { operator: asap_types::query_plan::residual::ResidualQueryOperator::CurrentSeries { @@ -521,8 +538,8 @@ impl ASAPQueryEngine { evaluation_ms, false, )) - }, - ); + }) + }; let current = self .summary_store .as_ref() diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs index 6340553d2..13d5b3fae 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag.rs @@ -1,5 +1,5 @@ //! Executes the installed typed logical DAG. No serving-time PromQL parsing. -mod native_values; +pub(super) mod native_values; use crate::query_engines::{ query_result::{InstantVectorElement, QueryResult}, EngineError, diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index 2ca9cf2bd..b77029d47 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -147,15 +147,7 @@ where u64, ) -> Result, { - use crate::{ - query_engines::query_result::{InstantVectorElement, QueryResult}, - storage_engines::types::KeyByLabelValues, - }; - use asap_physical_operators::physical_planner::{ - promql_rows::{decode_series_identity, series_row, SERIES_IDENTITY_COLUMN}, - Source, - }; - use futures::{executor::block_on, StreamExt}; + use asap_physical_operators::physical_planner::promql_rows::series_row; use std::collections::BTreeMap; let (program, bindings, max_bytes) = if let Some((inputs, source_nodes, budget)) = entry.physical_vector_binding() { @@ -181,19 +173,112 @@ where entry.population_snapshot().unwrap().max_bytes, ) }; + execute_batches( + &program, + max_bytes, + bindings.len(), + at, + |input_id, schema| { + let values = super::vector(super::from_result(callback(bindings[&input_id], at)?)?)?; + let rows = values + .into_iter() + .map(|(labels, value)| { + series_row( + schema, + &labels, + i64::try_from(at).map_err(|_| miss("evaluation timestamp overflow"))?, + value, + ) + .map_err(|e| miss(e.to_string())) + }) + .collect::, _>>()?; + Batch::try_new(schema.clone(), rows).map_err(|e| miss(e.to_string())) + }, + ) +} + +pub(in crate::query_engines::asap_query_engine) fn execute_stored( + entry: &asap_types::query_plan::QueryPlanEntry, + plan_id: u64, + plan_version: u64, + store: &crate::storage_engines::sketch_db::index::SketchStore, + at: u64, +) -> Result< + ( + crate::query_engines::query_result::QueryResult, + super::ExecutionStats, + ), + EngineError, +> { + let (inputs, sources, max_bytes) = entry + .physical_vector_binding() + .ok_or_else(|| miss("missing native stored binding"))?; + let program = entry + .recover_vector_physical_dag() + .map_err(|e| miss(e.to_string()))?; + execute_batches(&program, max_bytes, inputs.len(), at, |id, schema| { + let index = sources + .iter() + .position(|source| *source == id) + .ok_or_else(|| miss("native source is unbound"))?; + let Some(asap_types::query_plan::QueryPlanNode::ReadMaterialization { binding }) = + entry.nodes.get(&inputs[index]) + else { + return Err(miss("native stored source is not a bound heap")); + }; + let end = i64::try_from(at).map_err(|_| miss("native timestamp overflow"))?; + let start = at + .checked_sub(binding.window_ms) + .ok_or_else(|| miss("native window underflow"))?; + let address = asap_types::sds::StoredSummaryKey { + plan_id, + plan_version, + stored_output_id: binding.stored_output_reference.stored_output_id, + population: std::collections::BTreeMap::new(), + window: asap_types::sds::HalfOpenTimeRange { + start_ms: start as i64, + end_ms: end, + }, + }; + store + .read_bound_native_summary( + &address, + &binding.stored_output_reference, + schema.clone(), + max_bytes as usize, + ) + .map_err(miss) + }) +} + +fn execute_batches( + program: &asap_physical_operators::physical_planner::CompiledPhysicalDag, + max_bytes: u64, + input_count: usize, + at: u64, + mut input_batch: impl FnMut(u64, &Schema) -> Result, +) -> Result< + ( + crate::query_engines::query_result::QueryResult, + super::ExecutionStats, + ), + EngineError, +> { + use crate::{ + query_engines::query_result::{InstantVectorElement, QueryResult}, + storage_engines::types::KeyByLabelValues, + }; + use asap_physical_operators::physical_planner::{ + promql_rows::{decode_series_identity, SERIES_IDENTITY_COLUMN}, + Source, + }; + use futures::{executor::block_on, StreamExt}; + use std::collections::BTreeMap; let at_signed = i64::try_from(at).map_err(|_| miss("evaluation timestamp overflow"))?; let mut sources = BTreeMap::new(); let mut input_bytes = 0usize; for (input_id, input) in program.input_contracts() { - let values = super::vector(super::from_result(callback(bindings[&input_id], at)?)?)?; - let rows = values - .into_iter() - .map(|(labels, value)| { - series_row(&input.schema, &labels, at_signed, value) - .map_err(|e| miss(e.to_string())) - }) - .collect::, _>>()?; - let batch = Batch::try_new(input.schema.clone(), rows).map_err(|e| miss(e.to_string()))?; + let batch = input_batch(input_id, &input.schema)?; input_bytes = input_bytes .checked_add(batch.bytes()) .ok_or_else(|| miss("physical input size overflow"))?; @@ -259,7 +344,7 @@ where Ok(( QueryResult::vector(values, at), super::ExecutionStats { - summary_readout_evaluations: bindings.len(), + summary_readout_evaluations: input_count, ..Default::default() }, )) diff --git a/data_plane/src/storage_engines/sketch_db/index/native.rs b/data_plane/src/storage_engines/sketch_db/index/native.rs index 1493cddaf..0fa3bb97b 100644 --- a/data_plane/src/storage_engines/sketch_db/index/native.rs +++ b/data_plane/src/storage_engines/sketch_db/index/native.rs @@ -19,20 +19,49 @@ struct NativeSummaryOutput { } impl NativeSummaryOutput { fn new(batch: Batch, max_bytes: usize) -> Result { - let [row] = batch.rows() else { - return Err("one stored summary record requires one output row".into()); - }; - let states: Vec<_> = row + let families = batch + .schema() + .fields .iter() - .filter_map(|value| match value { - Value::Summary { state, .. } => Some(state), - _ => None, + .filter_map(|field| { + (!matches!( + field.dtype, + planner_types::post_asap::SummaryFamilyType::Plain(_) + )) + .then_some(&field.dtype) }) - .collect(); - let [state] = states.as_slice() else { - return Err("stored native summary requires exactly one summary state".into()); + .collect::>(); + let [family] = families.as_slice() else { + return Err("native stored batch requires one summary column".into()); + }; + use planner_types::post_asap::{SketchAlgorithm, SummaryFamilyType}; + let schema_kind = match family { + SummaryFamilyType::Sketch(sketch, _) => match sketch.algorithm() { + SketchAlgorithm::CmsWithHeap => Some(AggregationType::CountMinSketchWithHeap), + SketchAlgorithm::CountSketchWithHeap => Some(AggregationType::CountSketchWithHeap), + _ => None, + }, + _ => None, }; - let kind = state.get_accumulator_type(); + let mut kind = schema_kind; + for row in batch.rows() { + let states = row + .iter() + .filter_map(|value| match value { + Value::Summary { state, .. } => Some(state), + _ => None, + }) + .collect::>(); + let [state] = states.as_slice() else { + return Err("native stored row requires one summary state".into()); + }; + let row_kind = state.get_accumulator_type(); + if kind.is_some_and(|kind| kind != row_kind) { + return Err("native stored rows have different summary families".into()); + } + kind = Some(row_kind); + } + let kind = kind.ok_or("empty native batch has no supported summary family")?; let bytes = encode_batch(&batch).map_err(|error| error.to_string())?; if bytes.len() > max_bytes || batch.bytes() > max_bytes { return Err("native summary exceeds publication/read budget".into()); @@ -48,7 +77,11 @@ impl NativeSummaryOutput { .iter() .position(|field| &field.name == key) .ok_or("native output is missing its stored group key")?; - if !matches!(&self.batch.rows()[0][column], Value::Utf8(actual) if actual.as_ref() == value) + if self + .batch + .rows() + .iter() + .any(|row| !matches!(&row[column], Value::Utf8(actual) if actual.as_ref() == value)) { return Err("native output group differs from stored address".into()); } @@ -128,7 +161,22 @@ impl SketchStore { let (population_key, group) = build_attrs_fp_and_label_map(config, output)?; let state = NativeSummaryOutput::new(batch, max_bytes)?; let family = config.accumulator_spec().map_err(|e| e.to_string())?.family; - for value in &state.batch.rows()[0] { + if state + .batch + .schema() + .fields + .iter() + .filter(|field| { + !matches!( + field.dtype, + planner_types::post_asap::SummaryFamilyType::Plain(_) + ) + }) + .any(|field| field.dtype != family) + { + return Err("native output schema differs from installed definition".into()); + } + for value in state.batch.rows().iter().flatten() { if let Value::Summary { family: actual, .. } = value { if actual != &family { return Err("native output family differs from installed definition".into()); @@ -206,6 +254,46 @@ impl SketchStore { let sid = resolver .lookup("stored-output", &population_key, &identity) .ok_or("native stored output/group is unavailable")?; + self.read_native_summary_handle(sid, address, reference, expected_schema, max_bytes) + } + + /// A complete native batch is stored atomically under one global address. + /// Logical grouping remains in the batch; reads never allocate a resolver ID. + pub fn read_bound_native_summary( + &self, + address: &asap_types::sds::StoredSummaryKey, + reference: &StoredOutputReference, + expected_schema: Schema, + max_bytes: usize, + ) -> Result { + if !address.population.is_empty() { + return Err("native batch binding requires the complete stored output".into()); + } + let handles = self.storage_handles_for_output(reference); + let [sid] = handles.as_slice() else { + return Err("native stored output is absent or ambiguous".into()); + }; + self.read_native_summary_handle(*sid, address, reference, expected_schema, max_bytes) + } + + fn read_native_summary_handle( + &self, + sid: u64, + address: &asap_types::sds::StoredSummaryKey, + reference: &StoredOutputReference, + expected_schema: Schema, + max_bytes: usize, + ) -> Result { + address.validate().map_err(|e| e.to_string())?; + let generation = self + .active_catalog_generation() + .ok_or("native read has no active generation")?; + if (address.plan_id, address.plan_version) != (generation.plan_id, generation.plan_version) + || address.stored_output_id != reference.stored_output_id + || self.stored_output_for_handle(sid).as_ref() != Some(reference) + { + return Err("native read differs from its installed output binding".into()); + } let window = ( u64::try_from(address.window.start_ms).map_err(|_| "negative native window")?, u64::try_from(address.window.end_ms).map_err(|_| "negative native window")?, @@ -483,6 +571,13 @@ mod tests { 1 << 20, ) .unwrap(); + let direct = store + .read_bound_native_summary(&address, &reference, expected_schema.clone(), 1 << 20) + .unwrap(); + assert_eq!( + encode_batch(&direct).unwrap(), + encode_batch(&batch).unwrap() + ); let handles = store.storage_handles_for_output(&reference); assert_eq!(handles.len(), 1); let frames = store.query_range(handles[0], 0, 60_000); diff --git a/data_plane/tests/support/rate_heap_process.rs b/data_plane/tests/support/rate_heap_process.rs index 4c023a1b2..dc8681ca9 100644 --- a/data_plane/tests/support/rate_heap_process.rs +++ b/data_plane/tests/support/rate_heap_process.rs @@ -12,15 +12,25 @@ use control_plane::physical::{ // -> HTTP. Restart reads the same bound SDS and retained physical program. #[tokio::test] async fn rate_countsketch_heap_survives_counter_reset_and_durable_restart() { - run("CountSketchWithHeap").await; + run("CountSketchWithHeap", false).await; } #[tokio::test] async fn rate_cms_heap_survives_counter_reset_and_durable_restart() { - run("CmsWithHeap").await; + run("CmsWithHeap", false).await; } -async fn run(algorithm: &str) { +// The maintenance graph publishes the heap itself before HTTP readout and restart. +#[tokio::test] +async fn precomputed_rate_countsketch_heap_survives_durable_restart() { + run("CountSketchWithHeap", true).await; +} +#[tokio::test] +async fn precomputed_rate_cms_heap_survives_durable_restart() { + run("CmsWithHeap", true).await; +} + +async fn run(algorithm: &str, precomputed: bool) { let query = "topk by (job) (1, rate(requests_total[1m]))"; let mut wire: Value = serde_json::from_str(include_str!( "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" @@ -35,7 +45,7 @@ async fn run(algorithm: &str) { wire["query_workload"]["repeating_queries"] = serde_json::json!([entry]); wire["implementation"]["topk_evidence"] = serde_json::json!({}); wire["implementation"]["data_snapshot_id"] = "rate-heap-process".into(); - // Fixture rates: winner >=500, excluded rates <=10, at most three series. + // Fixture rates: winner >=500, excluded rates <=10, at most three series per ranking group. wire["implementation"]["accuracy_evidence"] = serde_json::json!({query:{ "query_string":query,"data_snapshot_id":"rate-heap-process", "data_workload":wire["data_workload"],"source":"enforced-test-population", @@ -62,6 +72,13 @@ async fn run(algorithm: &str) { .as_ref() .is_some_and(|program| program.to_string().contains(algorithm)) }); + let heap = heap + && plan + .precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()) + == precomputed; saw_heap |= heap; let manifest = manifest(&plan, &candidate.queries).unwrap(); Some(WorkloadQuote { @@ -94,7 +111,17 @@ async fn run(algorithm: &str) { .to_string() .contains(algorithm)); entry.recover_vector_physical_dag().unwrap(); - assert_eq!(plan.precompute_plan.materializations.len(), 1); + assert_eq!( + plan.precompute_plan.materializations.len(), + if precomputed { 2 } else { 1 } + ); + assert_eq!( + plan.precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()), + precomputed + ); let install = data_plane::drivers::query::servers::http::PhysicalPlanInstallRequest { summary_catalog: plan.summary_catalog, @@ -200,6 +227,20 @@ async fn run(algorithm: &str) { &samples, ) }) + .chain(std::iter::once(series_with_labels( + "requests_total", + &[("job", "worker"), ("unreferenced_instance", "d")], + &[ + (1000, 2000.), + (20000, 40000.), + (40000, 80000.), + (60000, 120000.), + (61000, 122000.), + (80000, 160000.), + (100000, 200000.), + (120000, 240000.), + ], + ))) .collect(), }; assert_eq!(remote_write(&client, &backend, &request).await, 204); @@ -218,13 +259,26 @@ async fn run(algorithm: &str) { ) .await; let rows = body["data"]["result"].as_array().unwrap(); - assert_eq!(rows.len(), 1, "{body}"); - assert_eq!(rows[0]["metric"]["unreferenced_instance"], winner, "{body}"); - let value = rows[0]["value"][1] - .as_str() - .unwrap() - .parse::() + assert_eq!(rows.len(), 2, "{body}"); + assert!( + rows.iter() + .all(|row| row["metric"].get("__name__").is_none()), + "Rate must drop the metric name: {body}" + ); + let api = rows + .iter() + .find(|row| row["metric"]["job"] == "api") + .unwrap(); + let worker = rows + .iter() + .find(|row| row["metric"]["job"] == "worker") .unwrap(); + assert_eq!(worker["metric"]["unreferenced_instance"], "d"); + assert!( + (worker["value"][1].as_str().unwrap().parse::().unwrap() - 2000.).abs() < 1e-8 + ); + assert_eq!(api["metric"]["unreferenced_instance"], winner, "{body}"); + let value = api["value"][1].as_str().unwrap().parse::().unwrap(); assert!((value - score).abs() < 1e-8, "{body}, expected {score}"); if restart { assert_eq!(body["data"]["result"], expected[index]); diff --git a/docs/design_docs/evidence-dependent-candidates.md b/docs/design_docs/evidence-dependent-candidates.md index 0931f5f03..69977e239 100644 --- a/docs/design_docs/evidence-dependent-candidates.md +++ b/docs/design_docs/evidence-dependent-candidates.md @@ -332,3 +332,10 @@ is sufficient. Exact ranking remains available. The installed physical program consumes the complete per-series Rate vector from bound counter SDS; Backend quotes can select any of the three programs, and automatic costs charge the actual native workspace. Operator support alone does not supply accuracy proof. + +A fixed-window Rate heap candidate places Rate finalization and heap construction +in precompute and persists the heap. Query-time construction remains a separate +candidate. This placement requires a complete, durable counter population for the +same window and does not authorize merging rates across windows. The initial +runtime realization uses the finite-source completion barrier. Candidate admission +must reject deployments unable to satisfy that completion requirement. diff --git a/docs/design_docs/summary-catalog-sds-architecture.md b/docs/design_docs/summary-catalog-sds-architecture.md index c406a7925..e757eabb1 100644 --- a/docs/design_docs/summary-catalog-sds-architecture.md +++ b/docs/design_docs/summary-catalog-sds-architecture.md @@ -176,6 +176,14 @@ the producer's input contract, not inferred from interval endpoints alone. A replacement snapshot replaces a record's revision; readers must not mix its old metadata with new bytes or count both snapshots as separate inputs. +The stored output also fixes its publication granularity. A native grouped heap +may publish all groups as one typed batch for a complete window, with an empty +outer `group_key`. Group columns remain inside that batch and in its semantic +definition. The installed query reads the batch and runs Planner's grouped +readout. This makes the complete group set atomic across publication and recovery; +it does not claim that the logical computation has no grouping. A per-group record +layout and a complete-batch layout cannot silently substitute for each other. + ## 5. Semantic identity vs. deployed-output identity SDS uses two identities because they answer different questions: diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 1c28eb6d2..6ca558968 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -98,3 +98,26 @@ families preserve hidden series labels, account for counter resets and rebuild ranking independently for each window. Missing windows cannot serve a warm result. This path stores counter state and builds the heap at query time; publishing the heap itself during precompute requires a separate placement. + +Fixed-window Rate ranking has a second placement: Planner finalizes the complete +per-series counter window and builds the heap during maintenance. The deployment +binds the resulting heap to SDS; the query graph contains readout and ranking +projection only. Counter states are the bounded input buffer, including timestamps +and resets. Rates from different windows are never added as heap updates. + +This placement runs after the finite input cohort is closed and durable. It does +not infer population completeness from a timer or a missing series. Continuous +maintenance needs an explicit population/window completion contract before it can +use this path. Binding requires matching nonoverlapping complete source windows. + +Each native heap output is one atomic batch record per window. Logical groups +and series identities remain in the typed batch; its outer storage address uses +an empty group. Publishing groups independently would permit recovery to expose +an incomplete group set. The canonical SummaryDefinition still describes the +logical grouping and expressions. This storage granularity does not erase them. + +Installed maintenance programs retain Planner operator definitions and typed +input/output node identities. Recovery validates those boundaries against the +installed semantic document and stored-output bindings. The query resolves its +exact deployed output through the store index, checks the definition, generation, +window, encoding and batch schema, then executes the retained query graph. From 8a86bc64b181d1195dd1ef924df080396f30df49 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:17:18 +0000 Subject: [PATCH 32/80] Assert fixed-window heap candidate boundaries and render both physical graphs --- control_plane/tests/issue754_level1.rs | 30 ++++++++++++++++++- .../issue754-human-review/render.py | 21 +++++++++---- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 532bc439c..67f2d72c7 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -624,7 +624,7 @@ fn issue754_queries_have_valid_physical_plans() { "topk-rate" => &["CmsWithHeap", "CountSketchWithHeap"], _ => &[], }; - let heap_roots = + let mut heap_roots = heap_families .iter() .map(|family| { @@ -658,6 +658,34 @@ fn issue754_queries_have_valid_physical_plans() { trace["logical_root_id"].as_str().unwrap().to_owned() }) .collect::>(); + if case.name == "topk-rate" { + for family in heap_families { + let trace = request + .planner_selection_trace + .iter() + .find(|trace| { + trace["stage"] == "planner.physical_candidate" + && trace["physical_candidate"].to_string().contains(family) + }) + .unwrap_or_else(|| panic!("missing fixed-window {family} candidate")); + let split = asap_physical_operators::physical_planner::PhysicalCandidate::decode( + &serde_json::to_vec(&trace["physical_candidate"]).unwrap(), + ) + .unwrap(); + let maintenance = + String::from_utf8(split.precompute.as_ref().unwrap().encode().unwrap()) + .unwrap(); + let query = String::from_utf8(split.query.encode().unwrap()).unwrap(); + assert!(maintenance.contains("Rate") && maintenance.contains("KeyedSummaryBuild")); + assert!(query.contains("KeyedReadout") && !query.contains("KeyedSummaryBuild")); + assert_eq!(split.materialized_outputs.len(), 1); + assert!(split + .query + .input_contracts() + .all(|(id, _)| split.materialized_outputs.contains_key(&id))); + heap_roots.push(trace["logical_root_id"].as_str().unwrap().to_owned()); + } + } let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let mut valid_plans = Vec::new(); let mut quotes = Vec::new(); diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 44c3f5a86..0fbcd5e6b 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -116,9 +116,15 @@ def block(value): f"Logical root: {cell(trace.get('logical_root_id'))}.", '', trace.get('rationale', '').replace('alternatives', 'candidates'), '', 'Guarantee: ' + cell(trace.get('guarantee')), ''] - program = trace.get('physical_dag') - if program: - lines += ['| Node | Dependencies | Native operator / input |', '| --- | --- | --- |'] + programs = [('Query physical DAG', trace.get('physical_dag'))] + split = trace.get('physical_candidate') + if split: + lines += ['Materialized boundaries: ' + cell(split['materialized_outputs']), ''] + programs = [('Maintenance physical DAG', split.get('precompute')), ('Query physical DAG', split['query'])] + for title, program in programs: + if not program: + continue + lines += [f'#### {title}', '', '| Node | Dependencies | Native operator / input |', '| --- | --- | --- |'] for node_id, node in program['nodes'].items(): op = node.get('Operator') lines.append(f"| {node_id} | {cell(op['inputs'] if op else [])} | {cell(op['operator']['kind'] if op else {'Input': node['Input']})} |") @@ -180,9 +186,12 @@ def block(value): heap proof and records the rejection. Separate controlled tests select each program through Backend costs; process E2E tests verify both heap families over durable counter SDS, including reset, window changes and process restart. -Those paths build the heap at query time. Stored-heap precompute and the complete -physical-candidate handoff remain outstanding; other PromQL paths retain the -documented Backend adapter representation. +Planner also exposes fixed-window candidates that finalize Rate and build the +heap during precompute. Their typed stored boundary and both physical DAGs are +listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, +multiple groups, resets, missing windows and restart. This placement requires +the finite complete-input barrier; it does not claim continuous completeness. +Other PromQL paths retain the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; From 0dba7c8113b801a7e4be3d2e82c4ad8219192490 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:18:05 +0000 Subject: [PATCH 33/80] Export fixed-window Rate heap physical candidates for human plan review --- .../issue754-human-review/README.md | 11 +- .../candidates/grouped-rate-0.json | 225 +- .../candidates/grouped-rate-1.json | 225 +- .../candidates/grouped-temporal-sum-0.json | 26 +- .../candidates/grouped-temporal-sum-1.json | 26 +- .../candidates/grouped-temporal-sum-3.json | 26 +- .../candidates/quantile-ratio-0.json | 38 +- .../candidates/quantile-ratio-1.json | 38 +- .../candidates/quantile-ratio-2.json | 38 +- .../candidates/spatial-quantile-0.json | 22 +- .../candidates/spatial-quantile-1.json | 22 +- .../candidates/spatial-quantile-2.json | 22 +- .../candidates/spatial-quantile-3.json | 22 +- .../candidates/spatial-sum-0.json | 18 +- .../candidates/spatial-sum-1.json | 18 +- .../candidates/spatial-sum-2.json | 18 +- .../candidates/spatial-sum-3.json | 18 +- .../candidates/spatial-topk-1.json | 22 +- .../candidates/spatial-topk-2.dot | 8 + .../candidates/spatial-topk-2.json | 22 +- .../candidates/temporal-quantile-0.json | 22 +- .../candidates/temporal-quantile-1.json | 22 +- .../candidates/temporal-quantile-2.json | 22 +- .../candidates/temporal-rate-0.json | 18 +- .../candidates/temporal-rate-1.json | 18 +- .../candidates/temporal-rate-2.json | 18 +- .../candidates/temporal-rate-3.json | 18 +- .../candidates/temporal-sum-0.json | 18 +- .../candidates/temporal-sum-1.json | 18 +- .../candidates/temporal-sum-2.json | 18 +- .../candidates/topk-rate-0.json | 1924 ++- .../candidates/topk-rate-1.json | 1924 ++- .../candidates/topk-rate-2.json | 1924 ++- .../candidates/topk-rate-5.dot | 31 + .../candidates/topk-rate-5.json | 5633 +++++++++ .../issue754-human-review/grouped-rate.json | 474 +- .../issue754-human-review/grouped-rate.md | 18 +- .../grouped-temporal-sum.json | 70 +- .../grouped-temporal-sum.md | 8 +- .../issue754-human-review/quantile-ratio.json | 90 +- .../issue754-human-review/quantile-ratio.md | 6 +- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 64 +- .../issue754-human-review/spatial-quantile.md | 8 +- .../issue754-human-review/spatial-sum.json | 56 +- .../issue754-human-review/spatial-sum.md | 8 +- .../issue754-human-review/spatial-topk.dot | 8 + .../issue754-human-review/spatial-topk.json | 60 +- .../issue754-human-review/spatial-topk.md | 12 +- .../temporal-quantile.json | 58 +- .../temporal-quantile.md | 6 +- .../issue754-human-review/temporal-rate.json | 56 +- .../issue754-human-review/temporal-rate.md | 8 +- .../issue754-human-review/temporal-sum.json | 50 +- .../issue754-human-review/temporal-sum.md | 6 +- .../issue754-human-review/topk-rate.dot | 8 + .../issue754-human-review/topk-rate.json | 10014 +++++++++++----- .../issue754-human-review/topk-rate.md | 94 +- 58 files changed, 19060 insertions(+), 4617 deletions(-) create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-5.json diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 7a921d73f..dffacee82 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -5,7 +5,7 @@ recorded. Selected plans and successfully compiled candidate plans are retained as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`c899084019580eac55e6502eb641d42e748c6ff2`. +`574bef34c3792c9ebc76773eeff159ffd14194fd`. ## Current implementation boundary @@ -24,9 +24,12 @@ CountSketch heaps above its bound per-series Rate readout. This fixture lacks heap proof and records the rejection. Separate controlled tests select each program through Backend costs; process E2E tests verify both heap families over durable counter SDS, including reset, window changes and process restart. -Those paths build the heap at query time. Stored-heap precompute and the complete -physical-candidate handoff remain outstanding; other PromQL paths retain the -documented Backend adapter representation. +Planner also exposes fixed-window candidates that finalize Rate and build the +heap during precompute. Their typed stored boundary and both physical DAGs are +listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, +multiple groups, resets, missing windows and restart. This placement requires +the finite complete-input barrier; it does not claim continuous completeness. +Other PromQL paths retain the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment currently evaluates single-root substitutions in a preferred workload context; diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index 238383c89..20ac1d683 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", + "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" + "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,233 +1418,36 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], "schema_version": 1 }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index 83e735760..d4c3b214a 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", + "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +216,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" + "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,233 +287,36 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], "schema_version": 1 }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index cf5c2e9de..d2ce2b471 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", + "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", + "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", + "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" + "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", + "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" + "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index bae4fa7e0..f91ea38d5 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", + "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +188,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", + "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +211,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", + "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +302,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" + "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", + "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,26 +373,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" + "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index 140970587..8f6853f6b 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -661,7 +661,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1238,7 +1238,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -1254,7 +1254,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", + "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1317,7 +1317,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", + "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,7 +1340,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", + "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1431,13 +1431,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" + "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", + "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1502,26 +1502,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" + "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index 6e0b5953d..95f6dc9fd 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", + "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" + "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1774,7 +1774,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1786,33 +1786,33 @@ "group_id": 1, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", + "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1883,7 +1883,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1895,32 +1895,32 @@ "group_id": 4, "rejected": [ { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" + "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index 72f785c9a..4d65ff1dd 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", + "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" + "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -400,7 +400,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -412,33 +412,33 @@ "group_id": 1, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", + "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -509,7 +509,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -521,32 +521,32 @@ "group_id": 4, "rejected": [ { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" + "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index a13ebd242..389927e4c 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", + "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" + "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -400,7 +400,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -412,33 +412,33 @@ "group_id": 1, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", + "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -509,7 +509,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -521,32 +521,32 @@ "group_id": 4, "rejected": [ { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" + "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index ebc1c6061..be2ff59e5 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1248,7 +1248,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1260,32 +1260,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index 01ed75fcc..d7a830cc8 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -196,7 +196,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -208,32 +208,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index c793ea532..242d6517f 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +435,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -451,7 +451,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -522,7 +522,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -534,32 +534,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index cf12a7bc5..343ea257a 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -196,7 +196,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -208,32 +208,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index a5d964e6b..b903eb7bf 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index 71b6677ae..5ef7b8dc3 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index d4d0f1262..57f90d370 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +430,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -446,7 +446,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,26 +511,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index 0bb4f2aa1..8fb6d6d76 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index 0a087713e..cc744d7ce 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -126,33 +126,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" + "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" + "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -255,7 +255,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", + "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", "physical_dag": { "nodes": { "1": { @@ -918,7 +918,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot index aa0ca1060..c24a11708 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot @@ -7,5 +7,13 @@ digraph compiled_physical_plan { subgraph cluster_query_0 { label="QueryPlan: topk by (label_0) (3, data)"; query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_1 [label="#1\nBound physical input"]; + native_query_0_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_0_1 -> native_query_0_18446744073709551615; + native_query_0_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_0_18446744073709551615 -> native_query_0_2; + } } } diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index 5614d221e..533765dc7 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" + "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" + "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", + "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", "physical_dag": { "nodes": { "1": { @@ -1476,7 +1476,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 5f545fdfa..73b0530c8 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1157,7 +1157,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1169,32 +1169,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index e11fabec5..9251890ff 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -196,7 +196,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -208,32 +208,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index e2fc3ca36..e991efffc 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -196,7 +196,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -208,32 +208,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index 76216a197..4da7d9529 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index 98356f1ec..741d16eab 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index ecc8e3172..6b7892abc 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index 0962bdcca..f89817e42 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index 618bc955f..c94a9b683 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", + "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" + "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index d3087c0b0..167b68ef5 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", + "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" + "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index 99f4aa608..192adfe56 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", + "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" + "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index 4fda03f32..c3c8556ee 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1382,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], @@ -1398,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,31 +1534,1923 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], "schema_version": 1 }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, { "guarantee": { "bound": { @@ -1601,7 +3493,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", "physical_dag": { "nodes": { "2": { @@ -1929,7 +3821,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", "physical_dag": { "nodes": { "2": { @@ -2592,7 +4484,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" }, { @@ -2692,7 +4584,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", "physical_dag": { "nodes": { "2": { @@ -3355,7 +5247,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index 410cb520c..d68197465 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +190,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,31 +261,1923 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], "schema_version": 1 }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, { "guarantee": { "bound": { @@ -328,7 +2220,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", "physical_dag": { "nodes": { "2": { @@ -656,7 +2548,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", "physical_dag": { "nodes": { "2": { @@ -1319,7 +3211,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" }, { @@ -1419,7 +3311,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", "physical_dag": { "nodes": { "2": { @@ -2082,7 +3974,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index ec3d5d416..0830ff46b 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +146,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], @@ -162,7 +162,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +227,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,31 +298,1923 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], "schema_version": 1 }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, { "guarantee": { "bound": { @@ -365,7 +2257,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", "physical_dag": { "nodes": { "2": { @@ -693,7 +2585,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", "physical_dag": { "nodes": { "2": { @@ -1356,7 +3248,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" }, { @@ -1456,7 +3348,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", "physical_dag": { "nodes": { "2": { @@ -2119,7 +4011,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot new file mode 100644 index 000000000..85fd647a8 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot @@ -0,0 +1,31 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_0_0 [label="ExactReadout\nRate"]; + query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; + query_0_1 -> query_0_0; + query_0_0 -> query_0_2; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_2 [label="#2\nBound physical input"]; + native_query_0_3 [label="#3\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_0_2 -> native_query_0_3; + native_query_0_4 [label="#4\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_0_3 -> native_query_0_4; + } + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json new file mode 100644 index 000000000..b3fb4fc13 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json @@ -0,0 +1,5633 @@ +{ + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + }, + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 4, + "query_plan_sink": 2, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 11938117179177087264, + "plan_version": 1, + "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + }, + "envelope": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "kind": "value", + "operation": { + "Sort": { + "keys": [ + { + "ascending": false, + "expr": { + "Column": 1 + }, + "nulls_first": false + } + ], + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": { + "Limit": { + "n": 3, + "offset": 0, + "partition_by": [ + 2 + ] + } + } + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "topk by (label_0) (3, rate(data[1m]))": { + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "topk by (label_0) (3, rate(data[1m]))", + "root": 2, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "2": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 2 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index e396e2448..cd60af568 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", + "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" + "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,233 +1418,36 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], "schema_version": 1 }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ], "materialization_search_coverage": null, @@ -1654,7 +1457,7 @@ "selected_manifest": { "plan_id": 5849823772717530049, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2551,11 +2354,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:3718a7e2a1544b477121a55806c73ee63eb1e442830c7eb3367b3a109a546227", + "candidate_id": "asap-explain-v1:candidate:ed8ad5183e906ab2e13216c5d4fb65a9825b8cc82fc9ee6a2daab8436a746ef0", "logical_root_ids": [ - "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e" + "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90" ], - "physical_candidate_id": "asap-explain-v1:physical:ae980097f1789f8487b28a9b0ce000185a6b05fecada45d05db4a332fa9e4244", + "physical_candidate_id": "asap-explain-v1:physical:d250d54a00267b7815dc34ca398f54851376402a51068860ba2b6c6bc694d1d4", "identity_unavailable_reason": null, "status": "selected", "plan_id": 5849823772717530049, @@ -2563,11 +2366,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:414d6d77f493a2a81249d218e958effb13353e1149037897237b89fe00c0c319", + "candidate_id": "asap-explain-v1:candidate:7155aa12099ef2ddb601f3fa04db5bc6a632a890bf5cd5f8883e8f77fa7e17aa", "logical_root_ids": [ - "asap-explain-v1:root:643999c2c793eda9409a53042cc0ff84502915e9de4dc74029bf589e91917ff7" + "asap-explain-v1:root:e6c97518f6007d571e505532df8ba092b0428e90ca9da32e3a85630c32497be2" ], - "physical_candidate_id": "asap-explain-v1:physical:76a4622a585ca0ccd17946c02495577e572f8b3a64e81ca3d755218f6e61a032", + "physical_candidate_id": "asap-explain-v1:physical:7dd15637bcd92c88b84220dbc11314da6063e74c71716804cf8b50acc89d5ba5", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 741363842036532054, @@ -2575,9 +2378,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ffa1323190a37c95efb5003f459f24aca1a1d083fdfd62ca9d5807a64b26b641", + "candidate_id": "asap-explain-v1:candidate:90f26c919f5460804291fcce680f3ca6420a3819db3a450ae343c3893c07ccbd", "logical_root_ids": [ - "asap-explain-v1:root:81569c887cc72d5c00aafe4f5a9840b55e15409c4224e7e879ce7d698bb0a4d1" + "asap-explain-v1:root:1939cb4294a910245ad73172f6af0b57a2c1e4973df58f02e14c73f547a05f49" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2585,18 +2388,6 @@ "plan_id": null, "total_cost": null, "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:d2adaff120545a16d31914a922ee361b04725aadd13802def83f4a984fa08b37", - "logical_root_ids": [ - "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical vector program loses complete identity, timestamp or value" } ] }, @@ -2605,7 +2396,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], @@ -2621,7 +2412,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b222e331b2a69f97f9beeff824e7d2b6f2033c46f0c3221dc1aff347d680eac4", + "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2712,13 +2503,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d836370a86589848b769a0c02974967d025d0a1c8bdec5a3314662e52b93b0ec" + "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2783,233 +2574,36 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e", + "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", "query_index": 0 } ], "schema_version": 1 }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" + "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", + "stage": "planner.physical_candidate", + "status": "unsupported" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index d9a8f190a..55bbbbc16 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -46,26 +46,20 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851"`. +Logical root: `null`. -Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies) -Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | +Guarantee: `null` -Roots: `[3]`. +invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:0e31a8d3445c715a2134c5af0a5ea3f922da28603611abeb514a6bd3a11c083e"]` | `"selected"` | `125.0` | `null` | -| 1 | `["asap-explain-v1:root:643999c2c793eda9409a53042cc0ff84502915e9de4dc74029bf589e91917ff7"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:81569c887cc72d5c00aafe4f5a9840b55e15409c4224e7e879ce7d698bb0a4d1"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:0e5bd63bf2b058035044a1c50ec5912afbfbd59dd75611d27ff23b9420d09851"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: physical vector program loses complete identity, timestamp or value"` | +| 0 | `["asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90"]` | `"selected"` | `125.0` | `null` | +| 1 | `["asap-explain-v1:root:e6c97518f6007d571e505532df8ba092b0428e90ca9da32e3a85630c32497be2"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:1939cb4294a910245ad73172f6af0b57a2c1e4973df58f02e14c73f547a05f49"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json) diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index 1a8ecae70..d9d7158f4 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", + "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", + "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", + "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" + "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", + "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" + "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -1316,7 +1316,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2254,11 +2254,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:14951da54456478c984263a34dbffdaf7907bbd5bacd5568378172f3965eddbe", + "candidate_id": "asap-explain-v1:candidate:0853981cabc693979a6893e7879e560c59b2595d25eb99a50a9f2fc9cad647c2", "logical_root_ids": [ - "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c" + "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8" ], - "physical_candidate_id": "asap-explain-v1:physical:b83b200ba5c149687af42f542c2e941f0d061df12fb6307babdc3379169a2f14", + "physical_candidate_id": "asap-explain-v1:physical:d0afe07f72e1d942ade7b650072854bca20105dcd4cc9b8dbf8ccc771964f351", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2266,11 +2266,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:4497bbad849b9cb96c96821a00349b9faef6c625c9e391ac0ee9cea9781a59cb", + "candidate_id": "asap-explain-v1:candidate:ccaab443c49299d9f5b8de6ec5107e3744227deaf175a3e72ab085343689c099", "logical_root_ids": [ - "asap-explain-v1:root:bb5e147f97964e9682b5a4f4cbc408bff8def6352684f3d8a409a93bcb43af41" + "asap-explain-v1:root:76e0822b51b6b442d8f321a0bbc40d20bf34f4d426b73fae8987961e4df8cdf5" ], - "physical_candidate_id": "asap-explain-v1:physical:e1869466bdab79f2863abecbe8424d2200be28b35744b52aee9c267146bc2e30", + "physical_candidate_id": "asap-explain-v1:physical:9b867204311e3bb8a6881af80bad7ab4c7edac15ab75f0de5c7f1100e668d8e1", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, @@ -2278,9 +2278,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c549a99ed4e979f440c32a2acb0316723bc56ca20e8f5aaaeac84feda0c4e387", + "candidate_id": "asap-explain-v1:candidate:430276cd40d50645a499c07667e260fc91d6dd55e441c3e0bcfb48d5f7db736c", "logical_root_ids": [ - "asap-explain-v1:root:d4790d6fa34e8c3a9f8880f785ad17b1b33bb6b11fb3cac6b491e7e88407c1ab" + "asap-explain-v1:root:3bccca2e3d1880ea0d44df539815b25b11872617a15fe018c045ab024a9d2f4a" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -2290,11 +2290,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:3569d6731908cf822ae7faaa71a5aa3558c53748f82e58bd82f321fc3830a3e3", + "candidate_id": "asap-explain-v1:candidate:8e4ac1286f37c771762be8261385832e0b14958b8fb6f0f9635a411732fff298", "logical_root_ids": [ - "asap-explain-v1:root:1e5ddc1f0dbddbf7c2e03528cc8d8651f5373f981dfbf13a38df07e54a91ad7a" + "asap-explain-v1:root:2dd96824c844e931a34bf6f653f2e27b26915a05365963aa4fe03ee31ab35267" ], - "physical_candidate_id": "asap-explain-v1:physical:b63b09506e2cf674408ae0fb8335fba87881679444c5a03bea3d21528a1fcea9", + "physical_candidate_id": "asap-explain-v1:physical:3bf7db2e1b1e69ff56c6678e26c39229c15e25f674ab994056c8e8c51a4edb57", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3225737927651639557, @@ -2308,7 +2308,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], @@ -2324,7 +2324,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:040282dd7e7121667da975febdc151297a6b1d6922094d8c40b7144f256fcde8", + "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2387,7 +2387,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6da6d0f2170a5b96b0b2c0db3d684ea0533eb1f124f7a10b4036fd2104539b5", + "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2410,7 +2410,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b9e19b0d5b945f8256340f59bc74c15ca1f98463ed4391fbf941a018ba170d98", + "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2501,13 +2501,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c29368bd795280ec7cce83f019e5a99919db39ca67840922897fa81eb9e59c8a" + "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1777e9adadc06e2974a13684d46e881c788fdb9b3295becc3fdef321dbca77f0", + "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2572,26 +2572,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:3f390f0ecbba8b08adb8d285f264d570e3004b22edaac6a38799ebb4afb93803" + "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c", + "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index f8c1e004c..be94ab8be 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -61,10 +61,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:5efffd4a80a801d5afec54dd73b388d1bf3fd8552c8c5bf7a5e6266c7914289c"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:bb5e147f97964e9682b5a4f4cbc408bff8def6352684f3d8a409a93bcb43af41"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:d4790d6fa34e8c3a9f8880f785ad17b1b33bb6b11fb3cac6b491e7e88407c1ab"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:1e5ddc1f0dbddbf7c2e03528cc8d8651f5373f981dfbf13a38df07e54a91ad7a"]` | `"unselected"` | `125.0` | `null` | +| 0 | `["asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:76e0822b51b6b442d8f321a0bbc40d20bf34f4d426b73fae8987961e4df8cdf5"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:3bccca2e3d1880ea0d44df539815b25b11872617a15fe018c045ab024a9d2f4a"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:2dd96824c844e931a34bf6f653f2e27b26915a05365963aa4fe03ee31ab35267"]` | `"unselected"` | `125.0` | `null` | Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index 8ec912cbf..5d75ec86a 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", + "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" + "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1774,7 +1774,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1786,33 +1786,33 @@ "group_id": 1, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", + "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1883,7 +1883,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1895,32 +1895,32 @@ "group_id": 4, "rejected": [ { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" + "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -1934,7 +1934,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2920,11 +2920,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:b2508b20d07bf2406e5e186377ff55fdf39460c69f40b5819f42dd87e65b3dbd", + "candidate_id": "asap-explain-v1:candidate:eab0bd8e22438c18d1280d1d460d8e8c5471f15139f3224c6a997c9a6dab546f", "logical_root_ids": [ - "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab" + "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2" ], - "physical_candidate_id": "asap-explain-v1:physical:4f6afdcaa21c824ea853887b087599b285582ecfd5e75c2b3779eead71667ae5", + "physical_candidate_id": "asap-explain-v1:physical:9803bb28dc85804436828690973880e21982e88b657b775d6577447b33ba2b8a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2932,11 +2932,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:29e8f1781d89b958a960072e765e1db2c3b1889cfa4c178a5057e7c75527d9b2", + "candidate_id": "asap-explain-v1:candidate:0c4460c5d392b04e0b401219ca0008b40e345aab93e42f2859719c271ea522f1", "logical_root_ids": [ - "asap-explain-v1:root:f122297d88d6220bee67ca1f56a1f559ce1c2149a3e304ac8b3f86b4c9e54efb" + "asap-explain-v1:root:f449b879c1309ad29867d455b6e488c0616fa126fc4f24b6c620ce33946d6a7f" ], - "physical_candidate_id": "asap-explain-v1:physical:319ec2bd9419c6036c67a98a552b6a62802d81d009bb2312881a5d2d6e834381", + "physical_candidate_id": "asap-explain-v1:physical:ed9fbdf49266e9fc8a75e2d87fce09976c96c59d3ad1a94b743956e7ccf02b21", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, @@ -2944,11 +2944,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:bf15c64e9362f4491837e0a8a04edb8bf4fbb8791c03ebd6664f1c89641c35bb", + "candidate_id": "asap-explain-v1:candidate:f175d7852c18ff5fc1fdf05c824a42313866ae4702c221ec1212303acf59a9ee", "logical_root_ids": [ - "asap-explain-v1:root:4d0e6951ae09283c4de99b5818cd2c54e4924dd51371863645c52b82e1fca0ce" + "asap-explain-v1:root:4a3c1395d360b821426b27218cd5d53be87544d0fb93060fb25f548a56ea3fd0" ], - "physical_candidate_id": "asap-explain-v1:physical:24e1dae5e4c8cf6d534ae819af2bc604fbb7f60cff8ff6240474adb08585be57", + "physical_candidate_id": "asap-explain-v1:physical:3f5a99c36308c22d7ddf69fee8058b6d7bffcc0cc3f5a51e447f4e9e271fe19a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 12971657221408630864, @@ -2969,7 +2969,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], @@ -2985,7 +2985,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d93917ae5ebc313289c950837de0e1be069d0ea5e6584af601f96baa73f52c6c", + "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3176,13 +3176,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:591c59c94f3cd7d40929739a51f9f92add66fcda87ee45d5b46874aeaf257348" + "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3253,7 +3253,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -3265,33 +3265,33 @@ "group_id": 1, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e991fd55da5a242782b7177e115c99a5735d754359e8b07514a365140ec301cb", + "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3362,7 +3362,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -3374,32 +3374,32 @@ "group_id": 4, "rejected": [ { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7097d4b2aedaf57dcff6d266e4fe40f300ac9ea6a9cb26b53f0c661a1829bf84" + "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab", + "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index 8ffb3578c..3ce7013e9 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -53,9 +53,9 @@ Costs below come from the controlled Level 1 fixture, not production measurement | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:c97a9ef7b7b6351ef7fa1fe69a02f0763f34cd401324455c7dc2fa56ac4b56ab"]` | `"selected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:f122297d88d6220bee67ca1f56a1f559ce1c2149a3e304ac8b3f86b4c9e54efb"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:4d0e6951ae09283c4de99b5818cd2c54e4924dd51371863645c52b82e1fca0ce"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2"]` | `"selected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:f449b879c1309ad29867d455b6e488c0616fa126fc4f24b6c620ce33946d6a7f"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:4a3c1395d360b821426b27218cd5d53be87544d0fb93060fb25f548a56ea3fd0"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index be092b02b..5720f1be9 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -34911e6fe9c93f989fb1ef9027df01592177e304 +8a86bc64b181d1195dd1ef924df080396f30df49 diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index 7602611af..dc107e9d9 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1248,7 +1248,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1260,32 +1260,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -1311,7 +1311,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2337,11 +2337,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:d5ac8c7929d00364bade77119a253928f380157c5d8ebc83876921349a509b58", + "candidate_id": "asap-explain-v1:candidate:40aecbfb2ab9b6f220bf9a53bdd9a9fa0088d4ad4e75eaf3403028e94d635181", "logical_root_ids": [ - "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73" + "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4" ], - "physical_candidate_id": "asap-explain-v1:physical:4b012e7a9199b8b6dea868a87a5e571dcb4b2b35c6069e2f8811a22146aeae14", + "physical_candidate_id": "asap-explain-v1:physical:ac1f2e2c222564ba3816318f785d1836e43d4c52ca81991be4aa30adc18c5b3b", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2349,11 +2349,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:59bb7cafd9b57c5707210f0f3c9fe49d13430269c7dc0880626e2c1e2cf2a68c", + "candidate_id": "asap-explain-v1:candidate:2b94dbf9f2c7411723006b5f796f5bc05a5796d561b262d32832639023f5be5f", "logical_root_ids": [ - "asap-explain-v1:root:77eedd0c83f98c91c83589e77f3cd1f7d40f8090794d32ff94518e0da2a03af8" + "asap-explain-v1:root:fdc5765bbea5934ae76918026af6744247af5577d409929e2c98dd404f6ebfd2" ], - "physical_candidate_id": "asap-explain-v1:physical:50e60a3db582d783e33b7eb9dd278394cd7b88cfd072c50ba8a791138b77bc15", + "physical_candidate_id": "asap-explain-v1:physical:01fe86a15a561ff6906ca8d487a435e084021748a9eb3585201d9bd7e8fb7b45", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2361,11 +2361,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2e79a7dedd94b3d185248a7fd271a2a12821bab245df96dd9816d93c5017d341", + "candidate_id": "asap-explain-v1:candidate:924f805194dba70f16bf010520e06d2a887b88dd80f1534db52caa02b65e7ef6", "logical_root_ids": [ - "asap-explain-v1:root:66a2f16251a90e29b698bc4e5deaa442ad61437f1e43abed64041848f8956f43" + "asap-explain-v1:root:43570daeecc8ec03cfadf2d750ccf989d7c51676138da42023e30beff487c1c7" ], - "physical_candidate_id": "asap-explain-v1:physical:89a799c4f984bed5e7a1b8624634f2357a7db5a8350adcc188a17972dc894fe4", + "physical_candidate_id": "asap-explain-v1:physical:85b84d329b96039a88c4692f5d151a67aa9ba00e9de0c7227c9c1a7454a420c8", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, @@ -2373,11 +2373,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:cbbd862f012685aeed0569d427927a80c3af2dbc27c5b3fb466ac42b7766df3d", + "candidate_id": "asap-explain-v1:candidate:1b1ad04b9e89b1b07f56e2bbf32dcce7c197e55a385998a0fdf24769b96d982d", "logical_root_ids": [ - "asap-explain-v1:root:421adad5f16b00e894bfca2d892952c678e36489cd1f4c25d8836c84a1e8fa36" + "asap-explain-v1:root:5c12a51b870ab023f064467eb937d9993963b1a2677dad61416430ed47b76d65" ], - "physical_candidate_id": "asap-explain-v1:physical:40c3d7ab0382ead2fc584a05724e38d9bce78ce6db674db00ecd459dceccfc6b", + "physical_candidate_id": "asap-explain-v1:physical:a667ca48b11e0e4059f7d8ed5f605ec1250c9bc5218707f17eea096b9965b7d6", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 7667691247138405742, @@ -2391,7 +2391,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], @@ -2407,7 +2407,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8160fcb29f903bb133364627f2ac6aa5df8f2b63457a34c3fcf67d8743d02a3a", + "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2478,7 +2478,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -2490,32 +2490,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:28e38b6504c0950853e612d479339d45a20ac285ab202d99d0e4d603cfd15605" + "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73", + "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index a6cc91d5d..2cb2c651e 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -65,10 +65,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:d7005162ca16c23b9aee36776c1afc21e981ef6a7056c1af6435bc08de843b73"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:77eedd0c83f98c91c83589e77f3cd1f7d40f8090794d32ff94518e0da2a03af8"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:66a2f16251a90e29b698bc4e5deaa442ad61437f1e43abed64041848f8956f43"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:421adad5f16b00e894bfca2d892952c678e36489cd1f4c25d8836c84a1e8fa36"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:fdc5765bbea5934ae76918026af6744247af5577d409929e2c98dd404f6ebfd2"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:43570daeecc8ec03cfadf2d750ccf989d7c51676138da42023e30beff487c1c7"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:5c12a51b870ab023f064467eb937d9993963b1a2677dad61416430ed47b76d65"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index be5860767..cdc01f881 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -1127,7 +1127,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2062,11 +2062,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:3d30019397bf6ff24e031c81bc3ef6a9f2d74b0cbdba975d5e855029edc1ba5e", + "candidate_id": "asap-explain-v1:candidate:90eaa0256069be89f048b65ce085ab5ec842871dc11e8d925298800c3132ae28", "logical_root_ids": [ - "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4" + "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68" ], - "physical_candidate_id": "asap-explain-v1:physical:46015a309425b70538a1b336b963637c6863377959001794bdb0c5b770229563", + "physical_candidate_id": "asap-explain-v1:physical:6c581477ef9a33b0424b3b37b2befbf7842f2b72ecebff5d960899bb5898e60a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2074,11 +2074,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:7f808e56be87473c3fd34a178fa7e7029f3454614e277249fbae5677f04b73fe", + "candidate_id": "asap-explain-v1:candidate:d2c74d478edd8167075117f0339da730d46d1490adaa6779a92201afeb09b9e3", "logical_root_ids": [ - "asap-explain-v1:root:859b668e3bad84483effc1c9f32cafbd0074f48e50342f4e67fceed1e056a697" + "asap-explain-v1:root:19a9f2c7e270097f72fd82ea90b8a1baefc2a54b3cb8ff566e01a9bd2b857e8c" ], - "physical_candidate_id": "asap-explain-v1:physical:b84c23c3bafa23142ab2b7cb8c61af783fe223389a2f6826f8f485a6c645e271", + "physical_candidate_id": "asap-explain-v1:physical:1ddb6f80f462cf94edd1d35548254a979998d84b36287ff0c65ca1f99e49d3eb", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2086,11 +2086,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3bdf363f6201b64ad2058932dc051b6a4628158111238f148c21bdd4b07b4ab3", + "candidate_id": "asap-explain-v1:candidate:59e4838ae5478156304e8e1d89973f6f924f6ef53f774750ffcd7267e4358a64", "logical_root_ids": [ - "asap-explain-v1:root:adc370740d34eba03a9c193b88fd4e29d5a3d8104091cce1117c6b6da2548a9f" + "asap-explain-v1:root:1e1d66f44d82fe1bacd1349202d41469f901c182c7aa739c49d2aaea64a26950" ], - "physical_candidate_id": "asap-explain-v1:physical:b29e47fcd7993d2fc543e9209ce6584be126283ee7cba404bf6a0ec94c0612a5", + "physical_candidate_id": "asap-explain-v1:physical:e9206ffc1c3025f96e9365f5f71290cf6cbd622bf07c9b4a30a5a431d94f3d54", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, @@ -2098,11 +2098,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:22d6a4d0a0bb8105cf119a239d2b00252ef39dbd37a4d4d2a08d583ffd2f21a7", + "candidate_id": "asap-explain-v1:candidate:0da4d516bc886b446d5a61049cb7acda6fb7f889865dfd9b3653a250a5f44605", "logical_root_ids": [ - "asap-explain-v1:root:db97ab23dd9487d0687eeab40856861788fe2feb9601644dbe5feee0520b5c6c" + "asap-explain-v1:root:09a98cbf293139fa8c7db7876752cf5cee5c30c8b367d8b3eeb7bb8aded3178c" ], - "physical_candidate_id": "asap-explain-v1:physical:db08c46f2695bc1cd419a67e721a90e424a30347b4c82db20b62e14ff74737ea", + "physical_candidate_id": "asap-explain-v1:physical:8982991e6cb3b946f1bb8ddcac9be55f49ccec1d6e57d776a835e19bd9c3b977", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 10907830462850005469, @@ -2116,7 +2116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], @@ -2132,7 +2132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:b5ed625cbba569004c21bcdf2f541f48730ae9f1820da8ce7316b263e18b2960", + "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2197,26 +2197,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d725f10eae93b27fa3bf3aff83c4f0a77a3ae838c563d221884e482d51c136d1" + "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4", + "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index 0c40b7c10..c105f5f62 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -51,10 +51,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:54edb93d464e00fe2e30abffd525ee0d4e0da1d2944aca77eec0b23a8d78f7f4"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:859b668e3bad84483effc1c9f32cafbd0074f48e50342f4e67fceed1e056a697"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:adc370740d34eba03a9c193b88fd4e29d5a3d8104091cce1117c6b6da2548a9f"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:db97ab23dd9487d0687eeab40856861788fe2feb9601644dbe5feee0520b5c6c"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:19a9f2c7e270097f72fd82ea90b8a1baefc2a54b3cb8ff566e01a9bd2b857e8c"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:1e1d66f44d82fe1bacd1349202d41469f901c182c7aa739c49d2aaea64a26950"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:09a98cbf293139fa8c7db7876752cf5cee5c30c8b367d8b3eeb7bb8aded3178c"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-topk.dot b/docs/evaluation/issue754-human-review/spatial-topk.dot index aa0ca1060..c24a11708 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.dot +++ b/docs/evaluation/issue754-human-review/spatial-topk.dot @@ -7,5 +7,13 @@ digraph compiled_physical_plan { subgraph cluster_query_0 { label="QueryPlan: topk by (label_0) (3, data)"; query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_1 [label="#1\nBound physical input"]; + native_query_0_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_0_1 -> native_query_0_18446744073709551615; + native_query_0_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_0_18446744073709551615 -> native_query_0_2; + } } } diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index 4bcfe7e23..9a56e8b11 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" + "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" + "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", + "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", "physical_dag": { "nodes": { "1": { @@ -1476,7 +1476,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ], @@ -1487,7 +1487,7 @@ "selected_manifest": { "plan_id": 2697027346875258477, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1911,9 +1911,9 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:f34483bbbbb624def5249f18305602d21046b70bc548087f7b25a79df49054be", + "candidate_id": "asap-explain-v1:candidate:c6c69ea9e472f04e62ea247e6451b21688d88bb71b28b76c482321916faee131", "logical_root_ids": [ - "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9" + "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -1923,11 +1923,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:6724aa09e5d7ed3bcf998544e00d2249c78711deb47a047512ec3d66ee280d57", + "candidate_id": "asap-explain-v1:candidate:159578787f40b0c8fc188dd27b8381ae071190473227037131c57f1573dc6dcf", "logical_root_ids": [ - "asap-explain-v1:root:abf768f94bef2e820457146939248d0df406fef3a70da171cbf2c6e34f4269b6" + "asap-explain-v1:root:e13e67835975ec59bb3fdbe296544ae7da37f949b359f5deaa7103b77ac9c2f1" ], - "physical_candidate_id": "asap-explain-v1:physical:50515f20428bf99d2776a0db269b3f722d689ba784c8326137121331e0c42a80", + "physical_candidate_id": "asap-explain-v1:physical:3a158a8a172733867b8dad276832d3bb7abc090376ee15570649c4929c82e580", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5538412219857372274, @@ -1935,11 +1935,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:aa3548e67d41f5ad19ed754dd6256fe54100d37ca0270416aab059558c7e9443", + "candidate_id": "asap-explain-v1:candidate:30da9f804e451c90e39a0d53aae1e5a769c8e4e5501ec40f1bb09b39eb4e6098", "logical_root_ids": [ - "asap-explain-v1:root:7edfeb167e264152810f299c5f3e6e96ed5db3c7f284488e52dc4c316c692cf0" + "asap-explain-v1:root:01d98a8e246904cf0d42a2404bae63f7818f902759c57e16e178802f080b9ec3" ], - "physical_candidate_id": "asap-explain-v1:physical:634de44338b9bcbf7b796f8b3b96d8996f8077a7e3e2aa36396d40b44f8a4a26", + "physical_candidate_id": "asap-explain-v1:physical:d1b62b06e3393f38fe71c9b35ed83928612f48fc0aaf47108738cd553f5f3487", "identity_unavailable_reason": null, "status": "selected", "plan_id": 2697027346875258477, @@ -1947,9 +1947,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:567e62d8489304e606653fe66740babdf3caf8df26d88009056cd1a8da6ed8b7", + "candidate_id": "asap-explain-v1:candidate:69ca67db898f626eee06c83dbede403369e8a827d193eb747631a2f04e96750f", "logical_root_ids": [ - "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea" + "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -1965,7 +1965,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -1982,33 +1982,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c98cc10556fd3a38a69cf29d4f0772b4bb01a34877b424944001303d5472c88c" + "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:9364f80f868bc0d57b2ff28b75d0dd8faefad031e8c0aa4edf4de7dcc3be3e81" + "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:76fb60732b238d7aeef0db007ca42d1b0da0d168fbed33e21c862df28e6e8743" + "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9", + "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", "query_index": 0 } ], @@ -2111,7 +2111,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea", + "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", "physical_dag": { "nodes": { "1": { @@ -2774,7 +2774,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 0507ccce1..15582e8cf 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -64,12 +64,14 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea"`. +Logical root: `"asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` +#### Query physical DAG + | Node | Dependencies | Native operator / input | | --- | --- | --- | | 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | @@ -84,10 +86,10 @@ Roots: `[6]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:54d39c0b1ca8f4666729a2ee4bd473828d883206bc76edc27b57daf451be36e9"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 1 | `["asap-explain-v1:root:abf768f94bef2e820457146939248d0df406fef3a70da171cbf2c6e34f4269b6"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:7edfeb167e264152810f299c5f3e6e96ed5db3c7f284488e52dc4c316c692cf0"]` | `"selected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:4787547f619c2df86e3374054965b3ad497d25e53cb42dad069dd51fce5fafea"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 0 | `["asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 1 | `["asap-explain-v1:root:e13e67835975ec59bb3fdbe296544ae7da37f949b359f5deaa7103b77ac9c2f1"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:01d98a8e246904cf0d42a2404bae63f7818f902759c57e16e178802f080b9ec3"]` | `"selected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index b94eefffc..31a4a7a01 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1157,7 +1157,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -1169,32 +1169,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -1220,7 +1220,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2162,11 +2162,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:9e4fca4ef3aeae104e0ed7f563750a953ef0b27e606e3ee9dcac74412ef37478", + "candidate_id": "asap-explain-v1:candidate:053daa0e4d24257cfb718bdf0c27a9249cb9f59344a4b1b157551ab7b269cc72", "logical_root_ids": [ - "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24" + "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb" ], - "physical_candidate_id": "asap-explain-v1:physical:0223708fe4fb1f30707e7cb6d7d95b4495a202c7133e141a7133531d49e01822", + "physical_candidate_id": "asap-explain-v1:physical:44712cb6b70ff176a421c34408994f1a3961fec7f9751617644291508ab32a09", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2174,11 +2174,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a40ebacdde2fb9ba52af84daf81bec8e2750b305e0bb6d1dd3a4e6ef3c8d1747", + "candidate_id": "asap-explain-v1:candidate:fc9d456e5ebaa59e4773160a712d6547f4999fb8b7f7e007b13be56ae812fd9c", "logical_root_ids": [ - "asap-explain-v1:root:4e4ab63d24c24993cfe1e9894fa421f7847987f99a0d7c439089e15a2c683b9b" + "asap-explain-v1:root:392bbc491e7a16723958fb2179b6fae06732ae0f42a062a6b6e5b1b9c71dca3c" ], - "physical_candidate_id": "asap-explain-v1:physical:32eba295ed0a05f397beb1af8c89d6887429ea9c1d826d9999e2af49b64e4f9d", + "physical_candidate_id": "asap-explain-v1:physical:794019f1b24d807402d1bed28e28c4f94c58be0f0530b4efa2884804d3345ddb", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, @@ -2186,11 +2186,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:c24d80c70e81491f6eea8bc929dd6491f277c0f2015ac2d873ebde89e65b6cf2", + "candidate_id": "asap-explain-v1:candidate:86a1f55e97b44aad33763105ccbe355a40a1937db730d365d535ad3aa14f5d8e", "logical_root_ids": [ - "asap-explain-v1:root:2fe14190b9dd88bb3809ca47ef933a3bf13498df5b163de40a379510af0cf48d" + "asap-explain-v1:root:f14c62ab20494a5075946fed95fd263e2c110d49a8e0b72f27cc08238603fb6b" ], - "physical_candidate_id": "asap-explain-v1:physical:c2b552599518675eb25da3c3f36fc91e0faa5070aab592df1146099f3d806fcd", + "physical_candidate_id": "asap-explain-v1:physical:aab464493d8a0b4fdb439bca0036d70cc805b93cf27159bc9f541476ef2c3784", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 11545774673163874085, @@ -2204,7 +2204,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], @@ -2220,7 +2220,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1654b24018726516f9e515061f7344b20e04f910be3bcb43f5db87354cc412c5", + "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2291,7 +2291,7 @@ }, "provenance": "SummaryRealization", "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "replacement_kind": "summary", "runtime_support_status": "unknown_pending_backend_binding", "selected": true, @@ -2303,32 +2303,32 @@ "group_id": 0, "rejected": [ { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", "status": "rejected", "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3b4c70576dd530e10894a93970a18eefab40b84e486ccf850b9f316561439c36" + "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24", + "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index 9b9009a5c..4c33170d2 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -65,9 +65,9 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:07317f40ba2b3e6b35772ceae88014a39293f6072cecf0ebf5b97d587ca45e24"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:4e4ab63d24c24993cfe1e9894fa421f7847987f99a0d7c439089e15a2c683b9b"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:2fe14190b9dd88bb3809ca47ef933a3bf13498df5b163de40a379510af0cf48d"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:392bbc491e7a16723958fb2179b6fae06732ae0f42a062a6b6e5b1b9c71dca3c"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:f14c62ab20494a5075946fed95fd263e2c110d49a8e0b72f27cc08238603fb6b"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index 01f91d149..046819af6 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -1043,7 +1043,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1894,11 +1894,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:b12be4fbfd5324aec0dba8fa213d697c02b71711d0c03e8008b2fb071f90e061", + "candidate_id": "asap-explain-v1:candidate:cdee4c2ffc0d74731acb81630de7e4a90a9ee983c1712739ee25bc7e77956132", "logical_root_ids": [ - "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091" + "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8" ], - "physical_candidate_id": "asap-explain-v1:physical:cfa4ae87d7ab7d898824e7a0089ac580830984295205a1eb15863f4a80f5f12a", + "physical_candidate_id": "asap-explain-v1:physical:6f98dad97c5f8ab755a4631db6277a89999d9610c7863468500b3c4b215f3122", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1906,11 +1906,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:5625be28fafc342b4afb91d4db763d267aa01f425cc1099cc9b0ed3488e3315e", + "candidate_id": "asap-explain-v1:candidate:040c641b55a413965656d4a03aac27f5bd16e2e04b82c508b62c375dd77f9458", "logical_root_ids": [ - "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091" + "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8" ], - "physical_candidate_id": "asap-explain-v1:physical:eaa1600404778ebdc2ccb234b478399f09fb8d799dbd38745b2c8c4f3de340bb", + "physical_candidate_id": "asap-explain-v1:physical:1b1c24a4690dae6380e66942e40854a314be6fbbbde71c2d890d7fe16aa7af3f", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1918,11 +1918,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3f4f1a785c0cd25ca8a64f43754be61497a59eba42b5303d5a0ff70402e53456", + "candidate_id": "asap-explain-v1:candidate:e7772fd741fa25b32b490edc92e91572f0ecba96095549fc2374541e160d07d4", "logical_root_ids": [ - "asap-explain-v1:root:cc526d3d65f393b128a334e21595156a346dbfadddc98e9db50a86c0a552399b" + "asap-explain-v1:root:2370ffb672196b669dc683e13edf8081fa2bc0fb4d4c3a93522cbb033451b2f6" ], - "physical_candidate_id": "asap-explain-v1:physical:a99b6575eb07903f905e4fd379bbd315378727e4e52a0d9ec3ef650eea321acc", + "physical_candidate_id": "asap-explain-v1:physical:c6db13e3364bbe9a545e8c00432188593811e099970f48d54808cc7d0ebd6342", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, @@ -1930,11 +1930,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:cd1877d16d46fc596e0a6ebf3ea69213ce43304226df1dd3b8b68c7762b764c4", + "candidate_id": "asap-explain-v1:candidate:bde591a40ecaa927aab912755783b27967035f4f26cd1b196e4a5b4615252c87", "logical_root_ids": [ - "asap-explain-v1:root:9dc1b4cf04f03b400967f5f77f952188e11ff8d0b8841fba64fe0473389b5718" + "asap-explain-v1:root:4c792db77f857334ba4ba5ba86565232cabb6e016ba07bb5842a4ecc12d67cff" ], - "physical_candidate_id": "asap-explain-v1:physical:900b4a8046e9415781af115bf9f124fbcf34cc144c3dca993467eaa34d762cae", + "physical_candidate_id": "asap-explain-v1:physical:37d8b62eae055aeebc1df20151dd97160226405b3aa358320a989daf4452b0bf", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3235857638904289352, @@ -1948,7 +1948,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], @@ -1964,7 +1964,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:dfabebbfdcfb55000b309c286a6d322aa8cada80e9efdfa45e84fb5b7d2968e7", + "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2029,26 +2029,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:6b756284f05dc3f3d46ada17fa0cb5113075ce63d7199948b4bc0d59fbe916e5" + "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091", + "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index 49c51b325..efd1e2f5c 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -51,10 +51,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:b3d7d634c0f58d84aa6499b24572a5f90556b66564279f87b6de67ef3c797091"]` | `"unselected"` | `122.0` | `null` | -| 2 | `["asap-explain-v1:root:cc526d3d65f393b128a334e21595156a346dbfadddc98e9db50a86c0a552399b"]` | `"unselected"` | `61000000000000.0` | `null` | -| 3 | `["asap-explain-v1:root:9dc1b4cf04f03b400967f5f77f952188e11ff8d0b8841fba64fe0473389b5718"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8"]` | `"unselected"` | `122.0` | `null` | +| 2 | `["asap-explain-v1:root:2370ffb672196b669dc683e13edf8081fa2bc0fb4d4c3a93522cbb033451b2f6"]` | `"unselected"` | `61000000000000.0` | `null` | +| 3 | `["asap-explain-v1:root:4c792db77f857334ba4ba5ba86565232cabb6e016ba07bb5842a4ecc12d67cff"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index 2bea977ce..b13807117 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", + "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" + "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -1036,7 +1036,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1887,11 +1887,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:df0591f2e817efa191f79e1dca160f4acbbd413b12588f49670d79be54d2ab8a", + "candidate_id": "asap-explain-v1:candidate:1455e3389d65988b9de009084729b5dce59c62d6e4f26b1b2e04a288672b8b1e", "logical_root_ids": [ - "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d" + "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581" ], - "physical_candidate_id": "asap-explain-v1:physical:59a971662b9879dde92f93bac6d6ea9c37a55240f1e3e80ebe3d2dfa8b3dbdaa", + "physical_candidate_id": "asap-explain-v1:physical:abbe1e177cb3c21fd26951935904930e1454aab7966630b43969b066631585f6", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1899,11 +1899,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:9ff386b0ba74c4339f4a7bdbf52b930ceb829fc5fd9fa41ec761f8c51352190d", + "candidate_id": "asap-explain-v1:candidate:ea843f6a749e8d16d818ac67c3a73f67077aa0378d9b1dab038a6df6286618de", "logical_root_ids": [ - "asap-explain-v1:root:02e023b6e1dde9f687d49e396dacfb1b9bf4894655cb19d15899ae29f95b03ad" + "asap-explain-v1:root:d6e15336f36165f41482088baaef5db2f506c2480475123bb957147fef874b55" ], - "physical_candidate_id": "asap-explain-v1:physical:3c8962843c859ad0e1fa8674e909e0a8e41f8e588832f3db944b6a4cede86d19", + "physical_candidate_id": "asap-explain-v1:physical:d5bf257adac0472b623c22b951fdc7f733bb7ce4e61395128c3def98ec1d6ed2", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, @@ -1911,11 +1911,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:9371677a13317da1cf024686d1453491ad168b34130b7a6fefbc5987c9c2a439", + "candidate_id": "asap-explain-v1:candidate:d77343109ec73f2326a86d2de3dff8d305a5038c9a09c915c9b19962ee28d497", "logical_root_ids": [ - "asap-explain-v1:root:2b53a81cb8e5af5223d031f37bafdaee99032dccb32b1a8ac48c44cf53f2cacb" + "asap-explain-v1:root:26fce6652ab9c20e139e09ffdb44329147162d73026db521ae5920e70b2c62bb" ], - "physical_candidate_id": "asap-explain-v1:physical:2f1cbd73de8f77997c24c4a90335c6837fe7deb76b3137f8bc0d154b8cb88772", + "physical_candidate_id": "asap-explain-v1:physical:5d155704b6d98b2207511ed43c08b70d174a224346d9abb4ad44e44cb9f77fa4", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17637043547591721229, @@ -1929,7 +1929,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], @@ -1945,7 +1945,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:91d12ab191d12c4b86b6603aaa3a37513905bc13f394ab6d62b8e8e044a052ae", + "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2010,26 +2010,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:c7e35650e576b420525d016248414598de4372505d9130cb268a5d09ba8fbe6e" + "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b217617ead9baaf2a804ba32eb8203ad81572b4de269021c0a978a46e56cd641" + "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:2ad0b64316322fd126233280fcc8694fabbe47c6bec0a9525e92f5b3ffcf9381" + "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d", + "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index a89a133d2..c062922d5 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -51,9 +51,9 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:66fe6b378e7ac1cef8c4fb3bea65af4b6b93878510f135a8dabb1cb16523e31d"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:02e023b6e1dde9f687d49e396dacfb1b9bf4894655cb19d15899ae29f95b03ad"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:2b53a81cb8e5af5223d031f37bafdaee99032dccb32b1a8ac48c44cf53f2cacb"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:d6e15336f36165f41482088baaef5db2f506c2480475123bb957147fef874b55"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:26fce6652ab9c20e139e09ffdb44329147162d73026db521ae5920e70b2c62bb"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) diff --git a/docs/evaluation/issue754-human-review/topk-rate.dot b/docs/evaluation/issue754-human-review/topk-rate.dot index b386aa519..85fd647a8 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.dot +++ b/docs/evaluation/issue754-human-review/topk-rate.dot @@ -19,5 +19,13 @@ digraph compiled_physical_plan { query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; query_0_1 -> query_0_0; query_0_0 -> query_0_2; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_2 [label="#2\nBound physical input"]; + native_query_0_3 [label="#3\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_0_2 -> native_query_0_3; + native_query_0_4 [label="#4\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_0_3 -> native_query_0_4; + } } } diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index caf9a1611..e162ec36e 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -237,7 +237,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -770,7 +770,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1761,7 +1761,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], @@ -1777,7 +1777,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1842,13 +1842,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1913,26 +1913,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", "query_index": 0 } ], @@ -1941,145 +1941,151 @@ { "guarantee": { "bound": { - "op": "zero" + "op": "unknown", + "statistic": "topk_membership_margin" }, "failure_probability": { - "op": "zero" + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] }, - "metric": "absolute_value", + "metric": "top_k_membership", "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, { "guarantee": { "bound": { - "op": "zero" + "op": "constant", + "value": 0.009993683192864136 }, "failure_probability": { - "op": "zero" + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" }, - "metric": "absolute_value", + "metric": "frequency", "provenance": [ { - "kind": "exact", - "reason": "KeepPreAsap" + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" } ] }, "input_index": 0, "kind": "child_guarantee" }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, { "kind": "composition_step", "operator": { - "op": "counter_rate" + "op": "top_k_selection" }, - "rule": "exact_input" + "rule": "topk_membership_margin_certificate" } ] }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } + "PerSubpopulationInstance" ] - } + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "output": { + "schema": { "fields": [ { "dtype": { @@ -2090,7 +2096,10 @@ }, { "dtype": { - "Plain": "float64" + "ExactAggregate": [ + "Rate", + "Rate" + ] }, "name": "value", "nullable": false @@ -2113,27 +2122,72 @@ "time_index": 0 } } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { + }, + "2": { + "Operator": { "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, "name": "value", "nullable": false @@ -2155,32 +2209,129 @@ ], "time_index": 0 } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 ], - "kind": { - "Limit": { - "groups": [ - 2 + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } ], - "n": 3, - "offset": 0 + "time_index": null } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "output": { + "schema": { "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, { "dtype": { "Plain": "utf8" @@ -2190,611 +2341,502 @@ }, { "dtype": { - "Plain": "utf8" + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] }, - "name": "$promql_series_identity", + "name": "topk_3", "nullable": false } ], - "time_index": 0 + "time_index": null } } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { + "4": { + "Operator": { "inputs": [ - { + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { "fields": [ { "dtype": { - "Plain": "timestamp" + "Plain": "utf8" }, - "name": "ts", - "nullable": false + "name": "label_0", + "nullable": true }, { "dtype": { - "Plain": "float64" + "Plain": "timestamp" }, - "name": "value", + "name": "ts", "nullable": false }, { "dtype": { "Plain": "utf8" }, - "name": "label_0", - "nullable": true + "name": "$promql_series_identity", + "nullable": false }, { "dtype": { - "Plain": "utf8" + "Plain": "float64" }, - "name": "$promql_series_identity", + "name": "__asap_estimate", "nullable": false } ], - "time_index": 0 + "time_index": null } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ + "operator": { + "inputs": [ + { + "fields": [ { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } + { + "dtype": { + "Plain": "timestamp" }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null } ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ + "kind": { + "Project": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } }, { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null } - }, - "PerSubpopulationInstance" - ] + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "name": "topk_3", + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", "nullable": false } ], - "time_index": null + "time_index": 0 } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, + "operator": { + "inputs": [ { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { "fields": [ { "dtype": { - "Plain": "utf8" + "Plain": "timestamp" }, - "name": "label_0", - "nullable": true + "name": "ts", + "nullable": false }, { "dtype": { - "Plain": "timestamp" + "Plain": "float64" }, - "name": "ts", + "name": "value", "nullable": false }, { "dtype": { "Plain": "utf8" }, - "name": "$promql_series_identity", - "nullable": false + "name": "label_0", + "nullable": true }, { "dtype": { - "Plain": "float64" + "Plain": "utf8" }, - "name": "__asap_estimate", + "name": "$promql_series_identity", "nullable": false } ], - "time_index": null + "time_index": 0 } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, + "operator": { + "inputs": [ { - "Planner": { - "expression": { - "Column": 3 + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + ], + "time_index": 0 } ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { "fields": [ { "dtype": { @@ -2827,151 +2869,19 @@ ], "time_index": 0 } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 } } } }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } + "roots": [ + 7 + ], + "version": 1 }, - "roots": [ - 7 - ], "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", "stage": "planner.physical_candidate" }, { @@ -3071,68 +2981,158 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] }, - { - "dtype": { - "Plain": "utf8" + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { + }, + "2": { + "Operator": { "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "name": "ts", - "nullable": false - }, - { - "dtype": { + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { "Plain": "float64" }, "name": "value", @@ -3155,46 +3155,53 @@ ], "time_index": 0 } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ + "operator": { + "inputs": [ + { + "fields": [ { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { "Sketch": [ { "algorithm": "CountSketchWithHeap", @@ -3210,23 +3217,17 @@ "PerSubpopulationInstance" ] }, - "name": "topk_3", - "nullable": false + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { + }, + "output": { "fields": [ { "dtype": { @@ -3258,14 +3259,24 @@ ], "time_index": null } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "output": { + "schema": { "fields": [ { "dtype": { @@ -3276,39 +3287,76 @@ }, { "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] }, - "name": "__asap_estimate", + "name": "topk_3", "nullable": false } ], "time_index": null } } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { + }, + "4": { + "Operator": { "inputs": [ - { + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { "fields": [ { "dtype": { @@ -3341,314 +3389,314 @@ ], "time_index": null } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 ], - "kind": { - "Project": [ + "operator": { + "inputs": [ { - "Planner": { - "expression": { - "Column": 1 + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + ], + "time_index": null } ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, + "kind": { + "Project": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } }, { - "dtype": { - "Plain": "utf8" - }, + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, "name": "$promql_series_identity", "nullable": false } ], "time_index": 0 } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, + "operator": { + "inputs": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { "fields": [ { "dtype": { @@ -3681,113 +3729,201 @@ ], "time_index": 0 } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, + "operator": { + "inputs": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } ], - "time_index": 0 + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } } } } - } + }, + "roots": [ + 7 + ], + "version": 1 }, - "roots": [ - 7 - ], "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", "stage": "planner.physical_candidate" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 11938117179177087264, - "selected_manifest": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "topk by (label_0) (3, rate(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "rate" + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "schema": { + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { "fields": [ { "dtype": { @@ -3820,228 +3956,65 @@ ], "time_index": 0 } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] + "column": 1, + "descending": true, + "nulls_first": false } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } + ] } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - } + ], + "time_index": 0 } } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "window_ms": 10000 - }, - "op": "read_materialization" + } }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { "fields": [ { "dtype": { @@ -4074,1657 +4047,5492 @@ ], "time_index": 0 } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } + ], + "kind": { + "Limit": { + "groups": [ + 2 ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } + "n": 3, + "offset": 0 } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - } + ], + "time_index": 0 } } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" + } + } }, - "unit": "query_evaluation", - "multiplicity": 30.0 + "roots": [ + 4 + ], + "version": 1 }, - "query:compat-query-0:2": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 0 - ], - "max_bytes": 2147483648, - "op": "physical", - "source_nodes": [ - 2 - ] - }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } + "query_id": "compat-query-0", + "rationale": "select exact Top-K from independently maintained temporal values", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "3": { - "Operator": { - "inputs": [ - 2 - ], + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", "operator": { - "inputs": [ + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 ], - "operator": { - "inputs": [ + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false } ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false } - } + ], + "time_index": null } } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 2 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ + "name": "$promql_series_identity", + "nullable": false + }, { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false } ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 }, - "weight_domain": { - "kind": "unknown_or_signed" + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - }, - "kind": "summary_agg", - "reduction": "PerEntity" + } }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + { + "Planner": { + "expression": { + "Column": 3 }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null } - } + ], + "time_index": null, + "unique_keys": [] } - }, - "kind": "fallback" + } }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + { + "Planner": { + "expression": { + "Column": 0 }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + { + "Planner": { + "expression": { + "Column": 2 }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] } - ], - "time_index": 0 + } } - } + ] }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + } }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ + "name": "label_0", + "nullable": true + }, { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "kind": "summary_agg", - "reduction": "PerEntity" + "name": "value", + "nullable": false }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 } }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" + } + } }, - "unit": "horizon", - "multiplicity": 1.0 + "roots": [ + 7 + ], + "version": 1 }, - "state:backend:11966640087163441478:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] + "inner": { + "op": "constant", + "value": 0.009940766872773949 }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "record_range": true + "name": "ts", + "nullable": false }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" + { + "dtype": { + "Plain": "float64" }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 } }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + } }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "query:compat-query-0:2": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:11966640087163441478:build": 1.0, - "state:backend:11966640087163441478:residency": 1.0, - "state:backend:11966640087163441478:retire": 1.0, - "state:backend:11966640087163441478:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:736baf2a73867ec897348a61ccc823177774c78a633522ac5d297061e72c994d", - "logical_root_ids": [ - "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4" - ], - "physical_candidate_id": "asap-explain-v1:physical:aa5907e46408e8391549919970e655f420aaafc8615d18d403760be0d6262b94", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 14733843382488271694, - "total_cost": 155.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:0ec721f491896880003cf0f9be813f35a621a930117bbcf22c4c3deaf6dd5230", - "logical_root_ids": [ - "asap-explain-v1:root:a3ecbd11f7f96eb2a85dd1ae44e8bce5973e9f61259d430b00a6e1f7377b5595" - ], - "physical_candidate_id": "asap-explain-v1:physical:27b98292a318f3229cf7f500958241e6fad280f0621659fbbf9055d335fd401f", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 15833270860732361489, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:6731c4ff590b338e1fa3356a4130b651c8e1377a838d3cc103131df818f3173a", - "logical_root_ids": [ - "asap-explain-v1:root:42fd4198d4b9045cf6d14bde2491b9197b60744dde46e589df25704f16013d01" - ], - "physical_candidate_id": "asap-explain-v1:physical:e3f5ff13e684ce68b9cec0dcd4d1f8ca28533bcd8927b59d36958548d91ab7e6", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5379663311087285901, - "total_cost": 242.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:4f11582a3478006c11a251a278214810d6cff2860b89971aadf06a2f099c6453", - "logical_root_ids": [ - "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2" - ], - "physical_candidate_id": "asap-explain-v1:physical:e0cb37ea35893066347434be2dd19d1626ec58759e88bb526470f7810e33d1e5", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 11938117179177087264, - "total_cost": 125.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:e717366027807039188e1db5d3e188f377b4d9d99f5a0c0c03da5678137b57d4", - "logical_root_ids": [ - "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "stage": "planner.physical_candidate" + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 11938117179177087264, + "selected_manifest": { + "plan_id": 11938117179177087264, + "plan_version": 1, + "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "topk by (label_0) (3, rate(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "input": 1, + "op": "exact_readout", + "readout": "rate" + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "window_ms": 10000 + }, + "op": "read_materialization" + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:2": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 0 + ], + "max_bytes": 2147483648, + "op": "physical", + "source_nodes": [ + 2 + ] + }, + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "topk by (label_0) (3, rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 2 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:11966640087163441478:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 7, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 11966640087163441478, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 11966640087163441478 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "query:compat-query-0:2": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:11966640087163441478:build": 1.0, + "state:backend:11966640087163441478:residency": 1.0, + "state:backend:11966640087163441478:retire": 1.0, + "state:backend:11966640087163441478:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:candidate:ecbf8e5dbd15471e5af3550cc062de715f4b154babb1a34bf952e9dfe0ff3ef4", + "logical_root_ids": [ + "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac" + ], + "physical_candidate_id": "asap-explain-v1:physical:0dc32ebc5d9a6ce294acbdeae33b5b2e257d526b458c076601b6b31b6d61a9b1", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 14733843382488271694, + "total_cost": 155.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:2016611f1f210d751c0a1440f293308cc559e701c1c4e0e96a1024eca1b83cc8", + "logical_root_ids": [ + "asap-explain-v1:root:deece59c58a71ff7517b2846500eda002e6a31ae4e7a3cf99c54029c25cffb53" + ], + "physical_candidate_id": "asap-explain-v1:physical:c8fbe82aa2e5548ccb09882f9d5c9ce0942c532330907d287d8c304a971e51c2", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 15833270860732361489, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:0f8517086e45ecfdcaadac97c09b437a006c256b265d41c7a55f904b5b3b658b", + "logical_root_ids": [ + "asap-explain-v1:root:7b07535373f722165f9d399a6ded1bd2f6b76440fd2d21bf9c1f1d636c373c02" + ], + "physical_candidate_id": "asap-explain-v1:physical:677be0da0f7eb4405f0f24b3c80bcc82204174991a9a3f68557f5d923992d320", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5379663311087285901, + "total_cost": 242.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:ec051ec605076ff1d24a6042af36fa91952d90f21de4d50d39659a7e78543157", + "logical_root_ids": [ + "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:41c81448b55b9d9af30f945211b924df6531143777ea960272e93d9179017da4", + "logical_root_ids": [ + "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:bfa2a8b17a9a6b9a0ffe24b21913d353a72fe557e88dcbbba99218ab357d5384", + "logical_root_ids": [ + "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b" + ], + "physical_candidate_id": "asap-explain-v1:physical:101fbcb4ccb7ec6fe3bedc2e1f0b5a02ae0cbe059c1d2175e821ee22245d70e3", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 11938117179177087264, + "total_cost": 125.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:217564c5d2cc9e00d116e23184562d287d1053c9e6e01cbdf746c2afbba9ddba", + "logical_root_ids": [ + "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:10cd81963760e836145385c7077c49743f2b292e906f5c8be3995d1ec1cc28d8", + "logical_root_ids": [ + "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, "total_cost": null, "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + } + ] + }, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "select exact Top-K from independently maintained temporal values", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ + { + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.009993683192864136 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" + }, + "inner": { + "op": "constant", + "value": 0.006737946999085467 + }, + "op": "scaled" + }, + "metric": "frequency", + "provenance": [ + { + "algorithm": "CmsWithHeap", + "contract": "count_min_l1_markov_v1", + "kind": "sketch_readout", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CmsWithHeap", + "category": "TopK", + "params": { + "CmsWithHeap": { + "depth": 5, + "heap_size": 100, + "width": 272 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false + } + ] + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + } + }, + "roots": [ + 7 + ], + "version": 1 + }, + "version": 1 }, - { - "candidate_id": "asap-explain-v1:candidate:56656516bf1d7f9c210723cb1e1254e9e1fc191cd44912711c79aa38daf7b0d8", - "logical_root_ids": [ - "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - } - ] - }, - "planner_selection_trace": [ + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ + "guarantee": { + "bound": { + "op": "unknown", + "statistic": "topk_membership_margin" + }, + "failure_probability": { + "op": "union_bound", + "terms": [ { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 + "op": "unknown", + "statistic": "topk_interval_failure_probability" + }, + { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + } + ] + }, + "metric": "top_k_membership", + "provenance": [ + { + "guarantee": { + "bound": { + "op": "constant", + "value": 0.01 + }, + "failure_probability": { + "count": { + "op": "unknown", + "statistic": "topk_max_distinct_items" }, - "failure_probability": { - "op": "zero" + "inner": { + "op": "constant", + "value": 0.009940766872773949 + }, + "op": "scaled" + }, + "metric": "l2_frequency", + "provenance": [ + { + "algorithm": "CountSketchWithHeap", + "contract": "count_sketch_l2_median_hoeffding_v1", + "kind": "sketch_readout", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + }, + "query": "TopK { k: 100 }" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_max_distinct_items" + }, + { + "kind": "composition_step", + "operator": { + "op": "approximate_aggregate" + }, + "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_selected_lower_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_excluded_upper_bound" + }, + { + "kind": "unavailable_statistic", + "statistic": "topk_interval_failure_probability" + }, + { + "kind": "composition_step", + "operator": { + "op": "top_k_selection" + }, + "rule": "topk_membership_margin_certificate" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "KeyedSummaryBuild": { + "family": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "groups": [ + 2 + ], + "items": [ + 0, + 3 + ], + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Sketch": [ + { + "algorithm": "CountSketchWithHeap", + "category": "TopK", + "params": { + "CountSketchWithHeap": { + "depth": 83, + "heap_size": 100, + "width": 30000 + } + } + }, + "PerSubpopulationInstance" + ] + }, + "name": "topk_3", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "KeyedReadout": { + "k": 100, + "state": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "5": { + "Operator": { + "inputs": [ + 4 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "__asap_estimate", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Project": [ + { + "Planner": { + "expression": { + "Column": 1 + }, + "output": [ + "timestamp", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 3 + }, + "output": [ + "float64", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 0 + }, + "output": [ + "utf8", + true + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + }, + { + "Planner": { + "expression": { + "Column": 2 + }, + "output": [ + "utf8", + false + ], + "schema": { + "closed": false, + "columns": [ + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "__asap_estimate", + "nullable": false, + "table": null + } + ], + "time_index": null, + "unique_keys": [] + } + } + } + ] }, - { - "guarantee": { - "bound": { - "op": "zero" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "failure_probability": { - "op": "zero" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "metric": "absolute_value", - "provenance": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "6": { + "Operator": { + "inputs": [ + 5 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, { - "kind": "exact", - "reason": "KeepPreAsap" + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Sort": { + "groups": [ + 2 + ], + "keys": [ + { + "column": 1, + "descending": true, + "nulls_first": false } ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + } }, - { - "guarantee": { - "bound": { - "op": "zero" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "failure_probability": { - "op": "zero" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "metric": "absolute_value", - "provenance": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "7": { + "Operator": { + "inputs": [ + 6 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "kind": "exact", - "reason": "KeepPreAsap" + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - ] - }, - "input_index": 0, - "kind": "child_guarantee" + ], + "time_index": 0 + } + ], + "kind": { + "Limit": { + "groups": [ + 2 + ], + "n": 3, + "offset": 0 + } }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" + } + } } + }, + "roots": [ + 7 ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" + "version": 1 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", - "query_index": 0 - } - ], - "schema_version": 1 + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" }, { "guarantee": { @@ -5768,7 +9576,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", + "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", "physical_dag": { "nodes": { "2": { @@ -6096,7 +9904,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", + "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", "physical_dag": { "nodes": { "2": { @@ -6759,7 +10567,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" }, { @@ -6859,7 +10667,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", + "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", "physical_dag": { "nodes": { "2": { @@ -7522,7 +11330,7 @@ "version": 1 }, "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", + "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", "stage": "planner.physical_candidate" } ] diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index 7919aa388..c93a9495b 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -72,12 +72,78 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2"`. +Logical root: `"asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe"`. + +top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states + +Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.009993683192864136},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"},"metric":"frequency","provenance":[{"algorithm":"CmsWithHeap","contract":"count_min_l1_markov_v1","kind":"sketch_readout","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` + +Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` + +#### Maintenance physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | +| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | + +Roots: `[3]`. + +#### Query physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` | +| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | +| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | +| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[7]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc"`. + +top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states + +Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` + +Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` + +#### Maintenance physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | +| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | + +Roots: `[3]`. + +#### Query physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` | +| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | +| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | +| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | +| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | + +Roots: `[7]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b"`. select exact Top-K from independently maintained temporal values Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]}` +#### Query physical DAG + | Node | Dependencies | Native operator / input | | --- | --- | --- | | 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | @@ -88,12 +154,14 @@ Roots: `[4]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d"`. +Logical root: `"asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b"`. top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.009993683192864136},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"},"metric":"frequency","provenance":[{"algorithm":"CmsWithHeap","contract":"count_min_l1_markov_v1","kind":"sketch_readout","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` +#### Query physical DAG + | Node | Dependencies | Native operator / input | | --- | --- | --- | | 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | @@ -107,12 +175,14 @@ Roots: `[7]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64"`. +Logical root: `"asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` +#### Query physical DAG + | Node | Dependencies | Native operator / input | | --- | --- | --- | | 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | @@ -127,14 +197,16 @@ Roots: `[7]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4"]` | `"unselected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:a3ecbd11f7f96eb2a85dd1ae44e8bce5973e9f61259d430b00a6e1f7377b5595"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:42fd4198d4b9045cf6d14bde2491b9197b60744dde46e589df25704f16013d01"]` | `"unselected"` | `242.0` | `null` | -| 3 | `["asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2"]` | `"selected"` | `125.0` | `null` | -| 4 | `["asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 5 | `["asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | - -Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-3](candidates/topk-rate-3.json) +| 0 | `["asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac"]` | `"unselected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:deece59c58a71ff7517b2846500eda002e6a31ae4e7a3cf99c54029c25cffb53"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:7b07535373f722165f9d399a6ded1bd2f6b76440fd2d21bf9c1f1d636c373c02"]` | `"unselected"` | `242.0` | `null` | +| 3 | `["asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 4 | `["asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 5 | `["asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b"]` | `"selected"` | `125.0` | `null` | +| 6 | `["asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 7 | `["asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | + +Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-3](candidates/topk-rate-3.json), [topk-rate-5](candidates/topk-rate-5.json) ## Persisted boundaries From 07d56e645af5b50ac384acb2aaa4a3e6db64bcc4 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:18:21 +0000 Subject: [PATCH 34/80] Remove stale candidate exports after enumeration changes --- .../candidates/topk-rate-3.dot | 23 - .../candidates/topk-rate-3.json | 3741 ----------------- .../issue754-human-review/topk-rate.md | 2 +- 3 files changed, 1 insertion(+), 3765 deletions(-) delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-3.json diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot deleted file mode 100644 index b386aa519..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.dot +++ /dev/null @@ -1,23 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="ExactReadout\nRate"]; - query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; - query_0_1 -> query_0_0; - query_0_0 -> query_0_2; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json deleted file mode 100644 index c37560147..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-3.json +++ /dev/null @@ -1,3741 +0,0 @@ -{ - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 2, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "c899084019580eac55e6502eb641d42e748c6ff2", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Sort": { - "keys": [ - { - "ascending": false, - "expr": { - "Column": 1 - }, - "nulls_first": false - } - ], - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": { - "Limit": { - "n": 3, - "offset": 0, - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 2, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "2": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 2 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d3f3c43a0e2f06589c622545e13b5cb4d0b0dc643d8eb75e216493eb7b41753c", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:ede641258d6c6c57789db368ce0412c1c0da06e74165e700912daab8f272ea4c" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6925dc98136d616dcea4a0336a2cb8a27916e4ce81cff47330b17d299c2e984", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:b8b8189857cb686ee6417f8a5f4983dcc56989b208cc012b38d99528e9aad496" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:3b9064ebf966ec0eaec1af0985a979564b15eb5ec7f8cbcd8f4bfe14c6a476fe" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:65d5f761dcf95671dffb45e7742a12eef3531e6f3d03e4e0d8c07a7612f09525" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:1f040959f6bd310c8f43ccf79eb37d38a12469a6e08588a848bb41449d3778f4", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:908757ed9c20f3cd5c92d8329e3880c6c876a7b154c4551a78f5d641634ed6f2", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9c781a6f8ee6ff1521a78043c04c2b6b9781949e93de89a494c70a6dd2a0b50d", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:4a670de6282d46c41df7fa3295bf3e5b6e058fd05d6222234784f260dc4e3d64", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' alternatives for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index c93a9495b..d2aa842ec 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -206,7 +206,7 @@ Roots: `[7]`. | 6 | `["asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | | 7 | `["asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-3](candidates/topk-rate-3.json), [topk-rate-5](candidates/topk-rate-5.json) +Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-5](candidates/topk-rate-5.json) ## Persisted boundaries From 1b41bbd2b222cd03b9af36c777a37d19f4210500 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:56:39 +0000 Subject: [PATCH 35/80] Execute grouped Rate Sum candidates over complete overlapping SDS windows --- Cargo.lock | 14 +- Cargo.toml | 12 +- control_plane/src/physical/compiler.rs | 226 ++++++++++++++---- .../src/physical/compiler/windows.rs | 13 +- .../src/physical/workload_cost/automatic.rs | 13 + control_plane/src/query_plan/residual.rs | 6 +- control_plane/tests/native_rate_topk.rs | 59 +++++ crates/asap_types/src/precompute_plan.rs | 7 +- crates/asap_types/src/query_plan/native.rs | 24 +- .../precompute_engine/maintenance_runtime.rs | 14 +- .../src/precompute_engine/partitioning.rs | 20 +- .../logical_dag/native_values.rs | 35 ++- .../sketch_db/index/maintenance.rs | 5 + .../storage_engines/sketch_db/index/native.rs | 3 + data_plane/tests/support/rate_heap_process.rs | 112 ++++++++- .../evidence-dependent-candidates.md | 6 + .../summary-catalog-sds-architecture.md | 8 +- .../catalog-physical-plan-runtime.md | 11 +- 18 files changed, 478 insertions(+), 110 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6c7f3f4d6..86341a533 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,7 +364,7 @@ dependencies = [ [[package]] name = "asap-aware-mapping" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "asap-types", "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib)", @@ -376,7 +376,7 @@ dependencies = [ [[package]] name = "asap-frontend-promql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "asap-types", "promql-parser 0.10.0 (git+https://github.com/ProjectASAP/promql-parser?rev=9fede7eecca923c9882fe256484d00d37f8706cb)", @@ -385,7 +385,7 @@ dependencies = [ [[package]] name = "asap-frontend-sql" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "asap-sql-function-catalog", "asap-types", @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "asap-physical-operators" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "asap-types", "asap_sketch_codec", @@ -416,12 +416,12 @@ dependencies = [ [[package]] name = "asap-sql-function-catalog" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" [[package]] name = "asap-types" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "serde", "serde_json", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "asap_sketch_codec" version = "0.1.0" -source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=574bef34c3792c9ebc76773eeff159ffd14194fd#574bef34c3792c9ebc76773eeff159ffd14194fd" +source = "git+https://github.com/ProjectASAP/ASAPPlanner?rev=176c1bd565e0c400f9a35996c2bd65de32475e72#176c1bd565e0c400f9a35996c2bd65de32475e72" dependencies = [ "asap_sketchlib 0.3.0 (git+https://github.com/ProjectASAP/asap_sketchlib?rev=5f03ccbd798ed5fec62bdd839bcb331123cab369)", "prost", diff --git a/Cargo.toml b/Cargo.toml index d583e3c88..152043148 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,10 +14,10 @@ version = "0.1.0" [workspace.dependencies] # Keep Planner frontends, selection, and IR on the same immutable revision. # Alias upstream asap-types because this workspace also defines asap_types. -planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } -asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } -asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } -asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +planner-types = { package = "asap-types", git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } +asap-aware-mapping = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } +asap-frontend-promql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } +asap-frontend-sql = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } # Shared external deps (used by 2+ crates) serde = { version = "1.0", features = ["derive"] } @@ -37,8 +37,8 @@ arc-swap = "1.7" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } # Internal crates -asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } -asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "574bef34c3792c9ebc76773eeff159ffd14194fd" } +asap-physical-operators = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } +asap_sketch_codec = { git = "https://github.com/ProjectASAP/ASAPPlanner", rev = "176c1bd565e0c400f9a35996c2bd65de32475e72" } asap_types = { path = "crates/asap_types" } asap_otel_proto = { path = "crates/asap_otel_proto" } indexmap = { version = "2.0", features = ["serde"] } diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 49d837c8c..3f8e58f1a 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -984,9 +984,12 @@ impl BackendLocalPlanningInput { &strategy, &asap_aware_mapping::TargetSubDAG::new(&typed), ); + proposed + .candidates + .extend(strategy.fixed_window_rate_candidates(&typed).candidates); proposed.candidates.extend( strategy - .fixed_window_rate_topk_candidates(&typed) + .query_time_rate_aggregation_candidates(&typed) .candidates, ); proposed.candidates.extend(direct.candidates); @@ -997,7 +1000,7 @@ impl BackendLocalPlanningInput { }; let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root) .or_else(|_| asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking(&root).map(|(_, program)| program)); - if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&root) { + if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&root) { planner_selection_trace.push(serde_json::json!({ "stage":"planner.physical_candidate", "query_id":query.query_id, "logical_root_id":crate::planner_selection::explained_root_id(&root, &query.accuracy_target), @@ -1548,7 +1551,7 @@ impl DeploymentPlanCompiler { for state in &selected { if matches!(&state.node.expr, SummaryExpr::SummaryAgg { reduction: planner_types::pre_asap::Reduction::Reduce(keys), .. - } if keys.is_empty()) || asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&query.selected_plan_root).is_ok() + } if keys.is_empty()) || asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&query.selected_plan_root).is_ok() { if let Some(sources) = immutable_materialization_sources(&state.node) { canonical_nodes.insert(Rc::as_ptr(&state.node) as usize); @@ -1559,6 +1562,7 @@ impl DeploymentPlanCompiler { } } let cohort_nodes = windows::cohort_nodes(&selected); + let native_cohort = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&query.selected_plan_root).is_ok(); for (ordinal, selected) in selected.into_iter().enumerate() { let mut branch_query = query.clone(); branch_query.query_lookback_ms = selected @@ -1575,7 +1579,17 @@ impl DeploymentPlanCompiler { candidate.window_secs.saturating_mul(1_000) == branch_query.query_lookback_ms && if cohort_nodes.contains(&(Rc::as_ptr(&selected.node) as usize)) { - windows::is_full_cohort(candidate) + if native_cohort { + windows::is_complete_window(candidate) + && candidate.slide_secs.saturating_mul(1000) + == u64::from( + query + .summary_lifecycle_inputs + .evaluation_interval_ms, + ) + } else { + windows::is_full_cohort(candidate) + } } else { !candidate.cohort_only } @@ -1791,7 +1805,9 @@ impl DeploymentPlanCompiler { query_id: query.query_id.clone(), reason: error.to_string(), })?; - if runtime_materialization.window_size != runtime_materialization.slide_interval + if !native_cohort + && runtime_materialization.window_size + != runtime_materialization.slide_interval { return Err(CompileError::Query { query_id: query.query_id.clone(), reason: "immutable scalar composition runtime requires nonoverlapping windows".into() }); @@ -2131,10 +2147,10 @@ impl DeploymentPlanCompiler { ) .ok(); let native_rate = native_rate.or_else(|| { - let physical = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&query.selected_plan_root).ok()?; + let physical = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&query.selected_plan_root).ok()?; fn heap(node: &Rc) -> Option> { match &node.expr { - SummaryExpr::SummaryAgg { family: SummaryFamilyType::Sketch(..), .. } => Some(node.clone()), + SummaryExpr::SummaryAgg { family: SummaryFamilyType::Sketch(..) | SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _), .. } => Some(node.clone()), SummaryExpr::ValueOperation { child, .. } => heap(child), SummaryExpr::SummaryEstimate { summary_input, .. } => heap(summary_input), _ => None, @@ -2144,7 +2160,9 @@ impl DeploymentPlanCompiler { }); let mut entry = if let Some((source, program)) = native_rate { let native_state_binding = if let SummaryExpr::SummaryAgg { - family: SummaryFamilyType::Sketch(..), + family: + SummaryFamilyType::Sketch(..) + | SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _), .. } = &source.expr { @@ -2155,28 +2173,46 @@ impl DeploymentPlanCompiler { } else { None }; - let mut entry = crate::query_plan::compile_bound_composable_mapped( - query.query_id.clone(), - canonical.clone(), - &source, - instant, - FallbackPolicy::ExactBackend, - binding, - |node, query_node| { - if let Some(id) = executable_dags[query_index] - .as_ref() - .and_then(|compiled| compiled.node_ids.node_id(node)) - { - query_node_bindings.insert((query_index, id), query_node); - } - }, - )?; - if let Some(binding) = native_state_binding { - entry.nodes.insert( - entry.root, - crate::query_plan::QueryPlanNode::ReadMaterialization { binding }, - ); - } + let mut entry = if let Some(binding) = native_state_binding { + let root = crate::query_plan::QueryNodeId(0); + if let Some(id) = executable_dags[query_index] + .as_ref() + .and_then(|compiled| compiled.node_ids.node_id(&source)) + { + query_node_bindings.insert((query_index, id), root); + } + crate::query_plan::QueryPlanEntry { + physical_dag: None, + language: crate::query_plan::QueryLanguage::PromQl, + query_id: query.query_id.clone(), + canonical_query: canonical.clone(), + fixed_evaluation: None, + root, + nodes: BTreeMap::from([( + root, + crate::query_plan::QueryPlanNode::ReadMaterialization { binding }, + )]), + instant, + fallback: FallbackPolicy::ExactBackend, + } + } else { + crate::query_plan::compile_bound_composable_mapped( + query.query_id.clone(), + canonical.clone(), + &source, + instant, + FallbackPolicy::ExactBackend, + binding, + |node, query_node| { + if let Some(id) = executable_dags[query_index] + .as_ref() + .and_then(|compiled| compiled.node_ids.node_id(node)) + { + query_node_bindings.insert((query_index, id), query_node); + } + }, + )? + }; let root = crate::query_plan::QueryNodeId( entry.nodes.keys().map(|id| id.0).max().unwrap_or(0) + 1, ); @@ -2358,7 +2394,7 @@ impl DeploymentPlanCompiler { query_id: query_id.clone(), reason, })?; - if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_ranking(&request.queries[query_index].selected_plan_root) { + if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&request.queries[query_index].selected_plan_root) { let program = physical.precompute.ok_or_else(|| CompileError::Snapshot("fixed-window candidate has no maintenance program".into()))?; let sink = PostAsapNodeId(u32::try_from(program.roots()[0]).map_err(|_| CompileError::Snapshot("maintenance sink overflow".into()))?); installed.native_programs.insert(sink, serde_json::from_slice(&program.encode().map_err(|e| CompileError::Snapshot(e.to_string()))?).map_err(|e| CompileError::Snapshot(e.to_string()))?); @@ -3507,7 +3543,7 @@ pub(crate) fn retained_partition_count( || (materialization.derived_input.is_some() && matches!( materialization.aggregation_type, - A::CountMinSketchWithHeap | A::CountSketchWithHeap + A::CountMinSketchWithHeap | A::CountSketchWithHeap | A::Sum )) { u128::from(input_cardinality.unwrap_or(1).max(1)) @@ -3827,7 +3863,7 @@ fn immutable_materialization_sources(node: &SummaryNode) -> Option Option Option, readout: Option<&SketchQuery>, composable: bool, + native_maintenance: bool, inherited_grouping: Option>, selected: &mut Vec, ) -> Result<(), String> { @@ -4225,9 +4278,26 @@ fn collect_selected_materializations( } else { None }; - if let Some(source) = immutable_materialization_sources(node) { + // A nested legacy Sum is a query reduction unless Planner supplied a + // complete native maintenance graph for this selected root. + let immutable_sources = if !native_maintenance + && matches!( + &node.expr, + SummaryExpr::SummaryAgg { + family: SummaryFamilyType::ExactAggregate( + planner_types::post_asap::ExactKind::Sum, + _ + ), + .. + } + ) { + None + } else { + immutable_materialization_sources(node) + }; + if let Some(source) = &immutable_sources { for source in source { - walk(&source, None, composable, None, selected)?; + walk(source, None, composable, native_maintenance, None, selected)?; } } match &node.expr { @@ -4238,24 +4308,73 @@ fn collect_selected_materializations( pruning: Some(_), .. } => { - walk(candidates, readout, composable, grouping.clone(), selected)?; + walk( + candidates, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; // Explicit external authoritative values do not need duplicate local state. if !composable { - walk(values, readout, composable, grouping.clone(), selected)?; + walk( + values, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } } SummaryExpr::ValueOperation { child, .. } => { - walk(child, readout, composable, grouping.clone(), selected)?; + walk( + child, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } SummaryExpr::RelationalJoin { left, right, .. } => { - walk(left, readout, composable, grouping.clone(), selected)?; - walk(right, readout, composable, grouping.clone(), selected)?; + walk( + left, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; + walk( + right, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } SummaryExpr::BinaryOp { lhs, rhs, .. } if composable || crate::query_plan::exact_value_executable(node) => { - walk(lhs, readout, composable, grouping.clone(), selected)?; - walk(rhs, readout, composable, grouping.clone(), selected)?; + walk( + lhs, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; + walk( + rhs, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } SummaryExpr::SummaryAgg { child, @@ -4263,15 +4382,23 @@ fn collect_selected_materializations( SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _), .. } if !matches!(child.expr, SummaryExpr::KeepPreAsap(_)) + && immutable_sources.is_none() && ((composable && crate::query_plan::exact_accumulator_value_source(child).is_some()) || crate::query_plan::exact_value_executable(node)) => { - walk(child, readout, composable, grouping.clone(), selected)?; + walk( + child, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } SummaryExpr::SummaryAgg { child, .. } if !matches!(child.expr, SummaryExpr::KeepPreAsap(_)) - && immutable_materialization_sources(node).is_none() => {} + && immutable_sources.is_none() => {} SummaryExpr::SummaryAgg { family: SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Count, _), @@ -4284,12 +4411,20 @@ fn collect_selected_materializations( summary_input, Some(query), composable, + native_maintenance, grouping.clone(), selected, )?, SummaryExpr::SummaryMerge { children, .. } => { for child in children { - walk(child, readout, composable, grouping.clone(), selected)?; + walk( + child, + readout, + composable, + native_maintenance, + grouping.clone(), + selected, + )?; } } SummaryExpr::SummaryAgg { @@ -4394,6 +4529,7 @@ fn collect_selected_materializations( physical_source.as_ref().unwrap_or(node), None, composable, + asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(node).is_ok(), None, &mut selected, )?; diff --git a/control_plane/src/physical/compiler/windows.rs b/control_plane/src/physical/compiler/windows.rs index 709273322..fcf2987ae 100644 --- a/control_plane/src/physical/compiler/windows.rs +++ b/control_plane/src/physical/compiler/windows.rs @@ -28,6 +28,10 @@ pub(super) fn is_full_cohort(candidate: &WindowRealizationCandidate) -> bool { } } +pub(super) fn is_complete_window(candidate: &WindowRealizationCandidate) -> bool { + matches!(candidate.layout, WindowMaterializationLayout::FullWindow) || is_full_cohort(candidate) +} + pub(super) fn cohort_nodes(states: &[SelectedMaterialization]) -> BTreeSet { let mut nodes = BTreeSet::new(); for state in states { @@ -153,6 +157,7 @@ pub fn prepare_window_implementations( reason, })?; let cohorts = cohort_nodes(&states); + let native_cohort = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&query.selected_plan_root).is_ok(); let requirements = states .iter() .map(|state| { @@ -171,7 +176,7 @@ pub fn prepare_window_implementations( &model, &query.summary_lifecycle_inputs, window, - cohort, + cohort && !native_cohort, target, staleness_margin_ms, ) @@ -196,7 +201,11 @@ pub fn prepare_window_implementations( } let applicable = requirements.iter().any(|&(window, cohort)| { quote.window_secs == window - && if cohort { + && if cohort && native_cohort { + is_complete_window(quote) + && quote.slide_secs.saturating_mul(1000) + == u64::from(query.summary_lifecycle_inputs.evaluation_interval_ms) + } else if cohort { is_full_cohort(quote) } else { quote.slide_secs.saturating_mul(1_000) diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index d0d146d03..0198a3da3 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -132,6 +132,19 @@ fn physical_work(program: &Value, rows: f64) -> Result<(f64, f64), CompileError> items += rows * (depth + capacity.max(2.0).log2()); bytes += groups * (width * depth * 8.0 + capacity * (SERIES_BYTES + 24.0)); } + "SummaryBuild" => { + let family: SummaryFamilyType = + serde_json::from_value(parameters["family"].clone()) + .map_err(|e| invalid(e.to_string()))?; + if !matches!( + family, + SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _) + ) { + return Err(invalid("no native aggregate cost for this family")); + } + items += rows; + bytes += rows * 64.0; + } "Readout" => items += rows, "KeyedReadout" => items += rows * rows.max(2.0).log2(), _ => { diff --git a/control_plane/src/query_plan/residual.rs b/control_plane/src/query_plan/residual.rs index 0083566d8..3d392724a 100644 --- a/control_plane/src/query_plan/residual.rs +++ b/control_plane/src/query_plan/residual.rs @@ -422,7 +422,7 @@ pub(super) fn residual_nodes( } } Err(invalid( - "Planner residual does not match any original query subtree", + "Planner logical fragment does not match any original query subtree", )) } @@ -451,7 +451,7 @@ pub(super) fn binary_operator( }); } if operator.vector_match.is_some() { - return Err(invalid("explicit residual vector matching unsupported")); + return Err(invalid("explicit logical vector matching unsupported")); } let operation = match operator.kind.to_string().as_str() { "+" => BinaryOperation::Add, @@ -501,7 +501,7 @@ pub(super) fn selected_native_expression( ) -> Result { if !selected.guarantee.as_ref().is_some_and(|g| g.is_exact()) { return Err(invalid( - "native residual substitution requires an exact selected value", + "native subtree substitution requires an exact selected value", )); } let selected = match &selected.expr { diff --git a/control_plane/tests/native_rate_topk.rs b/control_plane/tests/native_rate_topk.rs index b66566e67..eafc353b8 100644 --- a/control_plane/tests/native_rate_topk.rs +++ b/control_plane/tests/native_rate_topk.rs @@ -282,3 +282,62 @@ fn fixed_window_heap_costs_include_native_maintenance() { && resource.calculation.get("physical_program").is_some())); } } + +// Rate must precede grouped Sum in both placements; deployment chooses ownership. +#[test] +fn grouped_rate_has_native_query_and_maintenance_candidates() { + let mut wire = serde_json::to_value(fixture(false)).unwrap(); + let entry = &mut wire["query_workload"]["repeating_queries"][0]; + entry["query"] = "sum by(job)(rate(requests_total[1m]))".into(); + entry["requirements"]["accuracy"] = json!({"explicit":"Exact"}); + entry["demand"]["fixed_interval_at"]["interval"] = 5_000.into(); + entry["demand"]["fixed_interval_at"]["evaluation_phase"] = 0.into(); + wire["implementation"]["accuracy_evidence"] = json!({}); + let input: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); + let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); + let mut placements = std::collections::BTreeSet::new(); + let mut errors = Vec::new(); + let mut ids = std::collections::BTreeSet::new(); + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + let plan = match DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) { + Ok(plan) => plan, + Err(error) => { + errors.push(error.to_string()); + continue; + } + }; + let entry = plan.query_plan.entries.values().next().unwrap(); + let Some(program) = &entry.physical_dag else { + continue; + }; + if entry.physical_vector_binding().is_none() { + continue; + } + entry.recover_vector_physical_dag().unwrap(); + let stored = plan + .precompute_plan + .executable_dags + .values() + .any(|dag| !dag.native_programs.is_empty()); + assert_eq!(program.to_string().contains("SummaryBuild"), !stored); + placements.insert(stored); + ids.insert(plan.envelope.plan_id); + } + assert_eq!( + placements, + std::collections::BTreeSet::from([false, true]), + "{errors:#?}" + ); + let report = input.compile_promql().unwrap().cost_comparison.unwrap(); + for candidate in report + .candidate_evaluations + .iter() + .filter(|candidate| candidate.plan_id.is_some_and(|id| ids.contains(&id))) + { + assert!( + candidate.total_cost.is_some(), + "{:?}", + candidate.unavailable_reason + ); + } +} diff --git a/crates/asap_types/src/precompute_plan.rs b/crates/asap_types/src/precompute_plan.rs index 40573bb17..ec590b54c 100644 --- a/crates/asap_types/src/precompute_plan.rs +++ b/crates/asap_types/src/precompute_plan.rs @@ -549,9 +549,6 @@ impl PrecomputePlan { return Err(invalid()); } validated_source_window_cohort(config, &sources)?; - if config.window_size != config.slide_interval { - return Err(invalid()); - } let mut matched = false; for installed in self.executable_dags.values() { let dag = installed @@ -581,12 +578,16 @@ impl PrecomputePlan { return Err(invalid()); } if native.is_none() { + if config.window_size != config.slide_interval { + return Err(invalid()); + } validate_maintenance_reduction(config, target_node) .map_err(PrecomputePlanError::CatalogContract)?; } else if !matches!( config.aggregation_type, crate::AggregationType::CountMinSketchWithHeap | crate::AggregationType::CountSketchWithHeap + | crate::AggregationType::Sum ) { return Err(invalid()); } diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs index 8e49e3212..bf5108282 100644 --- a/crates/asap_types/src/query_plan/native.rs +++ b/crates/asap_types/src/query_plan/native.rs @@ -1,4 +1,4 @@ -//! Installation of native SQL fragments; recovery only decodes physical operators. +//! Retained physical programs for SQL relations and PromQL vectors. use super::*; use asap_physical_operators::{dag, physical_planner::CompiledPhysicalDag}; use planner_types::post_asap::{ @@ -338,8 +338,8 @@ impl QueryPlanEntry { } } - /// The initial stored-vector adapter binds exact per-series counter reads. - /// Recovery validates source identities and schemas without logical lowering. + /// Validate bound counter vectors or stored aggregate batches against the + /// retained physical program; recovery never lowers logical operators. pub fn recover_vector_physical_dag(&self) -> Result { let invalid = |message: &str| QueryPlanError::Invalid(message.into()); let (inputs, source_nodes, max_bytes) = self @@ -436,17 +436,21 @@ impl QueryPlanEntry { let position = source_nodes.iter().position(|source| *source == id).unwrap(); if matches!(self.nodes.get(&inputs[position]), Some(QueryPlanNode::ReadMaterialization { .. })) { let summaries = input.schema.fields.iter().filter(|field| !matches!(field.dtype, SummaryFamilyType::Plain(_))).collect::>(); - !matches!(summaries.as_slice(), [field] if matches!(&field.dtype, SummaryFamilyType::Sketch(kind, _) if matches!(kind.algorithm(), planner_types::post_asap::SketchAlgorithm::CmsWithHeap | planner_types::post_asap::SketchAlgorithm::CountSketchWithHeap))) + !matches!(summaries.as_slice(), [field] if match &field.dtype { + SummaryFamilyType::Sketch(kind, _) => matches!(kind.algorithm(), planner_types::post_asap::SketchAlgorithm::CmsWithHeap | planner_types::post_asap::SketchAlgorithm::CountSketchWithHeap), + SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _) => true, + _ => false, + }) } else { !vector_schema(&input.schema) } }) - || !vector_schema( - &dag.output_contract(dag.roots()[0]) - .map_err(|e| QueryPlanError::Invalid(e.to_string()))? - .schema, - ) + || { + let output = dag.output_contract(dag.roots()[0]).map_err(|e| QueryPlanError::Invalid(e.to_string()))?; + output.schema.fields.iter().filter(|field| field.dtype == SummaryFamilyType::Plain(DataType::Float64)).count() != 1 + || output.schema.fields.iter().any(|field| !matches!(field.dtype, SummaryFamilyType::Plain(DataType::Utf8 | DataType::Float64 | DataType::Timestamp))) + } { return Err(invalid( - "physical vector program loses complete identity, timestamp or value", + "physical program has incompatible input or result schema", )); } Ok(dag) diff --git a/data_plane/src/precompute_engine/maintenance_runtime.rs b/data_plane/src/precompute_engine/maintenance_runtime.rs index c3b868ac2..a5719c471 100644 --- a/data_plane/src/precompute_engine/maintenance_runtime.rs +++ b/data_plane/src/precompute_engine/maintenance_runtime.rs @@ -1443,15 +1443,17 @@ fn execute_finite_complete_populations( .collect::, _>>()?; asap_types::precompute_plan::validated_source_window_cohort(config, &sources) .map_err(|error| error.to_string())?; + let native_program = installed.native_program(sink)?; if std::iter::once(config) .chain(sources.iter().copied()) .any(|config| { config.population_key_encoding != asap_types::PopulationKeyEncoding::CanonicalLabelsV1 - || config.slide_interval.checked_mul(1000) != Some(config.stored_window_ms()) + || (native_program.is_none() + && config.slide_interval.checked_mul(1000) != Some(config.stored_window_ms())) }) { return Err( - "complete population execution requires canonical nonoverlapping full windows".into(), + "complete population execution requires canonical windows supported by the bound program".into(), ); } let dag = installed.document.decode()?; @@ -1460,7 +1462,6 @@ fn execute_finite_complete_populations( .iter() .find(|node| node.id == sink) .ok_or("complete target node is absent")?; - let native_program = installed.native_program(sink)?; if native_program.is_none() { asap_types::precompute_plan::validate_maintenance_reduction(config, target_node)?; } @@ -1486,11 +1487,16 @@ fn execute_finite_complete_populations( } for (start, end) in windows { let width = source.stored_window_ms(); + let stride = source + .slide_interval + .checked_mul(1000) + .ok_or("source cadence overflow")?; if width == 0 + || stride == 0 || end.checked_sub(*start) != Some(width) || *end > i64::MAX as u64 || (*start as i128 - source.pane_origin_ms.unwrap_or(0) as i128) - .rem_euclid(width as i128) + .rem_euclid(stride as i128) != 0 { return Err( diff --git a/data_plane/src/precompute_engine/partitioning.rs b/data_plane/src/precompute_engine/partitioning.rs index 09ef174fd..fe29a12a7 100644 --- a/data_plane/src/precompute_engine/partitioning.rs +++ b/data_plane/src/precompute_engine/partitioning.rs @@ -68,15 +68,15 @@ impl DagPartitioning { Self::Labels(names) => { let pairs = names .iter() + // Missing and empty PromQL grouping labels denote the same + // group. Ownership must colocate them without adding a label. .map(|name| { - population - .get(name) - .map(|value| (name.as_str(), value.as_str())) - .ok_or_else(|| { - format!("DAG partition label {name} is absent from population") - }) + ( + name.as_str(), + population.get(name).map(String::as_str).unwrap_or(""), + ) }) - .collect::, _>>()?; + .collect::>(); let key = super::group_key::GroupKey::new(pairs); Ok(xxh64(key.canonical_bytes(), 0) as usize % workers) } @@ -99,7 +99,11 @@ mod tests { series.insert("instance".into(), instance.into()); assert_eq!(rule.owner(&series, 4).unwrap(), expected); } - assert!(rule.owner(&BTreeMap::new(), 4).is_err()); + assert_eq!( + rule.owner(&BTreeMap::new(), 4).unwrap(), + rule.owner(&BTreeMap::from([("service".into(), "".into())]), 4) + .unwrap() + ); assert!(rule.owner(&group, 0).is_err()); let owners = (0..64) .map(|i| { diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index b77029d47..ef25c4a56 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -1,4 +1,4 @@ -//! Bind protocol vectors to native batch operators; computation stays in Planner. +//! Bind deployment inputs to retained native programs and decode PromQL results. use super::{grouping_key, miss, EngineError, Grouping, Labels, Vector}; use asap_physical_operators::dag::{ self, batch_execution, @@ -224,7 +224,7 @@ pub(in crate::query_engines::asap_query_engine) fn execute_stored( let Some(asap_types::query_plan::QueryPlanNode::ReadMaterialization { binding }) = entry.nodes.get(&inputs[index]) else { - return Err(miss("native stored source is not a bound heap")); + return Err(miss("native stored source has no deployed summary binding")); }; let end = i64::try_from(at).map_err(|_| miss("native timestamp overflow"))?; let start = at @@ -315,21 +315,36 @@ fn execute_batches( .schema() .fields .iter() - .position(|field| field.name == SERIES_IDENTITY_COLUMN) - .ok_or_else(|| miss("physical output loses series identity"))?; + .position(|field| field.name == SERIES_IDENTITY_COLUMN); let value = batch .schema() .fields .iter() - .position(|field| field.name == "value") + .position(|field| field.dtype == SummaryFamilyType::Plain(DataType::Float64)) .ok_or_else(|| miss("physical output loses sample value"))?; for row in batch.rows() { - let (Value::Utf8(encoded), Value::Float64(sample)) = (&row[identity], &row[value]) - else { - return Err(miss("invalid population physical output")); + let Value::Float64(sample) = &row[value] else { + return Err(miss("invalid physical result value")); + }; + let labels = if let Some(identity) = identity { + let Value::Utf8(encoded) = &row[identity] else { + return Err(miss("invalid physical series identity")); + }; + decode_series_identity(encoded).map_err(|error| miss(error.to_string()))? + } else { + batch + .schema() + .fields + .iter() + .zip(row) + .filter_map(|(field, value)| match value { + Value::Utf8(label) if !label.is_empty() => { + Some((field.name.clone(), label.to_string())) + } + _ => None, + }) + .collect() }; - let labels = - decode_series_identity(encoded).map_err(|error| miss(error.to_string()))?; values.push( InstantVectorElement::new( KeyByLabelValues::new_with_labels(labels.values().cloned().collect()), diff --git a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs index 7e355c417..ec53f5575 100644 --- a/data_plane/src/storage_engines/sketch_db/index/maintenance.rs +++ b/data_plane/src/storage_engines/sketch_db/index/maintenance.rs @@ -387,6 +387,11 @@ impl SketchStore { .get_or_load(part.part_id) .map_err(|e| e.to_string())?; for record in reader.window_records(sid, start_ms, end_ms) { + // A bound full-window read selects its exact coordinates; other + // overlapping snapshots do not contribute to this computation. + if !expected_windows.contains(&(record.start_ts, record.end_ts)) { + continue; + } let entry = reader.load_entry(&record).map_err(|e| e.to_string())?; if entry.label.as_ref().map_or(0, |label| label.labels.len()) != keys.len() { return Err("immutable input label arity differs from its descriptor".into()); diff --git a/data_plane/src/storage_engines/sketch_db/index/native.rs b/data_plane/src/storage_engines/sketch_db/index/native.rs index 0fa3bb97b..a93bef09a 100644 --- a/data_plane/src/storage_engines/sketch_db/index/native.rs +++ b/data_plane/src/storage_engines/sketch_db/index/native.rs @@ -41,6 +41,9 @@ impl NativeSummaryOutput { SketchAlgorithm::CountSketchWithHeap => Some(AggregationType::CountSketchWithHeap), _ => None, }, + SummaryFamilyType::ExactAggregate(planner_types::post_asap::ExactKind::Sum, _) => { + Some(AggregationType::Sum) + } _ => None, }; let mut kind = schema_kind; diff --git a/data_plane/tests/support/rate_heap_process.rs b/data_plane/tests/support/rate_heap_process.rs index dc8681ca9..9862601f6 100644 --- a/data_plane/tests/support/rate_heap_process.rs +++ b/data_plane/tests/support/rate_heap_process.rs @@ -30,8 +30,21 @@ async fn precomputed_rate_cms_heap_survives_durable_restart() { run("CmsWithHeap", true).await; } +#[tokio::test] +async fn precomputed_grouped_rate_sum_survives_durable_restart() { + run("Sum", true).await; +} +#[tokio::test] +async fn query_time_grouped_rate_sum_survives_durable_restart() { + run("Sum", false).await; +} + async fn run(algorithm: &str, precomputed: bool) { - let query = "topk by (job) (1, rate(requests_total[1m]))"; + let query = if algorithm == "Sum" { + "sum by (job) (rate(requests_total[1m]))" + } else { + "topk by (job) (1, rate(requests_total[1m]))" + }; let mut wire: Value = serde_json::from_str(include_str!( "../../../docs/examples/asapquery-compatibility-demo-snapshot.json" )) @@ -40,7 +53,14 @@ async fn run(algorithm: &str, precomputed: bool) { entry["query"] = query.into(); entry["requirements"]["accuracy"] = serde_json::json!({"explicit":{"EpsilonDelta":{"epsilon":0.1,"delta":0.1}}}); - entry["demand"]["fixed_interval_at"]["interval"] = 60_000.into(); + entry["demand"]["fixed_interval_at"]["interval"] = if algorithm == "Sum" { + 5_000.into() + } else { + 60_000.into() + }; + if algorithm == "Sum" { + entry["requirements"]["accuracy"] = serde_json::json!({"explicit":"Exact"}); + } entry["demand"]["fixed_interval_at"]["evaluation_phase"] = 0.into(); wire["query_workload"]["repeating_queries"] = serde_json::json!([entry]); wire["implementation"]["topk_evidence"] = serde_json::json!({}); @@ -53,6 +73,9 @@ async fn run(algorithm: &str, precomputed: bool) { "topk_selected_lower_bound":500.0,"topk_excluded_upper_bound":10.0, "topk_interval_failure_probability":0.001 }}); + if algorithm == "Sum" { + wire["implementation"]["accuracy_evidence"] = serde_json::json!({}); + } let mut snapshot: BackendLocalPlanningInput = serde_json::from_value(wire).unwrap(); let (request, environment) = snapshot .clone() @@ -123,6 +146,19 @@ async fn run(algorithm: &str, precomputed: bool) { precomputed ); + if precomputed { + assert!( + plan.precompute_plan + .materializations + .iter() + .all( + |state| state.slide_interval == if algorithm == "Sum" { 5 } else { 60 } + && state.window_size == 60 + ), + "maintenance must match the query cadence, not publish only every 60 seconds" + ); + } + let install = data_plane::drivers::query::servers::http::PhysicalPlanInstallRequest { summary_catalog: plan.summary_catalog, collector_plans: plan.collector_plans, @@ -241,15 +277,37 @@ async fn run(algorithm: &str, precomputed: bool) { (120000, 240000.), ], ))) + .chain((algorithm == "Sum").then(|| { + series_with_labels( + "requests_total", + &[("unreferenced_instance", "no-job")], + &[ + (1000, 3.), + (20000, 60.), + (40000, 120.), + (60000, 180.), + (61000, 183.), + (80000, 240.), + (100000, 300.), + (120000, 360.), + ], + ) + })) .collect(), }; assert_eq!(remote_write(&client, &backend, &request).await, 204); drain_precompute(&client, &backend).await; } - for (index, (at, winner, score)) in [(60., "a", 1000.), (120., "b", 39050. / 59.)] - .into_iter() - .enumerate() - { + let evaluations = if algorithm == "Sum" { + vec![ + (60., "a", 1000.), + (65., "a", 1000.), + (120., "b", 39050. / 59.), + ] + } else { + vec![(60., "a", 1000.), (120., "b", 39050. / 59.)] + }; + for (index, (at, winner, score)) in evaluations.into_iter().enumerate() { let body = wait_for_warm_instant( &client, &backend, @@ -259,7 +317,20 @@ async fn run(algorithm: &str, precomputed: bool) { ) .await; let rows = body["data"]["result"].as_array().unwrap(); - assert_eq!(rows.len(), 2, "{body}"); + assert_eq!(rows.len(), if algorithm == "Sum" { 3 } else { 2 }, "{body}"); + if algorithm == "Sum" { + let empty = rows + .iter() + .find(|row| { + row["metric"] + .as_object() + .is_some_and(|labels| labels.is_empty()) + }) + .unwrap_or_else(|| panic!("missing grouping labels must be omitted: {body}")); + assert!( + (empty["value"][1].as_str().unwrap().parse::().unwrap() - 3.).abs() < 1e-8 + ); + } assert!( rows.iter() .all(|row| row["metric"].get("__name__").is_none()), @@ -273,12 +344,35 @@ async fn run(algorithm: &str, precomputed: bool) { .iter() .find(|row| row["metric"]["job"] == "worker") .unwrap(); - assert_eq!(worker["metric"]["unreferenced_instance"], "d"); + if algorithm != "Sum" { + assert_eq!(worker["metric"]["unreferenced_instance"], "d"); + } assert!( (worker["value"][1].as_str().unwrap().parse::().unwrap() - 2000.).abs() < 1e-8 ); - assert_eq!(api["metric"]["unreferenced_instance"], winner, "{body}"); + if algorithm == "Sum" { + assert!( + api["metric"].get("unreferenced_instance").is_none(), + "grouped Sum must drop ungrouped labels: {body}" + ); + } else { + assert_eq!(api["metric"]["unreferenced_instance"], winner, "{body}"); + } let value = api["value"][1].as_str().unwrap().parse::().unwrap(); + let score = score + + if algorithm == "Sum" { + if at == 60. { + 1.1 + } else if at == 65. { + // b's zero-point extrapolation truncates the left edge: + // (980 * 45 / 41 + 20) / 60, plus c's constant 0.1. + (980. * 45. / 41. + 20.) / 60. + 0.1 + } else { + 0.1 + } + } else { + 0. + }; assert!((value - score).abs() < 1e-8, "{body}, expected {score}"); if restart { assert_eq!(body["data"]["result"], expected[index]); diff --git a/docs/design_docs/evidence-dependent-candidates.md b/docs/design_docs/evidence-dependent-candidates.md index 69977e239..d4baf36cc 100644 --- a/docs/design_docs/evidence-dependent-candidates.md +++ b/docs/design_docs/evidence-dependent-candidates.md @@ -339,3 +339,9 @@ candidate. This placement requires a complete, durable counter population for th same window and does not authorize merging rates across windows. The initial runtime realization uses the finite-source completion barrier. Candidate admission must reject deployments unable to satisfy that completion requirement. + +For grouped Rate, the exact grouped Sum also has query-time and precompute +physical candidates. A stored complete-window Sum does not combine raw counters +across series before Rate. Its producer cadence must satisfy the query recurrence; +selecting a 60-second lookback cannot silently reduce five-second evaluations to +one output per minute. Overlapping full windows remain independent stored results. diff --git a/docs/design_docs/summary-catalog-sds-architecture.md b/docs/design_docs/summary-catalog-sds-architecture.md index e757eabb1..3160315cb 100644 --- a/docs/design_docs/summary-catalog-sds-architecture.md +++ b/docs/design_docs/summary-catalog-sds-architecture.md @@ -176,12 +176,16 @@ the producer's input contract, not inferred from interval endpoints alone. A replacement snapshot replaces a record's revision; readers must not mix its old metadata with new bytes or count both snapshots as separate inputs. -The stored output also fixes its publication granularity. A native grouped heap +The stored output also fixes its publication granularity. A native grouped heap or grouped Sum may publish all groups as one typed batch for a complete window, with an empty outer `group_key`. Group columns remain inside that batch and in its semantic definition. The installed query reads the batch and runs Planner's grouped readout. This makes the complete group set atomic across publication and recovery; -it does not claim that the logical computation has no grouping. A per-group record +it does not claim that the logical computation has no grouping. Full-window +snapshots may overlap when the evaluation cadence is shorter than the lookback. +An installed full-window read selects its exact endpoints; other overlapping +snapshots are neither combined nor mistaken for ambiguous versions of that record. +A per-group record layout and a complete-batch layout cannot silently substitute for each other. ## 5. Semantic identity vs. deployed-output identity diff --git a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md index 6ca558968..d6cd16363 100644 --- a/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md +++ b/docs/developer_docs/query-engine/catalog-physical-plan-runtime.md @@ -108,7 +108,10 @@ and resets. Rates from different windows are never added as heap updates. This placement runs after the finite input cohort is closed and durable. It does not infer population completeness from a timer or a missing series. Continuous maintenance needs an explicit population/window completion contract before it can -use this path. Binding requires matching nonoverlapping complete source windows. +use this path. Binding requires matching complete source windows at the query's +evaluation cadence. Full windows may overlap: a 60-second lookback evaluated +every five seconds stores independent `(t-60s,t]` outputs every five seconds. +A bound read selects exact window endpoints and never adds neighboring snapshots. Each native heap output is one atomic batch record per window. Logical groups and series identities remain in the typed batch; its outer storage address uses @@ -121,3 +124,9 @@ input/output node identities. Recovery validates those boundaries against the installed semantic document and stored-output bindings. The query resolves its exact deployed output through the store index, checks the definition, generation, window, encoding and batch schema, then executes the retained query graph. + +Grouped Rate supports the same placement choice. Planner can emit per-series +Rate readout → grouped Sum → Sum readout entirely at query time, or persist the +complete grouped Sum batch during maintenance. Both preserve grouping and drop +ungrouped series labels in the result. Backend prices both physical programs; +it does not move Sum across Rate or pool raw counters before calculating Rate. From cb2034d3cecf0f817a6b77093079158e4c07833b Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 00:58:53 +0000 Subject: [PATCH 36/80] Assert both grouped Rate Sum placements and their physical window contracts --- control_plane/tests/issue754_level1.rs | 112 ++++++++++++++++++ .../issue754-human-review/render.py | 6 + 2 files changed, 118 insertions(+) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 67f2d72c7..d2aeb68bc 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -251,6 +251,94 @@ fn assert_native_ranking(installed: &asap_types::query_plan::QueryPlanEntry) { assert_eq!(limit["inputs"], json!([sort_id])); } +// Check the computation on each side of the persisted frontier, not just the +// presence of Sum: per-series Rate must be finalized before grouped aggregation. +fn assert_native_grouped_rate(plan: &CompiledPhysicalPlan) -> bool { + let entry = plan.query_plan.entries.values().next().unwrap(); + let query = entry.recover_vector_physical_dag().unwrap(); + let query: Value = serde_json::from_slice(&query.encode().unwrap()).unwrap(); + let installed = &plan.precompute_plan.executable_dags[&entry.query_id]; + let stored = !installed.native_programs.is_empty(); + let maintenance; + let aggregation = if stored { + assert_eq!(installed.native_programs.len(), 1); + let sink = *installed.native_programs.keys().next().unwrap(); + maintenance = serde_json::from_slice::( + &installed + .native_program(sink) + .unwrap() + .unwrap() + .encode() + .unwrap(), + ) + .unwrap(); + &maintenance + } else { + &query + }; + let nodes = aggregation["nodes"].as_object().unwrap(); + let sum = nodes + .values() + .filter_map(|node| node.get("Operator")) + .find(|op| op["operator"]["kind"].get("SummaryBuild").is_some()) + .expect("grouped Rate candidate must explicitly build Sum"); + let build = &sum["operator"]["kind"]["SummaryBuild"]; + assert!(build["family"].to_string().contains("Sum")); + assert_eq!(sum["inputs"].as_array().unwrap().len(), 1); + let producer = &nodes[&sum["inputs"][0].to_string()]; + let fields = producer + .get("Input") + .map(|input| &input["schema"]["fields"]) + .unwrap_or(&producer["Operator"]["operator"]["output"]["fields"]) + .as_array() + .unwrap(); + let groups: Vec<_> = build["groups"] + .as_array() + .unwrap() + .iter() + .map(|column| { + fields[column.as_u64().unwrap() as usize]["name"] + .as_str() + .unwrap() + }) + .collect(); + assert_eq!(groups, ["label_0"]); + let value = build["value"].as_u64().unwrap() as usize; + assert_eq!(fields[value]["dtype"], json!({"Plain":"float64"})); + if stored { + let rate = &producer["Operator"]["operator"]["kind"]["Readout"]; + assert_eq!(rate["statistic"], "Rate"); + assert_eq!(rate["parameters"]["logical_lookback_ms"], "60000"); + assert!(!query.to_string().contains("SummaryBuild")); + assert!(query.to_string().contains("Readout")); + assert!( + plan.precompute_plan + .materializations + .iter() + .all(|state| state.window_size == 60 && state.slide_interval == 10), + "stored Sum must cover each 60-second query window at the fixture's 10-second cadence" + ); + } else { + assert!( + producer.get("Input").is_some(), + "Sum consumes the bound Rate vector" + ); + let wire = serde_json::to_value(entry).unwrap(); + let bound_nodes = wire["nodes"].as_object().unwrap(); + let root = &bound_nodes[&wire["root"].to_string()]; + assert_eq!(root["op"], "physical"); + assert_eq!(root["inputs"].as_array().unwrap().len(), 1); + let rate = &bound_nodes[&root["inputs"][0].to_string()]; + assert_eq!(rate["op"], "exact_readout"); + assert_eq!(rate["readout"], "rate"); + let state = &bound_nodes[&rate["input"].to_string()]; + assert_eq!(state["op"], "read_materialization"); + assert_eq!(state["binding"]["readout_lookback_ms"], 60_000); + assert_eq!(state["binding"]["output_grouping"]["mode"], "per_entity"); + } + stored +} + fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { if name == "topk-rate" { for dag in plan.query_plan.selected_dags.values() { @@ -292,6 +380,19 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option errors.push(error.to_string()), } } + if case.name == "grouped-rate" { + assert_eq!( + grouped_rate_placements, + std::collections::BTreeSet::from([false, true]), + "Planner must expose query-time and precomputed grouped Rate/Sum: {errors:?}" + ); + } assert!( !valid_plans.is_empty(), "{} has no valid physical plan: {errors:?}", diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/render.py index 0fbcd5e6b..ccb0e6767 100644 --- a/docs/evaluation/issue754-human-review/render.py +++ b/docs/evaluation/issue754-human-review/render.py @@ -191,6 +191,12 @@ def block(value): listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, multiple groups, resets, missing windows and restart. This placement requires the finite complete-input barrier; it does not claim continuous completeness. +Grouped Rate exposes both query-time and precomputed Sum as native physical +candidates. In both, each series is finalized with PromQL Rate semantics before +Sum groups the values. The precomputed candidate retains independent complete +60-second windows at this fixture's 10-second query cadence; it does not merge finalized +rates across windows. Process E2E tests compare both placements, including a +five-second cadence with a 65-second evaluation, missing grouping labels and durable restart. Other PromQL paths retain the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment From 20cb5c84e5973350d592fc982df63a8b09406b0b Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 01:00:20 +0000 Subject: [PATCH 37/80] Export grouped Rate physical candidates and refreshed issue754 review plans --- .../issue754-human-review/README.md | 8 +- .../candidates/grouped-rate-0.json | 1075 +- .../candidates/grouped-rate-1.json | 1075 +- .../candidates/grouped-rate-3.dot | 40 + .../candidates/grouped-rate-3.json | 4076 +++++++ .../candidates/grouped-rate-4.dot | 31 + .../candidates/grouped-rate-4.json | 2997 ++++++ .../candidates/grouped-temporal-sum-0.json | 26 +- .../candidates/grouped-temporal-sum-1.json | 26 +- .../candidates/grouped-temporal-sum-3.json | 26 +- .../candidates/quantile-ratio-0.json | 34 +- .../candidates/quantile-ratio-1.json | 30 +- .../candidates/quantile-ratio-2.json | 30 +- .../candidates/spatial-quantile-0.json | 18 +- .../candidates/spatial-quantile-1.json | 18 +- .../candidates/spatial-quantile-2.json | 18 +- .../candidates/spatial-quantile-3.json | 18 +- .../candidates/spatial-sum-0.json | 18 +- .../candidates/spatial-sum-1.json | 18 +- .../candidates/spatial-sum-2.json | 18 +- .../candidates/spatial-sum-3.json | 18 +- .../candidates/spatial-topk-1.json | 20 +- .../candidates/spatial-topk-2.json | 20 +- .../candidates/temporal-quantile-0.json | 22 +- .../candidates/temporal-quantile-1.json | 18 +- .../candidates/temporal-quantile-2.json | 18 +- .../candidates/temporal-rate-0.json | 18 +- .../candidates/temporal-rate-1.json | 18 +- .../candidates/temporal-rate-2.json | 18 +- .../candidates/temporal-rate-3.json | 18 +- .../candidates/temporal-sum-0.json | 18 +- .../candidates/temporal-sum-1.json | 18 +- .../candidates/temporal-sum-2.json | 18 +- .../candidates/topk-rate-0.json | 32 +- .../candidates/topk-rate-1.json | 32 +- .../candidates/topk-rate-2.json | 32 +- .../candidates/topk-rate-5.json | 32 +- .../issue754-human-review/grouped-rate.dot | 33 +- .../issue754-human-review/grouped-rate.json | 9449 +++++++++++++---- .../issue754-human-review/grouped-rate.md | 320 +- .../grouped-temporal-sum.json | 72 +- .../grouped-temporal-sum.md | 8 +- .../issue754-human-review/quantile-ratio.json | 74 +- .../issue754-human-review/quantile-ratio.md | 6 +- .../issue754-human-review/source-commit.txt | 2 +- .../spatial-quantile.json | 56 +- .../issue754-human-review/spatial-quantile.md | 8 +- .../issue754-human-review/spatial-sum.json | 56 +- .../issue754-human-review/spatial-sum.md | 8 +- .../issue754-human-review/spatial-topk.json | 58 +- .../issue754-human-review/spatial-topk.md | 10 +- .../temporal-quantile.json | 50 +- .../temporal-quantile.md | 6 +- .../issue754-human-review/temporal-rate.json | 56 +- .../issue754-human-review/temporal-rate.md | 8 +- .../issue754-human-review/temporal-sum.json | 50 +- .../issue754-human-review/temporal-sum.md | 6 +- .../issue754-human-review/topk-rate.json | 100 +- .../issue754-human-review/topk-rate.md | 26 +- 59 files changed, 17768 insertions(+), 2664 deletions(-) create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot create mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index dffacee82..a7d0b8e8b 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -5,7 +5,7 @@ recorded. Selected plans and successfully compiled candidate plans are retained as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`574bef34c3792c9ebc76773eeff159ffd14194fd`. +`176c1bd565e0c400f9a35996c2bd65de32475e72`. ## Current implementation boundary @@ -29,6 +29,12 @@ heap during precompute. Their typed stored boundary and both physical DAGs are listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, multiple groups, resets, missing windows and restart. This placement requires the finite complete-input barrier; it does not claim continuous completeness. +Grouped Rate exposes both query-time and precomputed Sum as native physical +candidates. In both, each series is finalized with PromQL Rate semantics before +Sum groups the values. The precomputed candidate retains independent complete +60-second windows at this fixture's 10-second query cadence; it does not merge finalized +rates across windows. Process E2E tests compare both placements, including a +five-second cadence with a 65-second evaluation, missing grouping labels and durable restart. Other PromQL paths retain the documented Backend adapter representation. Candidate discovery preserves each root's admitted computations. Deployment diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index 20ac1d683..eba314cb8 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1240,7 +1240,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", "query_index": 0 } ], @@ -1256,7 +1256,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1347,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,36 +1418,1083 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", "query_index": 0 } ], "schema_version": 1 }, { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "version": 1 + }, "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index d4c3b214a..05140fa56 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +216,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,36 +287,1083 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", "query_index": 0 } ], "schema_version": 1 }, { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "version": 1 + }, "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot new file mode 100644 index 000000000..097ba843a --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot @@ -0,0 +1,40 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; + materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; + precompute_0_2 [label="value #2\nMaintenanceInput"]; + precompute_0_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + precompute_0_1 -> precompute_0_2 [label="Input"]; + precompute_0_2 -> precompute_0_3 [label="Input"]; + subgraph cluster_maintenance_0_3 { + label="Planner maintenance operators"; + maintenance_0_3_1 [label="#1\nBound physical input"]; + maintenance_0_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; + maintenance_0_3_1 -> maintenance_0_3_2; + maintenance_0_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; + maintenance_0_3_2 -> maintenance_0_3_3; + } + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_0_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; + materialization_9414a19c98bfc6a8 -> query_0_0 [style=dashed, color=gray40, label="reads"]; + query_0_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; + query_0_0 -> query_0_1; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_3 [label="#3\nBound physical input"]; + native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; + native_query_0_3 -> native_query_0_4; + } + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json new file mode 100644 index 000000000..3d06bc9f5 --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json @@ -0,0 +1,4076 @@ +{ + "envelope": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 15282866737310247190, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + }, + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 + } + }, + "data_descriptors": { + "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2": { + "id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2", + "source": { + "derived": { + "input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + } + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "population_key_encoding": "canonical_labels_v1", + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + }, + "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "population_key_encoding": "canonical_labels_v1", + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "1361847422443465319": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + }, + "10670331111097222824": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } + }, + "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [] + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" + } + ] + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" + } + ] + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 15282866737310247190, + "plan_version": 1, + "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" + }, + "envelope": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 1361847422443465319, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", + "schema_version": 1, + "materialization": 1361847422443465319, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + }, + { + "stored_output_reference": { + "stored_output_id": 10670331111097222824, + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "materialization": 10670331111097222824, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "population_key_encoding": "canonical_labels_v1", + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + }, + { + "semantic_fragment": { + "format_version": 1, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [] + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" + } + ] + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" + } + ] + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" + } + ] + } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "population_key_encoding": "canonical_labels_v1", + "partitioning": "grouped", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "native_programs": { + "3": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + } + }, + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 1361847422443465319 + }, + "2": { + "placement": "maintenance_input" + }, + "3": { + "placement": "materialization", + "stored_output": 10670331111097222824 + } + }, + "query_sink": 4, + "query_plan_sink": 1, + "precompute_sinks": [ + 1, + 3 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 15282866737310247190, + "plan_version": 1, + "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" + }, + "envelope": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "physical_dag": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 1, + "nodes": { + "0": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 10670331111097222824, + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + }, + "full_window_slide_ms": 10000, + "materialization": 10670331111097222824, + "output_grouping": { + "mode": "reduce", + "keys": [] + }, + "window_ms": 60000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "1": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 3 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 1361847422443465319, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + }, + { + "materialization": 10670331111097222824, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot new file mode 100644 index 000000000..a6fc1e9dd --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot @@ -0,0 +1,31 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_0_0 [label="ExactReadout\nRate"]; + query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; + query_0_1 -> query_0_0; + query_0_0 -> query_0_2; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_2 [label="#2\nBound physical input"]; + native_query_0_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; + native_query_0_2 -> native_query_0_3; + native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; + native_query_0_3 -> native_query_0_4; + } + } +} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json new file mode 100644 index 000000000..be387f47c --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json @@ -0,0 +1,2997 @@ +{ + "envelope": { + "plan_id": 3349874915222028658, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "summary_catalog": { + "schema_version": 4, + "plan_id": 3349874915222028658, + "plan_version": 1, + "summary_descriptors": { + "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { + "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact_counter", + "model": "prometheus.extrapolated-rate.v1", + "full_pane_coverage_required": true + }, + "state_schema_version": 2 + } + }, + "data_descriptors": { + "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "source": { + "time_series": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [ + "label_0" + ], + "partitioning": "per_entity", + "observation_semantics": "asap.timestamped-observations.v2" + } + }, + "outputs": { + "11966640087163441478": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", + "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + } + }, + "definitions": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } + } + } + }, + "collector_plans": [], + "precompute_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3349874915222028658, + "plan_version": 1, + "snapshot_sha256": "6c3edf9e4a581f942181a16a44d2729a1efce85faea4837635d1399cc9f282c9" + }, + "envelope": { + "plan_id": 3349874915222028658, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "ingest": { + "protocol": "prometheus_remote_write_v1", + "endpoint_path": "/api/v1/write", + "timestamp_unit": "unix_milliseconds", + "require_plan_identity": false, + "require_stored_output_identity": false, + "require_registered_producer": false + }, + "schemas": [ + { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_version": 1, + "materialization": 11966640087163441478, + "family": { + "family": "exact", + "kind": "rate" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [ + "label_0" + ], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + }, + "aggregation_type": "Rate", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "partitioning": "per_entity", + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "pane", + "pane_secs": 10 + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 7, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { + "compat-query-0": { + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 11966640087163441478 + } + }, + "query_sink": 4, + "query_plan_sink": 2, + "precompute_sinks": [ + 1 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 3349874915222028658, + "plan_version": 1, + "snapshot_sha256": "6c3edf9e4a581f942181a16a44d2729a1efce85faea4837635d1399cc9f282c9" + }, + "envelope": { + "plan_id": 3349874915222028658, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 3349874915222028658, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } + }, + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_state": { + "timing": "query_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 4, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "data_state": { + "timing": "query_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 2, + "nodes": { + "0": { + "op": "exact_readout", + "input": 1, + "readout": "rate" + }, + "1": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 11966640087163441478, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + }, + "materialization": 11966640087163441478, + "output_grouping": { + "mode": "per_entity" + }, + "window_ms": 10000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "2": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 2 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 11966640087163441478, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": null, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" + } + ] +} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index d2ce2b471..1c4607f1b 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", + "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", + "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", + "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" + "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", + "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" + "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index f91ea38d5..0a0849068 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", + "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +188,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", + "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +211,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", + "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +302,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" + "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", + "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,26 +373,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" + "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index 8f6853f6b..21a61c8aa 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -661,7 +661,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1238,7 +1238,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -1254,7 +1254,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", + "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1317,7 +1317,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", + "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,7 +1340,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", + "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1431,13 +1431,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" + "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", + "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1502,26 +1502,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" + "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index 95f6dc9fd..4413b2141 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.0049751243781094535 + "alpha": 0.0049751243781094535, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", + "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" + "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", + "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" + "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index 4d65ff1dd..b423d4c99 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", + "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" + "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", + "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" + "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index 389927e4c..b4401ead4 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -132,7 +132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", + "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +323,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" + "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +418,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", + "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +527,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" + "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index be2ff59e5..a307ace5e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index d7a830cc8..35bff6a42 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index 242d6517f..f58370d89 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +435,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -451,7 +451,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -540,26 +540,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index 343ea257a..63cf6c2be 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index b903eb7bf..4061c5ed9 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index 5ef7b8dc3..fd896c67a 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index 57f90d370..f357f3c77 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +430,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -446,7 +446,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,26 +511,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index 8fb6d6d76..d45088454 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index cc744d7ce..c1964304d 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -126,33 +126,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" + "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" + "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -255,7 +255,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", + "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index 533765dc7..c8d93fb2c 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" + "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" + "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", + "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 73b0530c8..0b4a3f050 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -401,8 +401,8 @@ "aggregation_type": "DDSketch", "aggregation_sub_type": "", "parameters": { - "promql_right_closed": true, - "alpha": 0.01 + "alpha": 0.01, + "promql_right_closed": true }, "grouping_labels": { "labels": [] @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index 9251890ff..0055426e1 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index e991efffc..d18f88a1c 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +214,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index 4da7d9529..55c39087b 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index 741d16eab..bff198d61 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index 6b7892abc..61a2e3d3f 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index f89817e42..f1ab37343 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index c94a9b683..0e21b210e 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", + "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" + "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index 167b68ef5..b8e3abd2b 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", + "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +190,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" + "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index 192adfe56..e3ce2225e 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -129,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", + "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" + "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index c3c8556ee..0808902f8 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -197,7 +197,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -663,7 +663,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1382,7 +1382,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -1398,7 +1398,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1463,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,26 +1534,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -1656,7 +1656,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -2602,7 +2602,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -3493,7 +3493,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -3821,7 +3821,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -4584,7 +4584,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index d68197465..797824f8f 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +109,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -125,7 +125,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +190,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,26 +261,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -383,7 +383,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -1329,7 +1329,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -2220,7 +2220,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -2548,7 +2548,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -3311,7 +3311,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index 0830ff46b..7b0293a38 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +146,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -162,7 +162,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +227,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,26 +298,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -420,7 +420,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -1366,7 +1366,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -2257,7 +2257,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -2585,7 +2585,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -3348,7 +3348,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json index b3fb4fc13..8c65a6b58 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -237,7 +237,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -770,7 +770,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1761,7 +1761,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -1777,7 +1777,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1842,13 +1842,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1913,26 +1913,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -2035,7 +2035,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -2981,7 +2981,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -3872,7 +3872,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -4200,7 +4200,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -4963,7 +4963,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/grouped-rate.dot b/docs/evaluation/issue754-human-review/grouped-rate.dot index c9fb85791..097ba843a 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.dot +++ b/docs/evaluation/issue754-human-review/grouped-rate.dot @@ -3,21 +3,38 @@ digraph compiled_physical_plan { node [shape=box, fontname=Helvetica]; subgraph cluster_precompute { label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; + materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; subgraph cluster_precompute_dag_0 { label="compat-query-0"; precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; + precompute_0_2 [label="value #2\nMaintenanceInput"]; + precompute_0_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; precompute_0_0 -> precompute_0_1 [label="Input"]; + precompute_0_1 -> precompute_0_2 [label="Input"]; + precompute_0_2 -> precompute_0_3 [label="Input"]; + subgraph cluster_maintenance_0_3 { + label="Planner maintenance operators"; + maintenance_0_3_1 [label="#1\nBound physical input"]; + maintenance_0_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; + maintenance_0_3_1 -> maintenance_0_3_2; + maintenance_0_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; + maintenance_0_3_2 -> maintenance_0_3_3; + } } } subgraph cluster_query_0 { label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_0_1 [label="ExactReadout\nRate"]; - query_0_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_2 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - query_0_2 -> query_0_1; + query_0_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; + materialization_9414a19c98bfc6a8 -> query_0_0 [style=dashed, color=gray40, label="reads"]; + query_0_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; + query_0_0 -> query_0_1; + subgraph cluster_native_query_0 { + label="Planner query operators"; + native_query_0_3 [label="#3\nBound physical input"]; + native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; + native_query_0_3 -> native_query_0_4; + } } } diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/grouped-rate.json index cd60af568..7ee8325a1 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.json +++ b/docs/evaluation/issue754-human-review/grouped-rate.json @@ -1,17 +1,17 @@ { "envelope": { - "plan_id": 5849823772717530049, + "plan_id": 15282866737310247190, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { "schema_version": 4, - "plan_id": 5849823772717530049, + "plan_id": 15282866737310247190, "plan_version": 1, "summary_descriptors": { "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { @@ -36,11 +36,51 @@ "full_pane_coverage_required": true }, "state_schema_version": 2 + }, + "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { + "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "operator": { + "kind": "configured", + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + } + }, + "fidelity": { + "kind": "exact" + }, + "state_schema_version": 1 } }, "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", + "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2": { + "id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2", + "source": { + "derived": { + "input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + } + } + }, + "value_projection": "sample_value", + "population_filter_canonical": "", + "group_by_keys": [], + "population_key_encoding": "canonical_labels_v1", + "partitioning": "grouped", + "observation_semantics": "asap.timestamped-observations.v2" + }, + "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { + "id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", "source": { "time_series": { "metric": "data" @@ -51,33 +91,39 @@ "group_by_keys": [ "label_0" ], + "population_key_encoding": "canonical_labels_v1", "partitioning": "per_entity", "observation_semantics": "asap.timestamped-observations.v2" } }, "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "1361847422443465319": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" + }, + "10670331111097222824": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", + "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { "operation": { "expression": { "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -90,6 +136,18 @@ "name": "value", "nullable": false, "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -119,6 +177,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -126,7 +198,171 @@ "inputs": [], "record_range": true }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } + }, + "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 1, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [] + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { "operation": { "family": { "ExactAggregate": [ @@ -165,6 +401,119 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" + } + ] + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" + } + ] + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -172,7 +521,7 @@ "inputs": [ { "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" } ] } @@ -186,18 +535,18 @@ "precompute_plan": { "summary_catalog": { "schema_version": 4, - "plan_id": 5849823772717530049, + "plan_id": 15282866737310247190, "plan_version": 1, - "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" }, "envelope": { - "plan_id": 5849823772717530049, + "plan_id": 15282866737310247190, "plan_version": 1, "generated_at_unix_ms": 10000, "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -211,12 +560,12 @@ "schemas": [ { "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "stored_output_id": 1361847422443465319, + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", "schema_version": 1, - "materialization": 11966640087163441478, + "materialization": 1361847422443465319, "family": { "family": "exact", "kind": "rate" @@ -241,22 +590,53 @@ "planner_exact_accumulator_v1", "native_batch_v1" ] - } - ], - "producers": [], - "materializations": [ + }, { - "semantic_fragment": { - "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { + "stored_output_reference": { + "stored_output_id": 10670331111097222824, + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + }, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "materialization": 10670331111097222824, + "family": { + "family": "exact", + "kind": "sum" + }, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "value_projection": "sample_value", + "group_by": [], + "window": { + "kind": "sliding", + "size_ms": 60000, + "slide_ms": 10000, + "pane_origin_ms": 0 + }, + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ] + } + ], + "producers": [], + "materializations": [ + { + "semantic_fragment": { + "format_version": 1, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -269,6 +649,18 @@ "name": "value", "nullable": false, "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -298,6 +690,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -305,7 +711,7 @@ "inputs": [], "record_range": true }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { "operation": { "family": { "ExactAggregate": [ @@ -344,6 +750,20 @@ }, "name": "value", "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 @@ -351,7 +771,7 @@ "inputs": [ { "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" } ] } @@ -367,6 +787,7 @@ "label_0" ] }, + "population_key_encoding": "canonical_labels_v1", "partitioning": "per_entity", "aggregated_labels": { "labels": [] @@ -379,34 +800,30 @@ "slide_interval": 10, "window_type": "sliding", "window_layout": { - "kind": "pane", - "pane_secs": 10 + "kind": "full_window" }, "pane_origin_ms": 0, "spatial_filter": "", "spatial_filter_normalized": "", "metric": "data", - "num_aggregates_to_retain": 7, + "num_aggregates_to_retain": 1, "table_name": null, "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { + }, + { + "semantic_fragment": { + "format_version": 1, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "operation": { "expression": { "TimeRange": { "child": { "Scan": { "predicates": [], "schema": { - "closed": false, + "closed": true, "columns": [ { "dtype": "timestamp", @@ -425,6 +842,12 @@ "name": "label_0", "nullable": true, "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } ], "time_index": 0, @@ -445,10 +868,6 @@ }, "kind": "fallback" }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, "output_schema": { "fields": [ { @@ -471,29 +890,21 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } + "inputs": [] }, - { - "id": 1, - "payload": { + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "operation": { "family": { "ExactAggregate": [ "Rate", @@ -513,10 +924,6 @@ "kind": "summary_agg", "reduction": "PerEntity" }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, "output_schema": { "fields": [ { @@ -542,59 +949,84 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" + "inputs": [ + { + "role": "Input", + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" + } + ] + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + "dtype": { + "Plain": "utf8" }, - "input_index": 0, - "kind": "child_guarantee" + "name": "label_0", + "nullable": true }, { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] }, - "rule": "exact_input" + "name": "sum", + "nullable": false } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { + ], + "time_index": null + }, + "inputs": [ + { + "role": "Input", + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" + } + ] + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { "fields": [ { "dtype": { @@ -616,1994 +1048,7181 @@ }, "name": "label_0", "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], "time_index": 0 }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + "inputs": [ + { + "role": "Input", + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" + } + ] } + } + }, + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "population_key_encoding": "canonical_labels_v1", + "partitioning": "grouped", + "derived_input": { + "inputs": [ + 1361847422443465319 ], - "root": 1 + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 3, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 5849823772717530049, - "plan_version": 1, - "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" - }, - "envelope": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "selected_dags": { + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "original_yaml": "", + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + } + ], + "executable_dags": { "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ + "native_programs": { + "3": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "dtype": "timestamp", + "dtype": { + "Plain": "timestamp" + }, "name": "ts", - "nullable": false, - "table": null + "nullable": false }, { - "dtype": "float64", + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, "name": "value", - "nullable": false, - "table": null + "nullable": false }, { - "dtype": "utf8", + "dtype": { + "Plain": "utf8" + }, "name": "label_0", - "nullable": true, - "table": null + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } + "time_index": 0 } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "range": { - "nanos": 0, - "secs": 60 } } }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } } - ], - "time_index": 0 + } }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false + "roots": [ + 3 + ], + "version": 1 + } + }, + "document": { + "schema_version": 6, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" + "kind": "fallback" }, - "failure_probability": { - "op": "zero" + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + "name": "value", + "nullable": false }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - { - "dtype": { - "Plain": "float64" + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" }, - "name": "value", - "nullable": false + "weight_domain": { + "kind": "unknown_or_signed" + } }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" + "kind": "summary_agg", + "reduction": "PerEntity" }, - "failure_probability": { - "op": "zero" + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + "name": "value", + "nullable": false }, - "input_index": 0, - "kind": "child_guarantee" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Exact": { - "Aggregate": { - "having": null, - "measures": [ - { - "col": null, - "kind": "sum" - } - ], - "output_names": [ - "" - ], - "reduction": { - "Reduce": [ - 2 + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } ] - } + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" } - } + ] } }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" + { + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" }, - "failure_probability": { - "op": "zero" + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] + "name": "value", + "nullable": false }, - "input_index": 0, - "kind": "child_guarantee" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "name": "ts", - "nullable": false + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] }, - { - "dtype": { - "Plain": "float64" + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" }, - "name": "value", - "nullable": false + "weight_domain": { + "kind": "unknown_or_signed" + } }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "name": "ts", - "nullable": false + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false + "failure_probability": { + "op": "zero" }, - { - "dtype": { - "Plain": "utf8" + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 3 - } - }, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "aggregate", - "operation": "sum", - "grouping": { - "labels": [ - "label_0" + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } ], - "without": false - } - }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "exact_readout", - "input": 2, - "readout": "rate" - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "time_index": 0 }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "failure_probability": { - "op": "zero" + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" + { + "dtype": { + "Plain": "utf8" }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + } + ], + "root": 1 + }, + "binding": { + "nodes": { + "0": { + "placement": "maintenance_input" + }, + "1": { + "placement": "materialization", + "stored_output": 1361847422443465319 + }, + "2": { + "placement": "maintenance_input" + }, + "3": { + "placement": "materialization", + "stored_output": 10670331111097222824 + } + }, + "query_sink": 4, + "query_plan_sink": 1, + "precompute_sinks": [ + 1, + 3 + ] + } + } + } + }, + "transmission_plan": { + "summary_catalog": { + "schema_version": 4, + "plan_id": 15282866737310247190, + "plan_version": 1, + "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" + }, + "envelope": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "generated_at_unix_ms": 10000, + "activation_unix_ms": 10000, + "expiry_unix_ms": null, + "backend_compat": "asap-query-backend.v1", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1" + }, + "frame_identity": { + "identity_version": 1, + "sequence_scope": "materialization_series_producer_epoch", + "require_checkpoint_for_full": true, + "require_base_checkpoint_for_delta": true + }, + "rules": [] + }, + "query_plan": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "selected_dags": { + "compat-query-0": { + "schema_version": 5, + "query_id": "compat-query-0", + "nodes": [ + { + "id": 0, + "payload": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null }, { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" + ], + "time_index": 0, + "unique_keys": [] }, - "rule": "exact_input" + "source": { + "TimeSeries": { + "metric": "data" + } + } } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + } }, { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 + "id": 1, + "payload": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" + "failure_probability": { + "op": "zero" }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } }, { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 5849823772717530049, - "selected_manifest": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "sum by (label_0) (rate(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 + "id": 2, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" }, - "node": { - "inputs": [ - 1 + "output_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } ], - "op": "logical", - "operator": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false + "time_index": 0 + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + } + }, + { + "id": 3, + "payload": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" }, - "kind": "aggregate", - "operation": "sum" + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] } }, - "physical_dag": null, - "query": "sum by (label_0) (rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 + "output_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" }, - "node": { - "input": 2, - "op": "exact_readout", - "readout": "rate" + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null }, - "physical_dag": null, - "query": "sum by (label_0) (rate(data[1m]))" + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } }, - "unit": "query_evaluation", - "multiplicity": 30.0 + { + "id": 4, + "payload": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_state": { + "timing": "query_time", + "primitive": "Raw" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + } + } + ], + "edges": [ + { + "producer": 0, + "consumer": 1, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 1, + "consumer": 2, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 2, + "consumer": 3, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "Raw" + }, + "grouping": "NotApplicable", + "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" + }, + { + "producer": 3, + "consumer": 4, + "role": "Input", + "intermediate_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + }, + "data_state": { + "timing": "ingestion_time", + "primitive": "SummaryState" + }, + "grouping": "NotApplicable", + "window": "NotApplicable" + } + ], + "root": 4 + } + }, + "entries": { + "sum by (label_0) (rate(data[1m]))": { + "physical_dag": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "language": "prom_ql", + "query_id": "compat-query-0", + "canonical_query": "sum by (label_0) (rate(data[1m]))", + "root": 1, + "nodes": { + "0": { + "op": "read_materialization", + "binding": { + "stored_output_reference": { + "stored_output_id": 10670331111097222824, + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + }, + "full_window_slide_ms": 10000, + "materialization": 10670331111097222824, + "output_grouping": { + "mode": "reduce", + "keys": [] + }, + "window_ms": 60000, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000 + } + }, + "1": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 3 + ], + "max_bytes": 2147483648 + } + }, + "instant": { + "lookback_ms": 60000, + "full_history": false, + "cumulative_readout": true + }, + "fallback": "exact_backend" + } + } + }, + "storage_routing": { + "default_engine": "asap_query", + "metrics": [], + "tenant": "default" + }, + "lifecycle_estimates": [ + { + "materialization": 1361847422443465319, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + }, + { + "materialization": 10670331111097222824, + "consumer_query_ids": [ + "compat-query-0" + ], + "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", + "horizon_seconds": 300.0, + "expected_reads": 30.0, + "expected_updates": 30000.0, + "lifecycle_cost": 44.3 + } + ], + "cost_comparison": { + "logical_selection": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + }, + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + }, + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" + } + ], + "materialization_search_coverage": null, + "data_snapshot_id": "issue-754-level1", + "model_version": "deterministic-test-costs", + "selected_plan_id": 15282866737310247190, + "selected_manifest": { + "plan_id": 15282866737310247190, + "plan_version": 1, + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "capability_snapshot_id": "asapquery-local-v1", + "backend_compat": "asap-query-backend.v1", + "horizon_seconds": 300.0, + "workload": { + "compat-query-0": { + "accuracy": { + "EpsilonDelta": { + "delta": 0.01, + "epsilon": 0.01 + } + }, + "evaluation_interval_ms": 10000, + "query": "sum by (label_0) (rate(data[1m]))", + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "components": { + "maintenance:10670331111097222824": { + "implementation": { + "interval_ms": 10000, + "physical_program": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 + }, + "stored_output": 10670331111097222824, + "window_ms": 60000 + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "query:compat-query-0:0": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "binding": { + "full_window_slide_ms": 10000, + "materialization": 10670331111097222824, + "output_grouping": { + "keys": [], + "mode": "reduce" + }, + "pane_origin_ms": 0, + "readout_lookback_ms": 60000, + "stored_output_reference": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "stored_output_id": 10670331111097222824 + }, + "window_ms": 60000 + }, + "op": "read_materialization" + }, + "physical_dag": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "sum by (label_0) (rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "query:compat-query-0:1": { + "implementation": { + "instant": { + "cumulative_readout": true, + "full_history": false, + "lookback_ms": 60000 + }, + "node": { + "inputs": [ + 0 + ], + "max_bytes": 2147483648, + "op": "physical", + "source_nodes": [ + 3 + ] + }, + "physical_dag": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "query": "sum by (label_0) (rate(data[1m]))" + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "result:compat-query-0": { + "implementation": { + "query_id": "compat-query-0", + "root": 1 + }, + "unit": "query_evaluation", + "multiplicity": 30.0 + }, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { + "implementation": { + "ingest": { + "endpoint_path": "/api/v1/write", + "protocol": "prometheus_remote_write_v1", + "require_plan_identity": false, + "require_registered_producer": false, + "require_stored_output_identity": false, + "timestamp_unit": "unix_milliseconds" + }, + "location": "backend", + "source": { + "TimeSeries": { + "metric": "data" + } + } + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10670331111097222824:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "inputs": [], + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "inputs": [ + { + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "inputs": [ + { + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "inputs": [ + { + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", + "role": "Input" + } + ], + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 10670331111097222824, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "stored_output_id": 10670331111097222824 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10670331111097222824:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "inputs": [], + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "inputs": [ + { + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "inputs": [ + { + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "inputs": [ + { + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", + "role": "Input" + } + ], + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 10670331111097222824, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "stored_output_id": 10670331111097222824 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10670331111097222824:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "inputs": [], + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "inputs": [ + { + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "inputs": [ + { + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "inputs": [ + { + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", + "role": "Input" + } + ], + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 10670331111097222824, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "stored_output_id": 10670331111097222824 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:10670331111097222824:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Sum", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "grouping_labels": { + "labels": [] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "grouped", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { + "inputs": [], + "operation": { + "expression": { + "TimeRange": { + "child": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "range": { + "nanos": 0, + "secs": 60 + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { + "inputs": [ + { + "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + }, + "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { + "inputs": [ + { + "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": { + "Reduce": [ + 2 + ] + } + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + }, + "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { + "inputs": [ + { + "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", + "role": "Input" + } + ], + "operation": { + "kind": "value", + "operation": "FinalizeExactAccumulator" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_accumulator_v1", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "sum" + }, + "group_by": [], + "materialization": 10670331111097222824, + "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "stored_output_id": 10670331111097222824 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1361847422443465319:build": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 1361847422443465319, + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 1361847422443465319 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "build" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1361847422443465319:residency": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 1361847422443465319, + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 1361847422443465319 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "residency" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1361847422443465319:retire": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 1361847422443465319, + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 1361847422443465319 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "retire" + }, + "unit": "horizon", + "multiplicity": 1.0 + }, + "state:backend:1361847422443465319:update": { + "implementation": { + "binding": { + "location": "backend", + "physical": { + "aggregated_labels": { + "labels": [] + }, + "aggregation_sub_type": "", + "aggregation_type": "Rate", + "grouping_labels": { + "labels": [ + "label_0" + ] + }, + "metric": "data", + "num_aggregates_to_retain": 1, + "original_yaml": "", + "pane_origin_ms": 0, + "parameters": { + "promql_right_closed": true + }, + "partitioning": "per_entity", + "population_key_encoding": "canonical_labels_v1", + "rollup_labels": { + "labels": [] + }, + "semantic_fragment": { + "format_version": 1, + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "inputs": [], + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "inputs": [ + { + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", + "role": "Input" + } + ], + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" + }, + "slide_interval": 10, + "spatial_filter": "", + "spatial_filter_normalized": "", + "table_name": null, + "value_projection": null, + "window_layout": { + "kind": "full_window" + }, + "window_size": 60, + "window_type": "sliding" + }, + "schema": { + "encodings": [ + "exact_counter_accumulator_v2", + "planner_exact_accumulator_v1", + "native_batch_v1" + ], + "family": { + "family": "exact", + "kind": "rate" + }, + "group_by": [ + "label_0" + ], + "materialization": 1361847422443465319, + "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", + "schema_version": 1, + "source": { + "TimeSeries": { + "metric": "data" + } + }, + "stored_output_reference": { + "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "stored_output_id": 1361847422443465319 + }, + "value_projection": "sample_value", + "window": { + "kind": "sliding", + "pane_origin_ms": 0, + "size_ms": 60000, + "slide_ms": 10000 + } + }, + "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" + }, + "operation": "update" + }, + "unit": "horizon", + "multiplicity": 1.0 + } + } + }, + "component_costs": { + "maintenance:10670331111097222824": 1.0, + "query:compat-query-0:0": 30.0, + "query:compat-query-0:1": 30.0, + "result:compat-query-0": 30.0, + "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, + "state:backend:10670331111097222824:build": 1.0, + "state:backend:10670331111097222824:residency": 1.0, + "state:backend:10670331111097222824:retire": 1.0, + "state:backend:10670331111097222824:update": 1.0, + "state:backend:1361847422443465319:build": 1.0, + "state:backend:1361847422443465319:residency": 1.0, + "state:backend:1361847422443465319:retire": 1.0, + "state:backend:1361847422443465319:update": 1.0 + }, + "candidates": [ + { + "candidate_id": "asap-explain-v1:candidate:87b839e53f17c6edb9300442353164b2be820b3935786213063526cb53a6c96c", + "logical_root_ids": [ + "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b" + ], + "physical_candidate_id": "asap-explain-v1:physical:7ccc3bc27c1b96ada6ee6ba3fc13d6086f238bdd76a5b789ef1264884ebce6ae", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 5849823772717530049, + "total_cost": 125.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:26e523685f44afb79b6cf56e61e83103bad15f18eae703e32f89edc23f76bbfe", + "logical_root_ids": [ + "asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba" + ], + "physical_candidate_id": "asap-explain-v1:physical:8cfce96a5da0445c91268f4b08c0ef73e4f3f5c24f75a05b9272203f5281f3d8", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 741363842036532054, + "total_cost": 61000000000000.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:75549c88c5ef740087b6227e4a296e618acebb67efb1db5837b568e3100444e6", + "logical_root_ids": [ + "asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:e55145861b536c12ea805c740f9c620c26a962496cdb1ab6474a99a98e599f4c", + "logical_root_ids": [ + "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5" + ], + "physical_candidate_id": "asap-explain-v1:physical:26c63bfb557453a9a1e144baaaa1156de7f8b1e0cab4afd4f241d392fcab9111", + "identity_unavailable_reason": null, + "status": "selected", + "plan_id": 15282866737310247190, + "total_cost": 100.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:b39e34722ce28083cbad29620719a38093563e34cf6e69431ff395315d960f8e", + "logical_root_ids": [ + "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac" + ], + "physical_candidate_id": "asap-explain-v1:physical:cb63c4da47a097c41d7d40bbc9c6da3506003e36fd4d4d69464dab773fc261dc", + "identity_unavailable_reason": null, + "status": "unselected", + "plan_id": 3349874915222028658, + "total_cost": 125.0, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:04b3d3fc23a69590e3c24eeed8d01d045fadab84a403128ce95321d162e38a28", + "logical_root_ids": [ + "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema" + } + ] + }, + "planner_selection_trace": [ + { + "candidate_assembly_rejections": [], + "committed_roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "computation_search_scope": { + "deployment_evaluation": "single_root_substitutions_in_preferred_workload", + "inventory": "all_root_candidates", + "joint_workload_search_exhaustive": false + }, + "deployment_overrides": [], + "group_id_scope": "this_selection", + "groups": [ + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 512.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 512.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 0, + "rejected": [], + "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" }, - "query:compat-query-0:2": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" + { + "candidates": [ + { + "accuracy_status": "known", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "cost_estimate": { + "erp_record_ids": [], + "model": "backend_state_footprint_v1", + "source": "analytical", + "unit": "bytes_per_state_partition", + "value": 256.0 + }, + "decision_reason": "planner_selected_pending_backend_binding", + "estimated_cost": 256.0, + "estimated_cost_status": "available", + "guarantee": { + "bound": { + "op": "zero" }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 + "failure_probability": { + "op": "zero" }, - "window_ms": 10000 + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "sum by (label_0) (rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 + "provenance": "SummaryRealization", + "rank": 0, + "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "replacement_kind": "summary", + "runtime_support_status": "unknown_pending_backend_binding", + "selected": true, + "status": "selected", + "strategy": "SketchAlgorithmStrategy" + } + ], + "consumer_count": 1, + "group_id": 1, + "rejected": [], + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 + { + "candidates": [], + "consumer_count": 1, + "group_id": 2, + "rejected": [], + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 + { + "candidates": [], + "consumer_count": 1, + "group_id": 3, + "rejected": [], + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + } + ], + "roots": [ + { + "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "query_index": 0 + } + ], + "schema_version": 1 + }, + { + "guarantee": { + "bound": { + "op": "zero" }, - "state:backend:11966640087163441478:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - "record_range": true + "name": "value", + "nullable": false }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "value", + "nullable": false }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" } }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" + } }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + "name": "ts", + "nullable": false + }, { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + { + "dtype": { + "Plain": "utf8" }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "label_0", + "nullable": true }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false + { + "dtype": { + "Plain": "utf8" }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 } }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" + } + } }, - "unit": "horizon", - "multiplicity": 1.0 + "roots": [ + 3 + ], + "version": 1 }, - "state:backend:11966640087163441478:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - "record_range": true + "name": "label_0", + "nullable": true }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] }, - "weight_domain": { - "kind": "unknown_or_signed" - } + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" }, - "kind": "summary_agg", - "reduction": "PerEntity" + "name": "label_0", + "nullable": true }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, + "version": 1 + }, + "query_id": "compat-query-0", + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", + "stage": "planner.physical_candidate" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "window_size": 60, - "window_type": "sliding" + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" + }, + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "physical_dag": { + "nodes": { + "2": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" }, "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" + "time_index": 0 + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 } }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" + } + } }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { + { + "dtype": { "ExactAggregate": [ - "Rate", - "Rate" + "Sum", + "Sum" ] }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 + "name": "sum", + "nullable": false } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" + ], + "time_index": null + } ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" } }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "query:compat-query-0:2": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:11966640087163441478:build": 1.0, - "state:backend:11966640087163441478:residency": 1.0, - "state:backend:11966640087163441478:retire": 1.0, - "state:backend:11966640087163441478:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:ed8ad5183e906ab2e13216c5d4fb65a9825b8cc82fc9ee6a2daab8436a746ef0", - "logical_root_ids": [ - "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90" - ], - "physical_candidate_id": "asap-explain-v1:physical:d250d54a00267b7815dc34ca398f54851376402a51068860ba2b6c6bc694d1d4", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 5849823772717530049, - "total_cost": 125.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:7155aa12099ef2ddb601f3fa04db5bc6a632a890bf5cd5f8883e8f77fa7e17aa", - "logical_root_ids": [ - "asap-explain-v1:root:e6c97518f6007d571e505532df8ba092b0428e90ca9da32e3a85630c32497be2" + } + } + } + }, + "roots": [ + 4 ], - "physical_candidate_id": "asap-explain-v1:physical:7dd15637bcd92c88b84220dbc11314da6063e74c71716804cf8b50acc89d5ba5", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 741363842036532054, - "total_cost": 61000000000000.0, - "unavailable_reason": null + "version": 1 }, - { - "candidate_id": "asap-explain-v1:candidate:90f26c919f5460804291fcce680f3ca6420a3819db3a450ae343c3893c07ccbd", - "logical_root_ids": [ - "asap-explain-v1:root:1939cb4294a910245ad73172f6af0b57a2c1e4973df58f02e14c73f547a05f49" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" - } - ] - }, - "planner_selection_trace": [ + "query_id": "compat-query-0", + "rationale": "query-time grouped Sum over complete per-series Rate readouts", + "stage": "planner.physical_candidate" + }, { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be34339fdb274fc15495c73fbb9ba537faf694bb4b26eeac29ae716e0cf2beb7", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Sum)" + }, + { + "guarantee": { + "bound": { + "op": "zero" }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "ExactAggregate(Rate)" }, - "failure_probability": { - "op": "zero" + { + "guarantee": { + "bound": { + "op": "zero" + }, + "failure_probability": { + "op": "zero" + }, + "metric": "absolute_value", + "provenance": [ + { + "kind": "exact", + "reason": "KeepPreAsap" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" + { + "kind": "composition_step", + "operator": { + "op": "counter_rate" }, - { - "guarantee": { - "bound": { - "op": "zero" + "rule": "exact_input" + } + ] + }, + "input_index": 0, + "kind": "child_guarantee" + }, + { + "kind": "composition_step", + "operator": { + "op": "exact_sum" + }, + "rule": "exact_input" + } + ] + }, + "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "physical_candidate": { + "materialized_outputs": { + "3": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "precompute": { + "nodes": { + "1": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" }, - "failure_probability": { - "op": "zero" + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] }, - "metric": "absolute_value", - "provenance": [ + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + }, + "2": { + "Operator": { + "inputs": [ + 1 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" ] }, - "input_index": 0, - "kind": "child_guarantee" + "name": "value", + "nullable": false }, { - "kind": "composition_step", - "operator": { - "op": "counter_rate" + "dtype": { + "Plain": "utf8" }, - "rule": "exact_input" + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:22b8f77239e6e1aab8509310ad0991c6c005e0103efb4d293f4e311409d14f6c" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" + ], + "time_index": 0 + } + ], + "kind": { + "Readout": { + "parameters": { + "logical_lookback_ms": "60000" + }, + "state": 1, + "statistic": "Rate" + } }, - { - "guarantee": { - "bound": { - "op": "zero" + "output": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false }, - "failure_probability": { - "op": "zero" + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false }, - "metric": "absolute_value", - "provenance": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + } + } + } + }, + "3": { + "Operator": { + "inputs": [ + 2 + ], + "operator": { + "inputs": [ + { + "fields": [ { - "kind": "exact", - "reason": "KeepPreAsap" + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false } - ] - }, - "input_index": 0, - "kind": "child_guarantee" + ], + "time_index": 0 + } + ], + "kind": { + "SummaryBuild": { + "family": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "groups": [ + 2 + ], + "time": 0, + "value": 1 + } }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" + } + } } + }, + "roots": [ + 3 ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "version": 1 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "query": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + }, + "roots": [ + 3 + ], + "version": 1 }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { + "version": 1 + }, "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" + "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", + "stage": "planner.physical_candidate" } ] } \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/grouped-rate.md index 55bbbbc16..5a5c3a1be 100644 --- a/docs/evaluation/issue754-human-review/grouped-rate.md +++ b/docs/evaluation/issue754-human-review/grouped-rate.md @@ -8,30 +8,51 @@ IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. -Root: `3`. +Root: `4`. ```mermaid flowchart LR N0["0: Source / time range"] N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] N2["2: FinalizeExactAccumulator"] - N3["3: Exact"] + N3["3: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] + N4["4: FinalizeExactAccumulator"] N0 --> N1 N1 --> N2 N2 --> N3 + N3 --> N4 ``` | Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | | --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Exact":{"Aggregate":{"having":null,"measures":[{"col":null,"kind":"sum"}],"output_names":[""],"reduction":{"Reduce":[2]}}}}}` | `["0: label_0/utf8","1: sum/float64"]` | +| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 2 | `[[1,"Input"]]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | +| 3 | `[[2,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | +| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: label_0/utf8","1: sum/float64"]` | ### Sort expressions No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. +## Installed native physical program + +This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. + +Roots: `[4]`. + +| Node | Dependencies | Operator / input contract | Output fields | +| --- | --- | --- | --- | +| 3 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | +| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | `["0: label_0/utf8","1: sum/float64"]` | + +```mermaid +flowchart LR + P3["3: Bound physical input"] + P4["4: Readout"] + P3 --> P4 +``` + ## Candidate admission and costing Costs below come from the controlled Level 1 fixture, not production measurements. @@ -46,22 +67,90 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `null`. +Logical root: `"asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5"`. + +Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states + +Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` + +Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` + +#### Maintenance physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | +| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | + +Roots: `[3]`. + +#### Query physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` | +| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | + +Roots: `[4]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac"`. +query-time grouped Sum over complete per-series Rate readouts +Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` -Guarantee: `null` +#### Query physical DAG -invalid DAG: ranking requires one exact per-series Rate frontier +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | +| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | + +Roots: `[4]`. + +### Planner physical candidate + +Logical root: `"asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b"`. + +Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies) + +Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` + +Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` + +#### Maintenance physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | +| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | +| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | + +Roots: `[3]`. + +#### Query physical DAG + +| Node | Dependencies | Native operator / input | +| --- | --- | --- | +| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` | + +Roots: `[3]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ec6e34299f31b0a7f44d9733258d7a4edfd2bc8e05f780ab635e8f37bd77ee90"]` | `"selected"` | `125.0` | `null` | -| 1 | `["asap-explain-v1:root:e6c97518f6007d571e505532df8ba092b0428e90ca9da32e3a85630c32497be2"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:1939cb4294a910245ad73172f6af0b57a2c1e4973df58f02e14c73f547a05f49"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | +| 0 | `["asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b"]` | `"unselected"` | `125.0` | `null` | +| 1 | `["asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5"]` | `"selected"` | `100.0` | `null` | +| 4 | `["asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac"]` | `"unselected"` | `125.0` | `null` | +| 5 | `["asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema"` | -Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json) +Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json), [grouped-rate-3](candidates/grouped-rate-3.json), [grouped-rate-4](candidates/grouped-rate-4.json) ## Persisted boundaries @@ -75,18 +164,28 @@ Binding for `compat-query-0`: }, "1": { "placement": "materialization", - "stored_output": 11966640087163441478 + "stored_output": 1361847422443465319 + }, + "2": { + "placement": "maintenance_input" + }, + "3": { + "placement": "materialization", + "stored_output": 10670331111097222824 } }, - "query_sink": 3, - "query_plan_sink": 0, + "query_sink": 4, + "query_plan_sink": 1, "precompute_sinks": [ - 1 + 1, + 3 ] } ``` -Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. +Stored output `1361847422443465319` → semantic definition `sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24`. + +Stored output `10670331111097222824` → semantic definition `sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56`. ### Maintenance configuration @@ -103,6 +202,7 @@ Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb5 "label_0" ] }, + "population_key_encoding": "canonical_labels_v1", "partitioning": "per_entity", "aggregated_labels": { "labels": [] @@ -114,14 +214,50 @@ Stored output `11966640087163441478` → semantic definition `sds-v1:528d2a7adb5 "slide_interval": 10, "window_type": "sliding", "window_layout": { - "kind": "pane", - "pane_secs": 10 + "kind": "full_window" + }, + "pane_origin_ms": 0, + "spatial_filter": "", + "spatial_filter_normalized": "", + "metric": "data", + "num_aggregates_to_retain": 1, + "table_name": null, + "value_projection": null + }, + { + "aggregation_type": "Sum", + "aggregation_sub_type": "", + "parameters": { + "promql_right_closed": true + }, + "grouping_labels": { + "labels": [] + }, + "population_key_encoding": "canonical_labels_v1", + "partitioning": "grouped", + "derived_input": { + "inputs": [ + 1361847422443465319 + ], + "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" + }, + "aggregated_labels": { + "labels": [] + }, + "rollup_labels": { + "labels": [] + }, + "window_size": 60, + "slide_interval": 10, + "window_type": "sliding", + "window_layout": { + "kind": "full_window" }, "pane_origin_ms": 0, "spatial_filter": "", "spatial_filter_normalized": "", "metric": "data", - "num_aggregates_to_retain": 7, + "num_aggregates_to_retain": 1, "table_name": null, "value_projection": null } @@ -134,47 +270,135 @@ This is the emitted adapter representation, including dependencies, pane size, r ```json { + "physical_dag": { + "nodes": { + "3": { + "Input": { + "properties": { + "boundedness": "Bounded", + "emission": "Unknown" + }, + "schema": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + }, + "4": { + "Operator": { + "inputs": [ + 3 + ], + "operator": { + "inputs": [ + { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "ExactAggregate": [ + "Sum", + "Sum" + ] + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + ], + "kind": { + "Readout": { + "parameters": {}, + "state": 1, + "statistic": "Sum" + } + }, + "output": { + "fields": [ + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "sum", + "nullable": false + } + ], + "time_index": null + } + } + } + } + }, + "roots": [ + 4 + ], + "version": 1 + }, "language": "prom_ql", "query_id": "compat-query-0", "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 0, + "root": 1, "nodes": { "0": { - "op": "logical", - "operator": { - "kind": "aggregate", - "operation": "sum", - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "exact_readout", - "input": 2, - "readout": "rate" - }, - "2": { "op": "read_materialization", "binding": { "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "stored_output_id": 10670331111097222824, + "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" }, - "materialization": 11966640087163441478, + "full_window_slide_ms": 10000, + "materialization": 10670331111097222824, "output_grouping": { - "mode": "per_entity" + "mode": "reduce", + "keys": [] }, - "window_ms": 10000, + "window_ms": 60000, "pane_origin_ms": 0, "readout_lookback_ms": 60000 } + }, + "1": { + "op": "physical", + "inputs": [ + 0 + ], + "source_nodes": [ + 3 + ], + "max_bytes": 2147483648 } }, "instant": { diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json index d9d7158f4..df3bc44a0 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -692,7 +692,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", + "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1086,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", + "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1109,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", + "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1200,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" + "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", + "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1271,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" + "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -1316,7 +1316,7 @@ "selected_manifest": { "plan_id": 398383639928265061, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2254,11 +2254,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:0853981cabc693979a6893e7879e560c59b2595d25eb99a50a9f2fc9cad647c2", + "candidate_id": "asap-explain-v1:candidate:f6fd11e41c82b8183f3d94404506a7a44f482242434d23a3ff42afb6b6cd8f71", "logical_root_ids": [ - "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8" + "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7" ], - "physical_candidate_id": "asap-explain-v1:physical:d0afe07f72e1d942ade7b650072854bca20105dcd4cc9b8dbf8ccc771964f351", + "physical_candidate_id": "asap-explain-v1:physical:6c4cb0f2eb8ac0d54fb1f95e57901f190e4b40d89b96b1d08f1f510d85b1090a", "identity_unavailable_reason": null, "status": "selected", "plan_id": 398383639928265061, @@ -2266,11 +2266,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ccaab443c49299d9f5b8de6ec5107e3744227deaf175a3e72ab085343689c099", + "candidate_id": "asap-explain-v1:candidate:8e166101c5b7e3b81d048c3744c9d425a8f358dfa9eae019de62a00da9f88fc5", "logical_root_ids": [ - "asap-explain-v1:root:76e0822b51b6b442d8f321a0bbc40d20bf34f4d426b73fae8987961e4df8cdf5" + "asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3" ], - "physical_candidate_id": "asap-explain-v1:physical:9b867204311e3bb8a6881af80bad7ab4c7edac15ab75f0de5c7f1100e668d8e1", + "physical_candidate_id": "asap-explain-v1:physical:4796571e5d404038547011ad55bb6f46da69b10f59a2a3eaf7ce1da37d3452ab", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 375190931036314940, @@ -2278,23 +2278,23 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:430276cd40d50645a499c07667e260fc91d6dd55e441c3e0bcfb48d5f7db736c", + "candidate_id": "asap-explain-v1:candidate:8c50c016194b4ec8b868f06cb97c4b22dc9015cca04575a66497b73809702553", "logical_root_ids": [ - "asap-explain-v1:root:3bccca2e3d1880ea0d44df539815b25b11872617a15fe018c045ab024a9d2f4a" + "asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f" ], "physical_candidate_id": null, "identity_unavailable_reason": null, "status": "bind_failed", "plan_id": null, "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:8e4ac1286f37c771762be8261385832e0b14958b8fb6f0f9635a411732fff298", + "candidate_id": "asap-explain-v1:candidate:aa11b64fc0bed7d4b186586f95a450ecce8786bc16025d4badcaa74702c6dbb7", "logical_root_ids": [ - "asap-explain-v1:root:2dd96824c844e931a34bf6f653f2e27b26915a05365963aa4fe03ee31ab35267" + "asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f" ], - "physical_candidate_id": "asap-explain-v1:physical:3bf7db2e1b1e69ff56c6678e26c39229c15e25f674ab994056c8e8c51a4edb57", + "physical_candidate_id": "asap-explain-v1:physical:9c92585937a8293993dd8f50b79fa15c76b40ff754dbe417504d6e9a8a63a185", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3225737927651639557, @@ -2308,7 +2308,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], @@ -2324,7 +2324,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:40531773b991a968c0e005672192bdec4f44e0e91b85a4de9fcb89ea0fca6109", + "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2387,7 +2387,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01091344eb1c7f06c75874c30d9ab66da8ed4859f3204ee7f02adfbf99145679", + "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2410,7 +2410,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:aeddfc921a52505c14327e8e0543e80d65fb8aee6e759c673e0fa64c693b8675", + "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2501,13 +2501,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f200038b595f9d68004029f98e485d5ec4d3d9967de41915932d407a7233ca61" + "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:6977b28e15048fd55d7b522c7fe4436caff6c2a6f4d1344dec7c9e14a8ebeb6e", + "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2572,26 +2572,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5df7629b9d17cad814eaef882bb78dda45f5ef0be619fef832d7a45bf0ab5453" + "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8", + "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md index be94ab8be..b19ff8315 100644 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md +++ b/docs/evaluation/issue754-human-review/grouped-temporal-sum.md @@ -61,10 +61,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:8492ff42f5224c3239a07010f49880c0a97804c0cb921389030caf247feafdd8"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:76e0822b51b6b442d8f321a0bbc40d20bf34f4d426b73fae8987961e4df8cdf5"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:3bccca2e3d1880ea0d44df539815b25b11872617a15fe018c045ab024a9d2f4a"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:2dd96824c844e931a34bf6f653f2e27b26915a05365963aa4fe03ee31ab35267"]` | `"unselected"` | `125.0` | `null` | +| 0 | `["asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | +| 3 | `["asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f"]` | `"unselected"` | `125.0` | `null` | Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/quantile-ratio.json index 5d75ec86a..a32289daf 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.json +++ b/docs/evaluation/issue754-human-review/quantile-ratio.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1490,7 +1490,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -1506,7 +1506,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", + "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1697,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" + "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1792,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", + "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1901,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" + "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -1934,7 +1934,7 @@ "selected_manifest": { "plan_id": 14871479243635342203, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2920,11 +2920,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:eab0bd8e22438c18d1280d1d460d8e8c5471f15139f3224c6a997c9a6dab546f", + "candidate_id": "asap-explain-v1:candidate:c08f9149edabd1c321f061675315136e6579e3b47bbc64dd3d499981a0bfef5a", "logical_root_ids": [ - "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2" + "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2" ], - "physical_candidate_id": "asap-explain-v1:physical:9803bb28dc85804436828690973880e21982e88b657b775d6577447b33ba2b8a", + "physical_candidate_id": "asap-explain-v1:physical:6b7a0e6306e75f8ce5cc3345ad7bc065f90be002025e618b555765fa79f334ba", "identity_unavailable_reason": null, "status": "selected", "plan_id": 14871479243635342203, @@ -2932,11 +2932,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:0c4460c5d392b04e0b401219ca0008b40e345aab93e42f2859719c271ea522f1", + "candidate_id": "asap-explain-v1:candidate:0a10a2802dd2a1ba4e225c9ccd4a516371a85cad8986b21ce1b69169ed07acc7", "logical_root_ids": [ - "asap-explain-v1:root:f449b879c1309ad29867d455b6e488c0616fa126fc4f24b6c620ce33946d6a7f" + "asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0" ], - "physical_candidate_id": "asap-explain-v1:physical:ed9fbdf49266e9fc8a75e2d87fce09976c96c59d3ad1a94b743956e7ccf02b21", + "physical_candidate_id": "asap-explain-v1:physical:7bc14aea270b4e313ea33ac62e1c248aed293f35dd0642078ff51c08715acb48", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5752356276213301876, @@ -2944,11 +2944,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:f175d7852c18ff5fc1fdf05c824a42313866ae4702c221ec1212303acf59a9ee", + "candidate_id": "asap-explain-v1:candidate:bf7668c327a794ae092a59a4193fa742387270c081279428090a8afcaf261eb1", "logical_root_ids": [ - "asap-explain-v1:root:4a3c1395d360b821426b27218cd5d53be87544d0fb93060fb25f548a56ea3fd0" + "asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d" ], - "physical_candidate_id": "asap-explain-v1:physical:3f5a99c36308c22d7ddf69fee8058b6d7bffcc0cc3f5a51e447f4e9e271fe19a", + "physical_candidate_id": "asap-explain-v1:physical:bf4e9fe54a95b98c580e951c3ba57cffc5ee30a6a59fc0b4cd54ef89aba8bbff", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 12971657221408630864, @@ -2969,7 +2969,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], @@ -2985,7 +2985,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b8d70af3c9ec690017e081999b8853bed8f5d2f39e7f1b3ae8e88e4f49f42c6", + "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3176,13 +3176,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bee64680ca4a1d0fc3d31388d0bad65e7ed61280abca50952252fcc9f0358fa8" + "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3271,27 +3271,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:de75050142e5e75240a8808c33c2b80b7d1bddc0884069f280332e46008c5409", + "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -3380,26 +3380,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:f71a98d81456d511db8d34c8385e1708878d3b1339206bc9f19f5e1295c89513" + "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2", + "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/quantile-ratio.md index 3ce7013e9..b33cd155e 100644 --- a/docs/evaluation/issue754-human-review/quantile-ratio.md +++ b/docs/evaluation/issue754-human-review/quantile-ratio.md @@ -53,9 +53,9 @@ Costs below come from the controlled Level 1 fixture, not production measurement | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:a38e7fc6350398ff19099337079a171761a5aaf24eaac1195dea8bda054fcde2"]` | `"selected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:f449b879c1309ad29867d455b6e488c0616fa126fc4f24b6c620ce33946d6a7f"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:4a3c1395d360b821426b27218cd5d53be87544d0fb93060fb25f548a56ea3fd0"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2"]` | `"selected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 5720f1be9..4ee3c5cb8 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -8a86bc64b181d1195dd1ef924df080396f30df49 +cb2034d3cecf0f817a6b77093079158e4c07833b diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/spatial-quantile.json index dc107e9d9..d780989ec 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.json +++ b/docs/evaluation/issue754-human-review/spatial-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -238,7 +238,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -715,7 +715,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1161,7 +1161,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -1177,7 +1177,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,26 +1266,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -1311,7 +1311,7 @@ "selected_manifest": { "plan_id": 3294188734724225991, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2337,11 +2337,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:40aecbfb2ab9b6f220bf9a53bdd9a9fa0088d4ad4e75eaf3403028e94d635181", + "candidate_id": "asap-explain-v1:candidate:4354fd26d4956a318fa5456240c0da68a3caa45e4446b8e15f181d0c53783468", "logical_root_ids": [ - "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4" + "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d" ], - "physical_candidate_id": "asap-explain-v1:physical:ac1f2e2c222564ba3816318f785d1836e43d4c52ca81991be4aa30adc18c5b3b", + "physical_candidate_id": "asap-explain-v1:physical:71de817eaf6fa746062e3795a419ee775e9d31a0d510bc74bb22c81d7c5ec288", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3294188734724225991, @@ -2349,11 +2349,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2b94dbf9f2c7411723006b5f796f5bc05a5796d561b262d32832639023f5be5f", + "candidate_id": "asap-explain-v1:candidate:a0788f2335f317159241018e38b349e300d94233d6c2c372e1115a7669eb8098", "logical_root_ids": [ - "asap-explain-v1:root:fdc5765bbea5934ae76918026af6744247af5577d409929e2c98dd404f6ebfd2" + "asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8" ], - "physical_candidate_id": "asap-explain-v1:physical:01fe86a15a561ff6906ca8d487a435e084021748a9eb3585201d9bd7e8fb7b45", + "physical_candidate_id": "asap-explain-v1:physical:ba4202b91ce58b3c19e40be364dc5f551ac35862068d5e52ddd6177d0dea74e4", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14256379658571227787, @@ -2361,11 +2361,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:924f805194dba70f16bf010520e06d2a887b88dd80f1534db52caa02b65e7ef6", + "candidate_id": "asap-explain-v1:candidate:64858a2c738280483704598eea5dc6c1d6f302f7b7089c09991f308fbf37982d", "logical_root_ids": [ - "asap-explain-v1:root:43570daeecc8ec03cfadf2d750ccf989d7c51676138da42023e30beff487c1c7" + "asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c" ], - "physical_candidate_id": "asap-explain-v1:physical:85b84d329b96039a88c4692f5d151a67aa9ba00e9de0c7227c9c1a7454a420c8", + "physical_candidate_id": "asap-explain-v1:physical:e8ab81814c4b32ad300e454b3a80c4946026cf18020174eb6660a3bd98942d23", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 18366075381595067177, @@ -2373,11 +2373,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:1b1ad04b9e89b1b07f56e2bbf32dcce7c197e55a385998a0fdf24769b96d982d", + "candidate_id": "asap-explain-v1:candidate:79e9835d8db3988d68f3423675cd87e9773a6609f8147d9878c7debd76e10730", "logical_root_ids": [ - "asap-explain-v1:root:5c12a51b870ab023f064467eb937d9993963b1a2677dad61416430ed47b76d65" + "asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae" ], - "physical_candidate_id": "asap-explain-v1:physical:a667ca48b11e0e4059f7d8ed5f605ec1250c9bc5218707f17eea096b9965b7d6", + "physical_candidate_id": "asap-explain-v1:physical:6af3b1dafd992795fc98fc2164bc74cc8c112b69e611605d0a2e16f2f866821a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 7667691247138405742, @@ -2391,7 +2391,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], @@ -2407,7 +2407,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1b2249b25a4fec933166b220dea1c6d5a4cc9eeda098402610177dc1b0e01e7b", + "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2496,26 +2496,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:3660b47b87b931812186b114951f77e1c95762c3f5dbadd90cddc51754bebecb" + "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4", + "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/spatial-quantile.md index 2cb2c651e..4192f7148 100644 --- a/docs/evaluation/issue754-human-review/spatial-quantile.md +++ b/docs/evaluation/issue754-human-review/spatial-quantile.md @@ -65,10 +65,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:34a87c1e2d6f70cf66361c677b502618861b44cdc8455cee061e93e6e07f94d4"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:fdc5765bbea5934ae76918026af6744247af5577d409929e2c98dd404f6ebfd2"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:43570daeecc8ec03cfadf2d750ccf989d7c51676138da42023e30beff487c1c7"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:5c12a51b870ab023f064467eb937d9993963b1a2677dad61416430ed47b76d65"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/spatial-sum.json index cdc01f881..19b0e94ae 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.json +++ b/docs/evaluation/issue754-human-review/spatial-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -212,7 +212,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -691,7 +691,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1007,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -1023,7 +1023,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1088,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -1127,7 +1127,7 @@ "selected_manifest": { "plan_id": 3688256239081920855, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2062,11 +2062,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:90eaa0256069be89f048b65ce085ab5ec842871dc11e8d925298800c3132ae28", + "candidate_id": "asap-explain-v1:candidate:9f815fefaf3981f4626c4f0bbecd6a2ff80ceb9c07c3f31a4fe791a78aeac63f", "logical_root_ids": [ - "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68" + "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65" ], - "physical_candidate_id": "asap-explain-v1:physical:6c581477ef9a33b0424b3b37b2befbf7842f2b72ecebff5d960899bb5898e60a", + "physical_candidate_id": "asap-explain-v1:physical:bc367137ad7802cdcb2d9aa085481d742813ccf81cd4af1b9fdf262f2111c1bd", "identity_unavailable_reason": null, "status": "selected", "plan_id": 3688256239081920855, @@ -2074,11 +2074,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:d2c74d478edd8167075117f0339da730d46d1490adaa6779a92201afeb09b9e3", + "candidate_id": "asap-explain-v1:candidate:2e6c1b7b89ff83cf7818176a987df5c3473ae40083b34ae02c576c026048b258", "logical_root_ids": [ - "asap-explain-v1:root:19a9f2c7e270097f72fd82ea90b8a1baefc2a54b3cb8ff566e01a9bd2b857e8c" + "asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52" ], - "physical_candidate_id": "asap-explain-v1:physical:1ddb6f80f462cf94edd1d35548254a979998d84b36287ff0c65ca1f99e49d3eb", + "physical_candidate_id": "asap-explain-v1:physical:9738b844b88e5904d4aeb45407b68ca73b3cc8bae476c4cbe949fa1c71a8b214", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17875413431231421451, @@ -2086,11 +2086,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:59e4838ae5478156304e8e1d89973f6f924f6ef53f774750ffcd7267e4358a64", + "candidate_id": "asap-explain-v1:candidate:30684f35a6589915d271235aacbb45ab7d63de02b0a84a6d9cb4a7fb74960d3b", "logical_root_ids": [ - "asap-explain-v1:root:1e1d66f44d82fe1bacd1349202d41469f901c182c7aa739c49d2aaea64a26950" + "asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa" ], - "physical_candidate_id": "asap-explain-v1:physical:e9206ffc1c3025f96e9365f5f71290cf6cbd622bf07c9b4a30a5a431d94f3d54", + "physical_candidate_id": "asap-explain-v1:physical:30b0e7dc2668e9607661dc69059e5240fade30d21c94ae7f7cce62a7cf3e73a9", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 8064649510529993241, @@ -2098,11 +2098,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:0da4d516bc886b446d5a61049cb7acda6fb7f889865dfd9b3653a250a5f44605", + "candidate_id": "asap-explain-v1:candidate:2117947b4b3a330ebea6931c1a77e5a85cfb928d4d26c61496ae4d76f29ecf82", "logical_root_ids": [ - "asap-explain-v1:root:09a98cbf293139fa8c7db7876752cf5cee5c30c8b367d8b3eeb7bb8aded3178c" + "asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814" ], - "physical_candidate_id": "asap-explain-v1:physical:8982991e6cb3b946f1bb8ddcac9be55f49ccec1d6e57d776a835e19bd9c3b977", + "physical_candidate_id": "asap-explain-v1:physical:ffba38d6fe0ca3626b208d737d922e9a54dca183e0960d27e1281a8a9c025956", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 10907830462850005469, @@ -2116,7 +2116,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], @@ -2132,7 +2132,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:d0a75bf21c34ab4237ab176a72074deb617845ada453bbaf98d4209b00559226", + "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2197,26 +2197,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:1343f26cec5fec7ec9bf9593a296754f5fb62781d05f31de440e260408505e47" + "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68", + "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/spatial-sum.md index c105f5f62..0db024a69 100644 --- a/docs/evaluation/issue754-human-review/spatial-sum.md +++ b/docs/evaluation/issue754-human-review/spatial-sum.md @@ -51,10 +51,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:f1f01292c4567698a8e8acac6a2147aad3e20999d9e0a3cdac57e86ebea99e68"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:19a9f2c7e270097f72fd82ea90b8a1baefc2a54b3cb8ff566e01a9bd2b857e8c"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:1e1d66f44d82fe1bacd1349202d41469f901c182c7aa739c49d2aaea64a26950"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:09a98cbf293139fa8c7db7876752cf5cee5c30c8b367d8b3eeb7bb8aded3178c"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa"]` | `"unselected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/spatial-topk.json index 9a56e8b11..0f0008779 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.json +++ b/docs/evaluation/issue754-human-review/spatial-topk.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -33,7 +33,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -62,7 +62,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +667,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -684,33 +684,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" + "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" + "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -813,7 +813,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", + "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", "physical_dag": { "nodes": { "1": { @@ -1487,7 +1487,7 @@ "selected_manifest": { "plan_id": 2697027346875258477, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1911,23 +1911,23 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:c6c69ea9e472f04e62ea247e6451b21688d88bb71b28b76c482321916faee131", + "candidate_id": "asap-explain-v1:candidate:58f399bf628c33f5ba9a72648f9ed2f3f2e75b1181b9b86d9e7f08849b29e18a", "logical_root_ids": [ - "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73" + "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92" ], "physical_candidate_id": null, "identity_unavailable_reason": null, "status": "bind_failed", "plan_id": null, "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree" + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:159578787f40b0c8fc188dd27b8381ae071190473227037131c57f1573dc6dcf", + "candidate_id": "asap-explain-v1:candidate:3c32fbddf25395e4edf1a48a31b8a868fedf3e054c229e5fdd72a445ecd42d44", "logical_root_ids": [ - "asap-explain-v1:root:e13e67835975ec59bb3fdbe296544ae7da37f949b359f5deaa7103b77ac9c2f1" + "asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1" ], - "physical_candidate_id": "asap-explain-v1:physical:3a158a8a172733867b8dad276832d3bb7abc090376ee15570649c4929c82e580", + "physical_candidate_id": "asap-explain-v1:physical:e59f1ec5404fa5bd4069c09b838f0ff74fcc6fde2b974a23ea1f07329d95a506", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5538412219857372274, @@ -1935,11 +1935,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:30da9f804e451c90e39a0d53aae1e5a769c8e4e5501ec40f1bb09b39eb4e6098", + "candidate_id": "asap-explain-v1:candidate:30835e38582d2361630291255e8e16465befbd5a7f72bfeed329b9cab4370fc7", "logical_root_ids": [ - "asap-explain-v1:root:01d98a8e246904cf0d42a2404bae63f7818f902759c57e16e178802f080b9ec3" + "asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a" ], - "physical_candidate_id": "asap-explain-v1:physical:d1b62b06e3393f38fe71c9b35ed83928612f48fc0aaf47108738cd553f5f3487", + "physical_candidate_id": "asap-explain-v1:physical:8391c4c488d5971b67801884e3af9bb4fb08c46da45d61904ae12b086847ad02", "identity_unavailable_reason": null, "status": "selected", "plan_id": 2697027346875258477, @@ -1947,9 +1947,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:69ca67db898f626eee06c83dbede403369e8a827d193eb747631a2f04e96750f", + "candidate_id": "asap-explain-v1:candidate:f970bcdb71bd853b66e897020a61d0e4e822d3a61e818549c903c3974ddc7f78", "logical_root_ids": [ - "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208" + "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -1965,7 +1965,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -1982,33 +1982,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:a30eae282bfe201d194b6c3e8f0f3035eb586b32b2e6b3f9663d292d54d9c0e5" + "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:b4b174392910c9fcad1f31dd7ba7387cb5cceafb9a55a3635ce921a0d3c781b2" + "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:8a08085749d415ab4493f203c07f294152255df3b4e73491ad3941e27aa9b343" + "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73", + "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", "query_index": 0 } ], @@ -2111,7 +2111,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208", + "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/spatial-topk.md index 15582e8cf..d8065144b 100644 --- a/docs/evaluation/issue754-human-review/spatial-topk.md +++ b/docs/evaluation/issue754-human-review/spatial-topk.md @@ -64,7 +64,7 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208"`. +Logical root: `"asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) @@ -86,10 +86,10 @@ Roots: `[6]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ac0ac7d5f573754e55e5f37a75d60ace6d3a74eeb081ce85a7dc96334ca31d73"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner residual does not match any original query subtree"` | -| 1 | `["asap-explain-v1:root:e13e67835975ec59bb3fdbe296544ae7da37f949b359f5deaa7103b77ac9c2f1"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:01d98a8e246904cf0d42a2404bae63f7818f902759c57e16e178802f080b9ec3"]` | `"selected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:cd34fea63097fb2fcf8b219ec4be8de476ce61574e8a06ee40d888613116f208"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 0 | `["asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | +| 1 | `["asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a"]` | `"selected"` | `130.0` | `null` | +| 3 | `["asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/temporal-quantile.json index 31a4a7a01..b319febc7 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.json +++ b/docs/evaluation/issue754-human-review/temporal-quantile.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -219,7 +219,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -652,7 +652,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1070,7 +1070,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -1086,7 +1086,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,26 +1175,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -1220,7 +1220,7 @@ "selected_manifest": { "plan_id": 11818444224054941250, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -2162,11 +2162,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:053daa0e4d24257cfb718bdf0c27a9249cb9f59344a4b1b157551ab7b269cc72", + "candidate_id": "asap-explain-v1:candidate:c0821021fb0f0ede52cc359b062a25b521f59529c0b01d3045450e51f843bde9", "logical_root_ids": [ - "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb" + "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265" ], - "physical_candidate_id": "asap-explain-v1:physical:44712cb6b70ff176a421c34408994f1a3961fec7f9751617644291508ab32a09", + "physical_candidate_id": "asap-explain-v1:physical:06abad4563c1f00189e8f718354c7bf380a2bf216c2c64e19eeea9dae227fff5", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11818444224054941250, @@ -2174,11 +2174,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:fc9d456e5ebaa59e4773160a712d6547f4999fb8b7f7e007b13be56ae812fd9c", + "candidate_id": "asap-explain-v1:candidate:625dc2ecb160daea9220f3c11ad598a06b50664ef7bc9790d442644a1f9a94e6", "logical_root_ids": [ - "asap-explain-v1:root:392bbc491e7a16723958fb2179b6fae06732ae0f42a062a6b6e5b1b9c71dca3c" + "asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4" ], - "physical_candidate_id": "asap-explain-v1:physical:794019f1b24d807402d1bed28e28c4f94c58be0f0530b4efa2884804d3345ddb", + "physical_candidate_id": "asap-explain-v1:physical:ae3c88d23a919c5e1c0d2a743822ed3338945c29a827849ada3bd37c3ebc182d", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4754089690189431057, @@ -2186,11 +2186,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:86a1f55e97b44aad33763105ccbe355a40a1937db730d365d535ad3aa14f5d8e", + "candidate_id": "asap-explain-v1:candidate:985b7f5c84ddcdf36ce558a4da7e86d7e4511ddcdcb470dba23ae48759cb0317", "logical_root_ids": [ - "asap-explain-v1:root:f14c62ab20494a5075946fed95fd263e2c110d49a8e0b72f27cc08238603fb6b" + "asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b" ], - "physical_candidate_id": "asap-explain-v1:physical:aab464493d8a0b4fdb439bca0036d70cc805b93cf27159bc9f541476ef2c3784", + "physical_candidate_id": "asap-explain-v1:physical:d0c2addd51491030e110e2534c0cb0fe7ce47b67a72e0faf17cfdb7edb0371d2", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 11545774673163874085, @@ -2204,7 +2204,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], @@ -2220,7 +2220,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:21cc40b59e2e661844d9b564d64cddb59c2812c299abe245f15dba1146c9f073", + "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2309,26 +2309,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:7e4a5bcda33002793b251b1f206d59257783e9716a94bcf420c22fbb13c2fdc8" + "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb", + "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/temporal-quantile.md index 4c33170d2..889c6465a 100644 --- a/docs/evaluation/issue754-human-review/temporal-quantile.md +++ b/docs/evaluation/issue754-human-review/temporal-quantile.md @@ -65,9 +65,9 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:6219775e8046a4b30bd0f2d13d52bd99f992801282b1c1ac7f41965b9822b2bb"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:392bbc491e7a16723958fb2179b6fae06732ae0f42a062a6b6e5b1b9c71dca3c"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:f14c62ab20494a5075946fed95fd263e2c110d49a8e0b72f27cc08238603fb6b"]` | `"unselected"` | `61000000000000.0` | `null` | +| 0 | `["asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b"]` | `"unselected"` | `61000000000000.0` | `null` | Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/temporal-rate.json index 046819af6..cd636fcaf 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.json +++ b/docs/evaluation/issue754-human-review/temporal-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -195,7 +195,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -630,7 +630,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -918,7 +918,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -934,7 +934,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +999,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -1043,7 +1043,7 @@ "selected_manifest": { "plan_id": 1350462962080375017, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1894,11 +1894,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:cdee4c2ffc0d74731acb81630de7e4a90a9ee983c1712739ee25bc7e77956132", + "candidate_id": "asap-explain-v1:candidate:58095076fcd25aa06dd6b1139c2d666f7f864d1c2cfa8da7a68c4336146dbce0", "logical_root_ids": [ - "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8" + "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" ], - "physical_candidate_id": "asap-explain-v1:physical:6f98dad97c5f8ab755a4631db6277a89999d9610c7863468500b3c4b215f3122", + "physical_candidate_id": "asap-explain-v1:physical:3abdcddbce0076bb0f960bdbbadb2d764cc1637f37f928dfe344b3606bdc89eb", "identity_unavailable_reason": null, "status": "selected", "plan_id": 1350462962080375017, @@ -1906,11 +1906,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:040c641b55a413965656d4a03aac27f5bd16e2e04b82c508b62c375dd77f9458", + "candidate_id": "asap-explain-v1:candidate:a807d3c844faa560c71a0ffcc409b8b56f953736f833f12c8ccce423de372bde", "logical_root_ids": [ - "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8" + "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" ], - "physical_candidate_id": "asap-explain-v1:physical:1b1c24a4690dae6380e66942e40854a314be6fbbbde71c2d890d7fe16aa7af3f", + "physical_candidate_id": "asap-explain-v1:physical:f10d832145869c1a1691c81c5a14cb67e10fb2c442ee46e9cd19b1915404c570", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 4863426083951867157, @@ -1918,11 +1918,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:e7772fd741fa25b32b490edc92e91572f0ecba96095549fc2374541e160d07d4", + "candidate_id": "asap-explain-v1:candidate:3dd7c380b3c0085f43c8482bbf72ac2f4b4caa6f1a98c7470acad94b82e2e2d8", "logical_root_ids": [ - "asap-explain-v1:root:2370ffb672196b669dc683e13edf8081fa2bc0fb4d4c3a93522cbb033451b2f6" + "asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1" ], - "physical_candidate_id": "asap-explain-v1:physical:c6db13e3364bbe9a545e8c00432188593811e099970f48d54808cc7d0ebd6342", + "physical_candidate_id": "asap-explain-v1:physical:f2b4e5a7eb528da59a178559563506669184b715bc73b4ac9ed74a1fc77ff22f", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 27061497774794526, @@ -1930,11 +1930,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:bde591a40ecaa927aab912755783b27967035f4f26cd1b196e4a5b4615252c87", + "candidate_id": "asap-explain-v1:candidate:3fdaf973b5b17f03c0026ce43a74a141e46d0a0502365b420b3336eb05ccb1b7", "logical_root_ids": [ - "asap-explain-v1:root:4c792db77f857334ba4ba5ba86565232cabb6e016ba07bb5842a4ecc12d67cff" + "asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a" ], - "physical_candidate_id": "asap-explain-v1:physical:37d8b62eae055aeebc1df20151dd97160226405b3aa358320a989daf4452b0bf", + "physical_candidate_id": "asap-explain-v1:physical:25e28dfdbf455e1affaccc38531735cba8054b29b8a824ae77c79fdb0ca70e67", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3235857638904289352, @@ -1948,7 +1948,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], @@ -1964,7 +1964,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:639b8fdfdef85a486e9a845dd56fa4ea631b285df510a48cc6fb4c2d8a7eb2ce", + "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2029,26 +2029,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0e7f7f7b717958d7b496782e5ed00b189405b81664dae0413d94fa5b0de1f727" + "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8", + "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/temporal-rate.md index efd1e2f5c..bbec14133 100644 --- a/docs/evaluation/issue754-human-review/temporal-rate.md +++ b/docs/evaluation/issue754-human-review/temporal-rate.md @@ -51,10 +51,10 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:74bd2333267f67f563cab8f0dc301cac6de81a6385b39d57a9fb6efe197238b8"]` | `"unselected"` | `122.0` | `null` | -| 2 | `["asap-explain-v1:root:2370ffb672196b669dc683e13edf8081fa2bc0fb4d4c3a93522cbb033451b2f6"]` | `"unselected"` | `61000000000000.0` | `null` | -| 3 | `["asap-explain-v1:root:4c792db77f857334ba4ba5ba86565232cabb6e016ba07bb5842a4ecc12d67cff"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9"]` | `"unselected"` | `122.0` | `null` | +| 2 | `["asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1"]` | `"unselected"` | `61000000000000.0` | `null` | +| 3 | `["asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/temporal-sum.json index b13807117..3caf0e925 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.json +++ b/docs/evaluation/issue754-human-review/temporal-sum.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -193,7 +193,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -628,7 +628,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -916,7 +916,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -932,7 +932,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", + "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +997,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" + "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -1036,7 +1036,7 @@ "selected_manifest": { "plan_id": 17891999753521262724, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -1887,11 +1887,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:1455e3389d65988b9de009084729b5dce59c62d6e4f26b1b2e04a288672b8b1e", + "candidate_id": "asap-explain-v1:candidate:3bee11ead3773ff58e41f9007d248c7134c04ce29d4a4bdef1f3a9050537560d", "logical_root_ids": [ - "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581" + "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2" ], - "physical_candidate_id": "asap-explain-v1:physical:abbe1e177cb3c21fd26951935904930e1454aab7966630b43969b066631585f6", + "physical_candidate_id": "asap-explain-v1:physical:35be3a29d59d5ffe624cb7776f222b0ca5e6083d12e5c40fd0c1aabe3daa577e", "identity_unavailable_reason": null, "status": "selected", "plan_id": 17891999753521262724, @@ -1899,11 +1899,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ea843f6a749e8d16d818ac67c3a73f67077aa0378d9b1dab038a6df6286618de", + "candidate_id": "asap-explain-v1:candidate:a594d656c22382d2710527de66ad2f53f26f0f1b53b31c5979da81a762fc7ebe", "logical_root_ids": [ - "asap-explain-v1:root:d6e15336f36165f41482088baaef5db2f506c2480475123bb957147fef874b55" + "asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163" ], - "physical_candidate_id": "asap-explain-v1:physical:d5bf257adac0472b623c22b951fdc7f733bb7ce4e61395128c3def98ec1d6ed2", + "physical_candidate_id": "asap-explain-v1:physical:9c11f7ce82300d270e53a249926c3a924c9225d7a353b048772ba83672eb45d4", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 3167846180279825593, @@ -1911,11 +1911,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:d77343109ec73f2326a86d2de3dff8d305a5038c9a09c915c9b19962ee28d497", + "candidate_id": "asap-explain-v1:candidate:51a3c044f756b1a55a9a392a05448bc602fe03cc0bb08e739654033903cb2a80", "logical_root_ids": [ - "asap-explain-v1:root:26fce6652ab9c20e139e09ffdb44329147162d73026db521ae5920e70b2c62bb" + "asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173" ], - "physical_candidate_id": "asap-explain-v1:physical:5d155704b6d98b2207511ed43c08b70d174a224346d9abb4ad44e44cb9f77fa4", + "physical_candidate_id": "asap-explain-v1:physical:ebb74e79b04e6981663aac695ef814ebd80b6f5a2345b97b3be43019fa11ce05", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 17637043547591721229, @@ -1929,7 +1929,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], @@ -1945,7 +1945,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e8871c39c227e96096d51f88f89d7b61785e05f1fcf9fc6f4eceb47851b70acc", + "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2010,26 +2010,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:7f0171fe9f086c79d529c526823a8fc36ecc6d56501aa8f71df80b12f21401c7" + "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:d1e4c432ccc1ceaaccec4e05838b43789a659ff7f1ec8b5439b2fec816d7eaa0" + "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:970cfdd60f7a1294f5851e3dcee628c3fccd81c5631ea54a178d2dea5cc63341" + "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581", + "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/temporal-sum.md index c062922d5..58522439f 100644 --- a/docs/evaluation/issue754-human-review/temporal-sum.md +++ b/docs/evaluation/issue754-human-review/temporal-sum.md @@ -51,9 +51,9 @@ invalid DAG: ranking requires one exact per-series Rate frontier | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:8985a364ebdf9cb15ffaa3ab7a9bd23ba39b3afebccb86ae25f43a5f326c5581"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:d6e15336f36165f41482088baaef5db2f506c2480475123bb957147fef874b55"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:26fce6652ab9c20e139e09ffdb44329147162d73026db521ae5920e70b2c62bb"]` | `"unselected"` | `122.0` | `null` | +| 0 | `["asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2"]` | `"selected"` | `95.0` | `null` | +| 1 | `["asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173"]` | `"unselected"` | `122.0` | `null` | Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/topk-rate.json index e162ec36e..f2ab82bf6 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.json +++ b/docs/evaluation/issue754-human-review/topk-rate.json @@ -6,7 +6,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { @@ -237,7 +237,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { @@ -770,7 +770,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1761,7 +1761,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -1777,7 +1777,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1842,13 +1842,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1913,26 +1913,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -2035,7 +2035,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -2981,7 +2981,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -3872,7 +3872,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -4200,7 +4200,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -4963,7 +4963,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { @@ -5637,7 +5637,7 @@ "selected_manifest": { "plan_id": 11938117179177087264, "plan_version": 1, - "planner_revision": "574bef34c3792c9ebc76773eeff159ffd14194fd", + "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", "capability_snapshot_id": "asapquery-local-v1", "backend_compat": "asap-query-backend.v1", "horizon_seconds": 300.0, @@ -7363,11 +7363,11 @@ }, "candidates": [ { - "candidate_id": "asap-explain-v1:candidate:ecbf8e5dbd15471e5af3550cc062de715f4b154babb1a34bf952e9dfe0ff3ef4", + "candidate_id": "asap-explain-v1:candidate:a327bc875dc0442d14ff542121c4dbae359d13824d2f1e05cf7a14d8d7a6c931", "logical_root_ids": [ - "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac" + "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b" ], - "physical_candidate_id": "asap-explain-v1:physical:0dc32ebc5d9a6ce294acbdeae33b5b2e257d526b458c076601b6b31b6d61a9b1", + "physical_candidate_id": "asap-explain-v1:physical:37dec2c54420e8acdb1f6b425d0abba0cda66ef485eaa1e7a01b8d7011dd5066", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 14733843382488271694, @@ -7375,11 +7375,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2016611f1f210d751c0a1440f293308cc559e701c1c4e0e96a1024eca1b83cc8", + "candidate_id": "asap-explain-v1:candidate:b9e7353b08881f81af8934010b159498e31e7842ec5a3a2a672c5b1f41837dab", "logical_root_ids": [ - "asap-explain-v1:root:deece59c58a71ff7517b2846500eda002e6a31ae4e7a3cf99c54029c25cffb53" + "asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb" ], - "physical_candidate_id": "asap-explain-v1:physical:c8fbe82aa2e5548ccb09882f9d5c9ce0942c532330907d287d8c304a971e51c2", + "physical_candidate_id": "asap-explain-v1:physical:7d7f051f253b853bd6a092b38e1ea274fda9465ab7540f0bc06a7af618282e8a", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 15833270860732361489, @@ -7387,11 +7387,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:0f8517086e45ecfdcaadac97c09b437a006c256b265d41c7a55f904b5b3b658b", + "candidate_id": "asap-explain-v1:candidate:60a26ce929f7e27340ebd8555bba5b691e41eb0d57d6a730d69735baa6720476", "logical_root_ids": [ - "asap-explain-v1:root:7b07535373f722165f9d399a6ded1bd2f6b76440fd2d21bf9c1f1d636c373c02" + "asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec" ], - "physical_candidate_id": "asap-explain-v1:physical:677be0da0f7eb4405f0f24b3c80bcc82204174991a9a3f68557f5d923992d320", + "physical_candidate_id": "asap-explain-v1:physical:6ec1a661f1ddc81ab2b7c771ed6ec852332aefc8d3e7827a3551c88dda52598f", "identity_unavailable_reason": null, "status": "unselected", "plan_id": 5379663311087285901, @@ -7399,9 +7399,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:ec051ec605076ff1d24a6042af36fa91952d90f21de4d50d39659a7e78543157", + "candidate_id": "asap-explain-v1:candidate:1660105b2e06cd9a9f498679cb2179aab28d2d3a674d3990e76e80cc0450694d", "logical_root_ids": [ - "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe" + "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -7411,9 +7411,9 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:41c81448b55b9d9af30f945211b924df6531143777ea960272e93d9179017da4", + "candidate_id": "asap-explain-v1:candidate:a6ddc5cbfd0d2f2b509df334546e3e21f276ac4a1e1e54ab15d3b919e088bf3c", "logical_root_ids": [ - "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc" + "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -7423,11 +7423,11 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:bfa2a8b17a9a6b9a0ffe24b21913d353a72fe557e88dcbbba99218ab357d5384", + "candidate_id": "asap-explain-v1:candidate:601ebe163e70ba24555540e00da90a72d682308b06cc53215f610dd6412a52c5", "logical_root_ids": [ - "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b" + "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65" ], - "physical_candidate_id": "asap-explain-v1:physical:101fbcb4ccb7ec6fe3bedc2e1f0b5a02ae0cbe059c1d2175e821ee22245d70e3", + "physical_candidate_id": "asap-explain-v1:physical:c4f2aa987a95e97b99f6f5089af4b78f0f4d4c8d28f121321398c738c3f125ce", "identity_unavailable_reason": null, "status": "selected", "plan_id": 11938117179177087264, @@ -7435,9 +7435,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:217564c5d2cc9e00d116e23184562d287d1053c9e6e01cbdf746c2afbba9ddba", + "candidate_id": "asap-explain-v1:candidate:17dca7f80f586da96d29b00d6655e70cb4e3a253938d65efd838318e9f425a08", "logical_root_ids": [ - "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b" + "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -7447,9 +7447,9 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:10cd81963760e836145385c7077c49743f2b292e906f5c8be3995d1ec1cc28d8", + "candidate_id": "asap-explain-v1:candidate:0658ec7508f74f5c5ad81379a01ac60dff7cd5adcd52e589a6c35b51bad75dce", "logical_root_ids": [ - "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9" + "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -7465,7 +7465,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -7481,7 +7481,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f2d230b0c8c5e528985bcef9f7f6c795030459b42b20388072f9e8be05bfc922", + "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -7546,13 +7546,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:d55abefa000d4bb7c8ae228af614d82cbff1a1363c02b58f0006bdb8467e63c1" + "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:227dd6f61d0d560eb2f852b591fd57c6ba82c405068f6c92b597dc1eefdf4b27", + "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -7617,26 +7617,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:deeff0ae6c5730550cf0d9dea0740a264186e0cb7d4e7e80f88405f406290374" + "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b56045ca6e7ea2c0b00b4ec9f6ccc22b307be8932521c63dfe8e248e8f539eb" + "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:6c6784e903f49f88c3e6ccc6cc9f37327cc4987bbf8bb3c46eecdc0fd049168a" + "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac", + "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", "query_index": 0 } ], @@ -7739,7 +7739,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe", + "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", "physical_candidate": { "materialized_outputs": { "3": { @@ -8685,7 +8685,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc", + "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", "physical_candidate": { "materialized_outputs": { "3": { @@ -9576,7 +9576,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b", + "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", "physical_dag": { "nodes": { "2": { @@ -9904,7 +9904,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b", + "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", "physical_dag": { "nodes": { "2": { @@ -10667,7 +10667,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9", + "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/topk-rate.md index d2aa842ec..3fec0a7a6 100644 --- a/docs/evaluation/issue754-human-review/topk-rate.md +++ b/docs/evaluation/issue754-human-review/topk-rate.md @@ -72,7 +72,7 @@ Costs below come from the controlled Level 1 fixture, not production measurement ### Planner physical candidate -Logical root: `"asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe"`. +Logical root: `"asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f"`. top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states @@ -104,7 +104,7 @@ Roots: `[7]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc"`. +Logical root: `"asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states @@ -136,7 +136,7 @@ Roots: `[7]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b"`. +Logical root: `"asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65"`. select exact Top-K from independently maintained temporal values @@ -154,7 +154,7 @@ Roots: `[4]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b"`. +Logical root: `"asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374"`. top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) @@ -175,7 +175,7 @@ Roots: `[7]`. ### Planner physical candidate -Logical root: `"asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9"`. +Logical root: `"asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05"`. top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) @@ -197,14 +197,14 @@ Roots: `[7]`. | Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | | --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:674fdf1bceb4e87877e0c53d71974952465151ea8c6f6c1c3e21f3e73db168ac"]` | `"unselected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:deece59c58a71ff7517b2846500eda002e6a31ae4e7a3cf99c54029c25cffb53"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:7b07535373f722165f9d399a6ded1bd2f6b76440fd2d21bf9c1f1d636c373c02"]` | `"unselected"` | `242.0` | `null` | -| 3 | `["asap-explain-v1:root:496497707aa2833c8230c315e5022287410866d3e8ac5c4960a04e7d7e0571fe"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 4 | `["asap-explain-v1:root:3e71cb6b909990d20b7d3a2a17275df1b43bf7680f964360762588f0597424fc"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 5 | `["asap-explain-v1:root:ba8eeff4b130d8b06e9faf25bc465ff618ba30cd5e7857c44fc68762c82dc16b"]` | `"selected"` | `125.0` | `null` | -| 6 | `["asap-explain-v1:root:a74eff3b7896e52dae2dadd25bb9d301eaa6268fa1304c0cbeb9699ad5f8558b"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 7 | `["asap-explain-v1:root:adfaa23eb6d420ae8122a87f94158cec0987aec159752067f711cb41a339b5a9"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 0 | `["asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b"]` | `"unselected"` | `155.0` | `null` | +| 1 | `["asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb"]` | `"unselected"` | `61000000000000.0` | `null` | +| 2 | `["asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec"]` | `"unselected"` | `242.0` | `null` | +| 3 | `["asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 4 | `["asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 5 | `["asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65"]` | `"selected"` | `125.0` | `null` | +| 6 | `["asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | +| 7 | `["asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-5](candidates/topk-rate-5.json) From f17c87fce5814d2e12cb105d30d69ced88d6a366 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 01:15:57 +0000 Subject: [PATCH 38/80] Resolve shared population bindings once per deployment candidate --- control_plane/src/physical/compiler.rs | 8 ++-- .../src/physical/maintained_population.rs | 48 +++++++++++++------ 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 3f8e58f1a..cd7ddb84f 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -1394,6 +1394,7 @@ impl DeploymentPlanCompiler { for (id, root) in planner_types::post_asap::share_common_summary_subtrees(roots) { request.queries[id].selected_plan_root = root; } + let population_operators = super::maintained_population::operators(&request)?; let mut compiled_materializations = Vec::with_capacity(request.queries.len()); let mut collector_materializations = Vec::with_capacity(request.queries.len()); let mut plan_materializations = Vec::with_capacity(request.queries.len()); @@ -1500,9 +1501,7 @@ impl DeploymentPlanCompiler { .collect::>(); // An exact native fallback has no maintained state and must not // depend on evidence for unused window/state implementations. - if selected.is_empty() - && super::maintained_population::operator(&request, query)?.is_none() - { + if selected.is_empty() && population_operators[query_index].is_none() { continue; } let executable = planner_types::post_asap::compile_executable_dag_with_node_ids( @@ -2249,8 +2248,7 @@ impl DeploymentPlanCompiler { query_node_bindings.insert((query_index, compiled.dag.root), root); } Ok(entry) - } else if let Some(operator) = super::maintained_population::operator(&request, query)? - { + } else if let Some(operator) = population_operators[query_index].clone() { let root = crate::query_plan::QueryNodeId(0); let compiled = executable_dags[query_index] .as_ref() diff --git a/control_plane/src/physical/maintained_population.rs b/control_plane/src/physical/maintained_population.rs index a7b877428..7844c5665 100644 --- a/control_plane/src/physical/maintained_population.rs +++ b/control_plane/src/physical/maintained_population.rs @@ -1,5 +1,7 @@ //! Lower typed population operators according to executor membership capabilities. -use super::compiler::{CompileError, PhysicalCompilationRequest, QueryCompilationInput}; +#[cfg(test)] +use super::compiler::QueryCompilationInput; +use super::compiler::{CompileError, PhysicalCompilationRequest}; use asap_types::query_plan::{ current_series::{SeriesPopulation, SeriesReadout}, residual::{Grouping, LabelMatch, LabelMatcher, ResidualQueryOperator}, @@ -67,22 +69,21 @@ pub(super) fn supported(request: &PhysicalCompilationRequest) -> bool { .any(|q| supported_node(&q.selected_plan_root)) } -pub(super) fn operator( +/// Resolve population bindings once per candidate. Scanning every workload +/// root for each consumer recompiles the same native ranking graphs quadratically. +pub(super) fn operators( request: &PhysicalCompilationRequest, - query: &QueryCompilationInput, -) -> Result, CompileError> { - let Some((spec, readout)) = selected(&query.selected_plan_root) else { - return Ok(None); - }; - let PopulationInput::CurrentSeries(input) = &spec.input else { - return Err(CompileError::Query { query_id: query.query_id.clone(), reason: "maintained table-row populations require a row-update executor; remote-write current-series state is incompatible".into() }); - }; - let populations: std::collections::BTreeSet<_> = request +) -> Result>, CompileError> { + let selected = request .queries .iter() - .filter_map(|q| { - selected(&q.selected_plan_root) - .map(|(p, _)| serde_json::to_string(&p).expect("typed population serializes")) + .map(|query| selected(&query.selected_plan_root)) + .collect::>(); + let populations: std::collections::BTreeSet<_> = selected + .iter() + .flatten() + .map(|(population, _)| { + serde_json::to_string(population).expect("typed population serializes") }) .collect(); let max_bytes = request @@ -90,6 +91,11 @@ pub(super) fn operator( .unwrap_or(64 * 1024 * 1024) .min(1_073_741_824) / populations.len().max(1) as u64; + selected.into_iter().zip(&request.queries).map(|(selected, query)| { + let Some((spec, readout)) = selected else { return Ok(None); }; + let PopulationInput::CurrentSeries(input) = &spec.input else { + return Err(CompileError::Query { query_id: query.query_id.clone(), reason: "maintained table-row populations require a row-update executor; remote-write current-series state is incompatible".into() }); + }; let population = SeriesPopulation { metric: input.metric.clone(), matchers: input @@ -135,6 +141,20 @@ pub(super) fn operator( population, readout, })) + }).collect() +} + +#[cfg(test)] +pub(super) fn operator( + request: &PhysicalCompilationRequest, + query: &QueryCompilationInput, +) -> Result, CompileError> { + let index = request + .queries + .iter() + .position(|q| q.query_id == query.query_id) + .expect("query belongs to the compilation request"); + Ok(operators(request)?.remove(index)) } /// The maintained population is a deployment source; ranking is compiled by From 320958556d014a2409aec26951a69690f3e4b3c6 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 01:23:40 +0000 Subject: [PATCH 39/80] Share immutable candidate diagnostics and reuse unchanged window preparation --- control_plane/Cargo.toml | 2 +- control_plane/src/main.rs | 6 +++--- control_plane/src/physical/compiler.rs | 16 +++++++++------- control_plane/src/physical/workload_cost.rs | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/control_plane/Cargo.toml b/control_plane/Cargo.toml index 63b866090..4004000bc 100644 --- a/control_plane/Cargo.toml +++ b/control_plane/Cargo.toml @@ -15,7 +15,7 @@ path = "src/main.rs" tokio = { version = "1", features = ["full"] } axum = { version = "0.7", features = ["ws"] } futures-util = "0.3" -serde = { version = "1", features = ["derive"] } +serde = { version = "1", features = ["derive", "rc"] } serde_json = "1" sha2 = "0.10" serde_yaml = "0.9" diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index 77c6887c8..462e70ade 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -381,7 +381,7 @@ async fn compile_and_publish_physical_plan( Json(CompileAndPublishPhysicalPlanResponse { cost_comparison: bundle.cost_comparison, - planner_selection_trace: bundle.planner_selection_trace, + planner_selection_trace: bundle.planner_selection_trace.as_ref().clone(), plan_id: bundle.envelope.plan_id, plan_version: bundle.envelope.plan_version, status: "active", @@ -656,7 +656,7 @@ fn compile_physical_plan_request( } let compilation_request = physical::compiler::PhysicalCompilationRequest { planner_candidate_forests: Vec::new(), - planner_selection_trace, + planner_selection_trace: planner_selection_trace.into(), query_workload: Some(query_workload), data_workload: Some(request.data_workload), canonical_roots, @@ -688,7 +688,7 @@ fn compile_physical_plan_request( compilation_request.clone(), ) .map_err(|error| (StatusCode::UNPROCESSABLE_ENTITY, error.to_string().into()))?; - let planner_selection_trace = compilation_request.planner_selection_trace.clone(); + let planner_selection_trace = compilation_request.planner_selection_trace.as_ref().clone(); let (manifests, candidate_evaluations) = physical::workload_cost::compile_candidates_for_pricing( candidates.clone(), diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index cd7ddb84f..31626cb21 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -157,8 +157,8 @@ pub struct PhysicalCompilationRequest { /// Complete Planner candidates retained until deployment admission/pricing. /// Empty for callers that explicitly supply one already-selected forest. pub planner_candidate_forests: Vec>, - /// Diagnostic projections of the original Planner search; never consumed by selection. - pub planner_selection_trace: Vec, + /// Immutable search diagnostics shared across candidates; never consumed by selection. + pub planner_selection_trace: std::sync::Arc>, /// Enable a composable DAG with SummaryStore materializations and Prometheus exact subtrees. pub allow_mixed_summary_and_exact_execution: bool, /// Deployment feasibility: external exact dependencies cannot be bound. @@ -616,7 +616,7 @@ pub struct CompiledPhysicalPlan { /// Lifecycle component only, not a complete physical-plan comparison. pub lifecycle_estimates: Vec, pub cost_comparison: Option, - pub planner_selection_trace: Vec, + pub planner_selection_trace: std::sync::Arc>, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] @@ -1044,12 +1044,14 @@ impl BackendLocalPlanningInput { let mut planner_candidate_forests = Vec::new(); for roots in candidate_roots { let mut forest = queries.clone(); + let changed: BTreeSet<_> = roots.iter().map(|(index, _)| *index).collect(); for (index, root) in roots { forest[index].selected_plan_root = root; } - let preparation = forest.iter_mut().try_for_each(|query| { + // Unchanged roots already have prepared windows in `queries`. + let preparation = changed.into_iter().try_for_each(|index| { prepare_window_implementations( - query, + &mut forest[index], &self.physical_inputs.window_cost_model, self.environment.target, self.physical_inputs.query_retention_margin_ms, @@ -1071,7 +1073,7 @@ impl BackendLocalPlanningInput { Ok(( PhysicalCompilationRequest { planner_candidate_forests, - planner_selection_trace, + planner_selection_trace: planner_selection_trace.into(), allow_mixed_summary_and_exact_execution: true, require_backend_local_execution: self .physical_inputs @@ -5477,7 +5479,7 @@ pub(crate) mod tests { } Ok(PhysicalCompilationRequest { planner_candidate_forests: Vec::new(), - planner_selection_trace: Vec::new(), + planner_selection_trace: Default::default(), canonical_roots: Vec::new(), allow_mixed_summary_and_exact_execution: false, require_backend_local_execution: false, diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index f321ce3ec..aa53ad861 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -112,7 +112,7 @@ pub struct MaterializationSearchCoverage { pub struct CandidatePlanSelectionReport { #[serde(default)] #[serde(rename = "logical_selection")] - pub planner_selection_trace: Vec, + pub planner_selection_trace: std::sync::Arc>, #[serde(default)] pub materialization_search_coverage: Option, pub data_snapshot_id: String, From b5ef5dd219a3f6bcd73ba4bfc56484899e65a7a9 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 01:29:50 +0000 Subject: [PATCH 40/80] Verify all 44 review plans remain unchanged after candidate preparation fixes --- docs/evaluation/issue754-human-review/source-commit.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 4ee3c5cb8..d64e7a5ad 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -cb2034d3cecf0f817a6b77093079158e4c07833b +d26043a11c379eec05dc3ac1e747ba0a580f043e From c1c21e549242f5db0658202137e81f94320b887a Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 01:49:48 +0000 Subject: [PATCH 41/80] test: isolate physical candidate structure from cost selection --- control_plane/tests/issue754_level1.rs | 334 +++--------------- .../tests/support/issue754_workload.rs | 72 ++++ docs/design_docs/planning-test-layers.md | 37 ++ .../issue754-human-review/README.md | 22 +- .../admission/grouped-rate.admission.json | 74 ++++ .../grouped-temporal-sum.admission.json | 50 +++ .../admission/quantile-ratio.admission.json | 38 ++ .../admission/spatial-quantile.admission.json | 50 +++ .../admission/spatial-sum.admission.json | 50 +++ .../admission/spatial-topk.admission.json | 50 +++ .../temporal-quantile.admission.json | 38 ++ .../admission/temporal-rate.admission.json | 50 +++ .../admission/temporal-sum.admission.json | 38 ++ .../admission/topk-rate.admission.json | 98 +++++ 14 files changed, 701 insertions(+), 300 deletions(-) create mode 100644 control_plane/tests/support/issue754_workload.rs create mode 100644 docs/design_docs/planning-test-layers.md create mode 100644 docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/admission/topk-rate.admission.json diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index d2aeb68bc..bea07025d 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -1,28 +1,20 @@ -//! Issue #754 level 1: every shared workload query has a valid physical plan. +//! Level 1: inspect every supported candidate and binding rejection, without cost selection. use asap_types::sds::SummaryOperator; use control_plane::physical::compiler::{ - BackendLocalPlanningInput, CompiledPhysicalPlan, DeploymentPlanCompiler, BACKEND_REVISION, - PLANNER_REVISION, + CompiledPhysicalPlan, DeploymentPlanCompiler, QueryFrontend, }; use control_plane::physical::executable_binding::validate_query_plan; use control_plane::physical::workload_cost::{ - enumerate_exact_and_materialized_candidates, manifest, WorkloadCostEvidence, WorkloadQuote, + compile_candidates_for_pricing, enumerate_exact_and_materialized_candidates, + CandidateEvaluationStatus, }; use control_plane::query_plan::QueryPlanNode; use planner_types::post_asap::{ExactKind, SketchAlgorithm, SummaryFamilyType}; -use serde::Deserialize; use serde_json::{json, Value}; -#[derive(Deserialize)] -struct Suite { - queries: Vec, -} - -#[derive(Deserialize)] -struct Case { - name: String, - expr: String, -} +#[path = "support/issue754_workload.rs"] +mod workload; +use workload::Suite; struct ExpectedPlan { family: Option, @@ -36,8 +28,7 @@ enum ExpectedFamily { QuantileSketch, } -// Expectations below are specific to this controlled fixture. Candidate -// semantics and cost-dependent placement are validated separately. +// Expectations describe semantic structure, never a cost-selected winner. fn expected_plan(name: &str) -> ExpectedPlan { match name { "spatial-sum" => ExpectedPlan { @@ -596,62 +587,11 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option 0.0 && n("modulo") > 0.0 && n("base") > 0.0); - lower = lower.min(n("multiplier") * n("base")); - upper = upper.max(n("multiplier") * (n("base") + n("modulo"))); - count += ((n("end_offset_seconds") - n("start_offset_seconds")) / n("step_seconds")) - .round() as u64 - + 1; - } - let root = control_plane::query_parser::parse_query_expr_canonical( - &case.expr, - planner_types::types::AccuracyTarget::EpsilonDelta { - epsilon: 0.01, - delta: 0.01, - }, - ) - .unwrap(); - let planner_types::pre_asap::QueryExpr::BinaryOp { lhs, rhs, .. } = root else { - panic!("ratio fixture"); - }; - snapshot["implementation"]["data_snapshot_id"] = json!("issue-754-level1"); - snapshot["implementation"]["accuracy_evidence"][&case.expr] = json!({ - "query_string":case.expr,"data_snapshot_id":"issue-754-level1", - "data_workload":snapshot["data_workload"],"source":"issue-754-finite-generator", - "observed_at_unix_ms":9500,"valid_for_ms":60000, - "quantile_operand_domains":([lhs,rhs].into_iter().map(|operand| json!({ - "operand":operand,"lower":lower,"upper":upper,"max_samples":count, - "contract":"complete finite issue-754 generator population"})).collect::>()) - }); - } - let mut input: BackendLocalPlanningInput = serde_json::from_value(snapshot).unwrap(); + let input = workload::input(&case); let (request, environment) = input.clone().into_physical_compilation_request().unwrap(); if case.name == "spatial-quantile" { // The fixture's admissible sketch families must reach deployment @@ -790,7 +730,34 @@ fn issue754_queries_have_valid_physical_plans() { let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let mut valid_plans = Vec::new(); let mut grouped_rate_placements = std::collections::BTreeSet::new(); - let mut quotes = Vec::new(); + let (_, admission) = compile_candidates_for_pricing( + candidates.clone(), + environment.clone(), + QueryFrontend::PromQl, + ); + assert_eq!(admission.len(), candidates.len()); + for result in &admission { + assert!( + result.total_cost.is_none(), + "Level 1 must not price candidates" + ); + match result.status { + CandidateEvaluationStatus::AwaitingQuote => assert!(result.plan_id.is_some()), + CandidateEvaluationStatus::CompilationFailed => assert!(result + .unavailable_reason + .as_ref() + .is_some_and(|reason| !reason.is_empty())), + ref status => panic!("unexpected pre-pricing status: {status:?}"), + } + } + if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { + std::fs::create_dir_all(&directory).unwrap(); + std::fs::write( + std::path::Path::new(&directory).join(format!("{}.admission.json", case.name)), + serde_json::to_vec_pretty(&admission).unwrap(), + ) + .unwrap(); + } let mut errors = Vec::new(); for (candidate_index, candidate) in candidates.into_iter().enumerate() { match DeploymentPlanCompiler.compile_promql(candidate.clone(), environment.clone()) { @@ -839,31 +806,6 @@ fn issue754_queries_have_valid_physical_plans() { .unwrap(); std::fs::write(base.with_extension("dot"), &dot).unwrap(); } - // Fixture-specific admission/selection costs. These do not - // establish a production optimum or require one split for - // every workload; the reversal test below covers placement. - let cost = if plan.query_plan.entries.values().any(|entry| { - entry - .nodes - .values() - .any(|node| matches!(node, QueryPlanNode::ExactFallback { .. })) - }) { - 1e12 - } else if plan.precompute_plan.materializations.is_empty() { - 2.0 - } else { - 1.0 - }; - let manifest = manifest(&plan, &candidate.queries).unwrap(); - quotes.push(WorkloadQuote { - unit_costs: manifest - .components - .keys() - .map(|key| (key.clone(), cost)) - .collect(), - manifest, - executable: true, - }); valid_plans.push(plan); } Err(error) => errors.push(error.to_string()), @@ -901,22 +843,8 @@ fn issue754_queries_have_valid_physical_plans() { case.name ); } - input.workload_cost_evidence = Some(WorkloadCostEvidence { - backend_revision: BACKEND_REVISION.into(), - planner_revision: PLANNER_REVISION.into(), - data_snapshot_id: "issue-754-level1".into(), - model_version: "deterministic-test-costs".into(), - observed_at_unix_ms: environment.observed_at_unix_ms, - valid_for_ms: environment.max_evidence_age_ms, - quotes, - }); - let selected = input - .compile_promql() - .unwrap_or_else(|error| panic!("{} selected plan failed: {error}", case.name)); for root_id in heap_roots { - let report = selected.cost_comparison.as_ref().unwrap(); - let heap = report - .candidate_evaluations + let heap = admission .iter() .filter(|candidate| candidate.logical_root_ids.contains(&root_id)) .collect::>(); @@ -925,7 +853,9 @@ fn issue754_queries_have_valid_physical_plans() { "physical heap candidate disappeared before admission" ); assert!( - heap.iter().all(|candidate| candidate.total_cost.is_none() + heap.iter().all(|candidate| candidate.status + == CandidateEvaluationStatus::CompilationFailed + && candidate.total_cost.is_none() && candidate .unavailable_reason .as_ref() @@ -933,185 +863,5 @@ fn issue754_queries_have_valid_physical_plans() { "missing proof must be an explicit admission failure: {heap:?}" ); } - let selected_entry = selected.query_plan.lookup(&case.expr).unwrap(); - assert!(selected_entry.nodes.contains_key(&selected_entry.root)); - if let Some(error) = assert_selected_plan(&case.name, &selected) { - missing_local_plans.push(error); - } - if let Some(installed) = selected - .precompute_plan - .executable_dags - .get(&selected_entry.query_id) - { - installed.validate().unwrap(); - validate_query_plan(installed, selected_entry).unwrap(); - } - if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { - let plan = &selected; - std::fs::create_dir_all(&directory).unwrap(); - let base = std::path::Path::new(&directory).join(&case.name); - std::fs::write( - base.with_extension("json"), - serde_json::to_vec_pretty(plan).unwrap(), - ) - .unwrap(); - std::fs::write( - base.with_extension("dot"), - control_plane::physical::plan_dot::render(plan), - ) - .unwrap(); - } - } - assert!( - missing_local_plans.is_empty(), - "{}", - missing_local_plans.join("\n") - ); -} - -/// Workload cost must reverse the admitted grouped temporal Sum split. -#[test] -fn grouped_temporal_sum_candidates_preserve_coverage_and_reverse_selection() { - use asap_aware_mapping::cost_model::Cost; - use asap_aware_mapping::{CostModel, Replacement, ReplacementSubDAG, TargetSubDAG}; - use planner_types::post_asap::SummaryExpr; - use planner_types::pre_asap::{AggIntent, Reduction}; - struct PreferSplit { - grouped: bool, - } - impl CostModel for PreferSplit { - fn rank_candidates( - &self, - _: &AggIntent, - candidates: &[SketchAlgorithm], - ) -> Vec { - candidates.to_vec() - } - fn candidate_cost( - &self, - candidate: &ReplacementSubDAG, - _: &TargetSubDAG<'_>, - ) -> Option { - let grouped = matches!(&candidate.replacement, Replacement::Summary(node) - if matches!(&node.expr, SummaryExpr::SummaryAgg { reduction: Reduction::Reduce(_), child, .. } - if matches!(child.expr, SummaryExpr::KeepPreAsap(_)))); - Some(Cost(if grouped == self.grouped { 1. } else { 1000. })) - } - } - let expression = "sum by (label_0) (sum_over_time(data[1m]))"; - let canonical = control_plane::query_parser::parse_query_expr_canonical( - expression, - planner_types::types::AccuracyTarget::Exact, - ) - .unwrap(); - let mut snapshot: Value = serde_json::from_str(include_str!( - "../../docs/examples/asapquery-planning-snapshot.json" - )) - .unwrap(); - snapshot["query_workload"]["repeating_queries"][0]["query"] = json!(expression); - let input: BackendLocalPlanningInput = serde_json::from_value(snapshot).unwrap(); - let (request, environment) = input.into_physical_compilation_request().unwrap(); - let mut plans = Vec::new(); - let mut candidates = Vec::new(); - for grouped in [false, true] { - let mut candidate = request.clone(); - candidate.queries[0].selected_plan_root = - control_plane::planner_selection::select_query(&canonical, &PreferSplit { grouped }) - .unwrap(); - let plan = DeploymentPlanCompiler - .compile_promql(candidate.clone(), environment.clone()) - .unwrap(); - candidates.push(candidate); - assert_eq!(assert_selected_plan("grouped-temporal-sum", &plan), None); - // A stored five-second pane cannot shorten the semantic minute read. - let mut incomplete = plan.clone(); - for entry in incomplete.query_plan.entries.values_mut() { - for node in entry.nodes.values_mut() { - if let QueryPlanNode::ReadMaterialization { binding } = node { - binding.readout_lookback_ms = Some(5_000); - } - } - } - assert!(std::panic::catch_unwind(|| assert_selected_plan( - "grouped-temporal-sum", - &incomplete - )) - .is_err()); - let entry = plan.query_plan.lookup(expression).unwrap(); - let root = &entry.nodes[&entry.root]; - let is_grouped = matches!(root, QueryPlanNode::ExactReadout { .. }); - assert_eq!( - is_grouped, grouped, - "controlled cost must change the executable split" - ); - plans.push(plan); - } - assert_ne!(plans[0].query_plan, plans[1].query_plan); - // Controlled scoped resource prices, not observed production measurements. - // Maintenance-heavy grouped output loses in the first fixture; expensive - // repeated query-side reduction makes it win in the second fixture. - for prefer_grouped in [false, true] { - let quotes = plans - .iter() - .zip(&candidates) - .enumerate() - .map(|(index, (plan, candidate))| { - let manifest = manifest(plan, &candidate.queries).unwrap(); - let unit_costs = manifest - .components - .iter() - .map(|(key, demand)| { - let grouped_state = index == 1 && key.starts_with("state:"); - let query_reduction = - demand.implementation["node"]["operator"]["kind"] == "aggregate"; - let cost = if (!prefer_grouped && grouped_state) - || (prefer_grouped && query_reduction) - { - 10_000. - } else { - 1. - }; - (key.clone(), cost) - }) - .collect(); - WorkloadQuote { - manifest, - unit_costs, - executable: true, - } - }) - .collect(); - let evidence = WorkloadCostEvidence { - backend_revision: BACKEND_REVISION.into(), - planner_revision: PLANNER_REVISION.into(), - data_snapshot_id: "grouped-sum-frontier-fixture".into(), - model_version: "controlled-maintenance-query-costs".into(), - observed_at_unix_ms: environment.observed_at_unix_ms, - valid_for_ms: environment.max_evidence_age_ms, - quotes, - }; - let selected = control_plane::physical::workload_cost::select_lowest_cost_candidate( - candidates.clone(), - environment.clone(), - &evidence, - ) - .unwrap(); - assert_eq!( - assert_selected_plan("grouped-temporal-sum", &selected), - None - ); - let entry = selected.query_plan.lookup(expression).unwrap(); - assert_eq!( - matches!(entry.nodes[&entry.root], QueryPlanNode::ExactReadout { .. }), - prefer_grouped - ); - let report = selected.cost_comparison.unwrap(); - let selected_cost = report.component_costs.values().sum::(); - let minimum = report - .candidate_evaluations - .iter() - .filter_map(|candidate| candidate.total_cost) - .fold(f64::INFINITY, f64::min); - assert_eq!(selected_cost, minimum); } } diff --git a/control_plane/tests/support/issue754_workload.rs b/control_plane/tests/support/issue754_workload.rs new file mode 100644 index 000000000..159001fbc --- /dev/null +++ b/control_plane/tests/support/issue754_workload.rs @@ -0,0 +1,72 @@ +//! Shared query/accuracy fixture; contains no candidate prices or expected winner. +use control_plane::physical::compiler::BackendLocalPlanningInput; +use serde::Deserialize; +use serde_json::{json, Value}; + +#[derive(Deserialize)] +pub struct Suite { + pub queries: Vec, +} +#[derive(Deserialize)] +pub struct Case { + pub name: String, + pub expr: String, +} + +pub fn suite() -> Suite { + serde_yaml::from_str(include_str!( + "../../../promql-compliance/suites/issue-754.yaml" + )) + .unwrap() +} + +pub fn input(case: &Case) -> BackendLocalPlanningInput { + let mut snapshot: Value = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-planning-snapshot.json" + )) + .unwrap(); + snapshot["query_workload"]["repeating_queries"][0]["query"] = case.expr.clone().into(); + if case.name == "quantile-ratio" { + // The issue-754 generator defines the entire positive finite input + // population. Supply its domain contract rather than certifying a + // ratio from sample observations or weakening the admission rule. + let fixture: Value = serde_yaml::from_str(include_str!( + "../../../promql-compliance/datasets/issue-754.yaml" + )) + .unwrap(); + let mut lower = f64::INFINITY; + let mut upper = f64::NEG_INFINITY; + let mut count = 0u64; + for series in fixture["series"].as_array().unwrap() { + let g = &series["generated_samples"]; + let n = |k: &str| g[k].as_f64().unwrap(); + assert!(n("multiplier") > 0.0 && n("modulo") > 0.0 && n("base") > 0.0); + lower = lower.min(n("multiplier") * n("base")); + upper = upper.max(n("multiplier") * (n("base") + n("modulo"))); + count += ((n("end_offset_seconds") - n("start_offset_seconds")) / n("step_seconds")) + .round() as u64 + + 1; + } + let root = control_plane::query_parser::parse_query_expr_canonical( + &case.expr, + planner_types::types::AccuracyTarget::EpsilonDelta { + epsilon: 0.01, + delta: 0.01, + }, + ) + .unwrap(); + let planner_types::pre_asap::QueryExpr::BinaryOp { lhs, rhs, .. } = root else { + panic!("ratio fixture"); + }; + snapshot["implementation"]["data_snapshot_id"] = json!("issue-754-level1"); + snapshot["implementation"]["accuracy_evidence"][&case.expr] = json!({ + "query_string":case.expr,"data_snapshot_id":"issue-754-level1", + "data_workload":snapshot["data_workload"],"source":"issue-754-finite-generator", + "observed_at_unix_ms":9500,"valid_for_ms":60000, + "quantile_operand_domains":([lhs,rhs].into_iter().map(|operand| json!({ + "operand":operand,"lower":lower,"upper":upper,"max_samples":count, + "contract":"complete finite issue-754 generator population"})).collect::>()) + }); + } + serde_json::from_value(snapshot).unwrap() +} diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md new file mode 100644 index 000000000..acc004e77 --- /dev/null +++ b/docs/design_docs/planning-test-layers.md @@ -0,0 +1,37 @@ +# Planning validation: separate contracts and evidence + +Audience: implementers and reviewers. Each PR proves one contract; a downstream +pass cannot substitute for a missing upstream check. + +| Layer | Input | Assertion | +| --- | --- | --- | +| Level 1 (#728) | workload and declared capabilities/accuracy requirements | Every exposed supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions | +| Level 2 (#742) | same candidates plus synthetic complete quotes | Ranking, cost reversal, infeasible/missing quote exclusion; no claim about real costs | +| Workload statistics | ingestion observations, query history and series observations | Scope, units, observation windows, freshness and missingness survive into demand | +| Accuracy evidence | sketch error evidence and query requirements | Only applicable evidence admits a candidate; observed mean error is not a formal guarantee | +| Resource measurements | measured operator CPU, memory and storage | Correct units and work multiplicities, shared work counted once, provenance retained | +| Execution correctness | installed physical plan and input data | Results, stored state, recovery and coverage; independent of selection quality | +| Level 3 (#759) | real workload, applicable accuracy evidence and measured resource costs | Accurate results and measured selection quality under a declared objective | + +ERP means Error–Resource Profile. Workload statistics describe how much work is +requested. Accuracy evidence constrains which candidates are legal. Resource +measurements price feasible candidates. Synthetic prices test the selector only. + +## Evidence required for Level 3 + +Record the workload identity, observation interval, query frequency, accepted +sample count, distinct-series scope, implementation revision, machine, sketch +parameters and evidence timestamps. Preserve missing/unsupported dimensions; +do not replace them with zero or relabel analytical coefficients as measured. + +Freeze planning inputs before the evaluation interval. Measure each feasible +candidate under the same workload, horizon and resource objective, using repeated +runs. Compare predicted costs and selected-plan measurements with the measured +best candidate, reporting uncertainty and selection regret. Validate results +against exact execution and the query's accuracy contract. Evidence from the +same samples used to tune the model is not independent selection validation. + +Historical differential runs establish execution correctness. Historical benefit +runs against another engine establish only their stated performance comparison. +Neither establishes Level 3 selection quality. A real-evidence run with missing +inputs must be reported as incomplete, never as a synthetic pass. diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index a7d0b8e8b..dd683531b 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -1,8 +1,15 @@ # Issue #754 plans for human review -These are actual plans exported by the Level 1 fixture. No human approval is -recorded. Selected plans and successfully compiled candidate plans are retained -as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. +The `candidates/` directory contains physical plans for structural review. No +human approval is recorded. Level 1 now exports candidate JSON/DOT and per-query +`*.admission.json` reports before pricing, including `bind_failed` reasons. It +never asserts a cost-selected winner. + +The top-level selected-plan pages are historical exports from the revision in +`source-commit.txt`, using synthetic fixture prices. They remain useful for +comparison, but are not the current Level 1 contract or production selection +evidence. Ranking belongs to Level 2; observed selection quality belongs to +Level 3. See [test responsibilities](../../design_docs/planning-test-layers.md). Backend source revision is in [source-commit.txt](source-commit.txt). Planner: `176c1bd565e0c400f9a35996c2bd65de32475e72`. @@ -52,8 +59,8 @@ are not evidence of production-optimal placement. The strict spatial-quantile fixture rejects the default KLL guarantee. A separate assertion with relaxed accuracy verifies that both KLL and DDSketch reach costing -when admitted. The grouped-temporal-sum test checks cost-dependent placement; -it does not establish this for every query. Sort-key mutation tests reject ranking +when admitted. Level 1 checks grouped-temporal-sum structure and minute coverage; Level 2 +checks cost-dependent placement. Sort-key mutation tests reject ranking by timestamp or label instead of the finalized rate value. | Query | PromQL | @@ -78,8 +85,7 @@ ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \ cargo test -p control_plane --test issue754_level1 --locked -- --test-threads=1 ``` -The test also exports enumerated candidates into `candidates/`; the ten selected -plans are at the top level. Copy those `.json` and `.dot` files here and run -`python3 docs/evaluation/issue754-human-review/render.py` to regenerate the pages. +The test exports enumerated candidates into `candidates/` and admission reports +at the top level. It does not regenerate the historical selected-plan pages. Actual execution and recovery evidence is maintained in the downstream [bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). diff --git a/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json new file mode 100644 index 000000000..e6c7612c7 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json @@ -0,0 +1,74 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:87b839e53f17c6edb9300442353164b2be820b3935786213063526cb53a6c96c", + "logical_root_ids": [ + "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b" + ], + "physical_candidate_id": "asap-explain-v1:physical:7ccc3bc27c1b96ada6ee6ba3fc13d6086f238bdd76a5b789ef1264884ebce6ae", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 5849823772717530049, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:26e523685f44afb79b6cf56e61e83103bad15f18eae703e32f89edc23f76bbfe", + "logical_root_ids": [ + "asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba" + ], + "physical_candidate_id": "asap-explain-v1:physical:8cfce96a5da0445c91268f4b08c0ef73e4f3f5c24f75a05b9272203f5281f3d8", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 741363842036532054, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:75549c88c5ef740087b6227e4a296e618acebb67efb1db5837b568e3100444e6", + "logical_root_ids": [ + "asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:e55145861b536c12ea805c740f9c620c26a962496cdb1ab6474a99a98e599f4c", + "logical_root_ids": [ + "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5" + ], + "physical_candidate_id": "asap-explain-v1:physical:26c63bfb557453a9a1e144baaaa1156de7f8b1e0cab4afd4f241d392fcab9111", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 15282866737310247190, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:b39e34722ce28083cbad29620719a38093563e34cf6e69431ff395315d960f8e", + "logical_root_ids": [ + "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac" + ], + "physical_candidate_id": "asap-explain-v1:physical:cb63c4da47a097c41d7d40bbc9c6da3506003e36fd4d4d69464dab773fc261dc", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3349874915222028658, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:04b3d3fc23a69590e3c24eeed8d01d045fadab84a403128ce95321d162e38a28", + "logical_root_ids": [ + "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema" + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json new file mode 100644 index 000000000..3ca6e19fa --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json @@ -0,0 +1,50 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:f6fd11e41c82b8183f3d94404506a7a44f482242434d23a3ff42afb6b6cd8f71", + "logical_root_ids": [ + "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7" + ], + "physical_candidate_id": "asap-explain-v1:physical:6c4cb0f2eb8ac0d54fb1f95e57901f190e4b40d89b96b1d08f1f510d85b1090a", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 398383639928265061, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:8e166101c5b7e3b81d048c3744c9d425a8f358dfa9eae019de62a00da9f88fc5", + "logical_root_ids": [ + "asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3" + ], + "physical_candidate_id": "asap-explain-v1:physical:4796571e5d404038547011ad55bb6f46da69b10f59a2a3eaf7ce1da37d3452ab", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 375190931036314940, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:8c50c016194b4ec8b868f06cb97c4b22dc9015cca04575a66497b73809702553", + "logical_root_ids": [ + "asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:aa11b64fc0bed7d4b186586f95a450ecce8786bc16025d4badcaa74702c6dbb7", + "logical_root_ids": [ + "asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f" + ], + "physical_candidate_id": "asap-explain-v1:physical:9c92585937a8293993dd8f50b79fa15c76b40ff754dbe417504d6e9a8a63a185", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3225737927651639557, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json b/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json new file mode 100644 index 000000000..e072fbfb5 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json @@ -0,0 +1,38 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:c08f9149edabd1c321f061675315136e6579e3b47bbc64dd3d499981a0bfef5a", + "logical_root_ids": [ + "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2" + ], + "physical_candidate_id": "asap-explain-v1:physical:6b7a0e6306e75f8ce5cc3345ad7bc065f90be002025e618b555765fa79f334ba", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 14871479243635342203, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:0a10a2802dd2a1ba4e225c9ccd4a516371a85cad8986b21ce1b69169ed07acc7", + "logical_root_ids": [ + "asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0" + ], + "physical_candidate_id": "asap-explain-v1:physical:7bc14aea270b4e313ea33ac62e1c248aed293f35dd0642078ff51c08715acb48", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 5752356276213301876, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:bf7668c327a794ae092a59a4193fa742387270c081279428090a8afcaf261eb1", + "logical_root_ids": [ + "asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d" + ], + "physical_candidate_id": "asap-explain-v1:physical:bf4e9fe54a95b98c580e951c3ba57cffc5ee30a6a59fc0b4cd54ef89aba8bbff", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 12971657221408630864, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json new file mode 100644 index 000000000..c6a096599 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json @@ -0,0 +1,50 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:4354fd26d4956a318fa5456240c0da68a3caa45e4446b8e15f181d0c53783468", + "logical_root_ids": [ + "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d" + ], + "physical_candidate_id": "asap-explain-v1:physical:71de817eaf6fa746062e3795a419ee775e9d31a0d510bc74bb22c81d7c5ec288", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3294188734724225991, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:a0788f2335f317159241018e38b349e300d94233d6c2c372e1115a7669eb8098", + "logical_root_ids": [ + "asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8" + ], + "physical_candidate_id": "asap-explain-v1:physical:ba4202b91ce58b3c19e40be364dc5f551ac35862068d5e52ddd6177d0dea74e4", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 14256379658571227787, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:64858a2c738280483704598eea5dc6c1d6f302f7b7089c09991f308fbf37982d", + "logical_root_ids": [ + "asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c" + ], + "physical_candidate_id": "asap-explain-v1:physical:e8ab81814c4b32ad300e454b3a80c4946026cf18020174eb6660a3bd98942d23", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 18366075381595067177, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:79e9835d8db3988d68f3423675cd87e9773a6609f8147d9878c7debd76e10730", + "logical_root_ids": [ + "asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae" + ], + "physical_candidate_id": "asap-explain-v1:physical:6af3b1dafd992795fc98fc2164bc74cc8c112b69e611605d0a2e16f2f866821a", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 7667691247138405742, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json new file mode 100644 index 000000000..055bea91c --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json @@ -0,0 +1,50 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:9f815fefaf3981f4626c4f0bbecd6a2ff80ceb9c07c3f31a4fe791a78aeac63f", + "logical_root_ids": [ + "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65" + ], + "physical_candidate_id": "asap-explain-v1:physical:bc367137ad7802cdcb2d9aa085481d742813ccf81cd4af1b9fdf262f2111c1bd", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3688256239081920855, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:2e6c1b7b89ff83cf7818176a987df5c3473ae40083b34ae02c576c026048b258", + "logical_root_ids": [ + "asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52" + ], + "physical_candidate_id": "asap-explain-v1:physical:9738b844b88e5904d4aeb45407b68ca73b3cc8bae476c4cbe949fa1c71a8b214", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 17875413431231421451, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:30684f35a6589915d271235aacbb45ab7d63de02b0a84a6d9cb4a7fb74960d3b", + "logical_root_ids": [ + "asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa" + ], + "physical_candidate_id": "asap-explain-v1:physical:30b0e7dc2668e9607661dc69059e5240fade30d21c94ae7f7cce62a7cf3e73a9", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 8064649510529993241, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:2117947b4b3a330ebea6931c1a77e5a85cfb928d4d26c61496ae4d76f29ecf82", + "logical_root_ids": [ + "asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814" + ], + "physical_candidate_id": "asap-explain-v1:physical:ffba38d6fe0ca3626b208d737d922e9a54dca183e0960d27e1281a8a9c025956", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 10907830462850005469, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json new file mode 100644 index 000000000..574c0bfc0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json @@ -0,0 +1,50 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:58f399bf628c33f5ba9a72648f9ed2f3f2e75b1181b9b86d9e7f08849b29e18a", + "logical_root_ids": [ + "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + }, + { + "candidate_id": "asap-explain-v1:candidate:3c32fbddf25395e4edf1a48a31b8a868fedf3e054c229e5fdd72a445ecd42d44", + "logical_root_ids": [ + "asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1" + ], + "physical_candidate_id": "asap-explain-v1:physical:e59f1ec5404fa5bd4069c09b838f0ff74fcc6fde2b974a23ea1f07329d95a506", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 5538412219857372274, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:30835e38582d2361630291255e8e16465befbd5a7f72bfeed329b9cab4370fc7", + "logical_root_ids": [ + "asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a" + ], + "physical_candidate_id": "asap-explain-v1:physical:8391c4c488d5971b67801884e3af9bb4fb08c46da45d61904ae12b086847ad02", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 2697027346875258477, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:f970bcdb71bd853b66e897020a61d0e4e822d3a61e818549c903c3974ddc7f78", + "logical_root_ids": [ + "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json new file mode 100644 index 000000000..a93e16d5e --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json @@ -0,0 +1,38 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:c0821021fb0f0ede52cc359b062a25b521f59529c0b01d3045450e51f843bde9", + "logical_root_ids": [ + "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265" + ], + "physical_candidate_id": "asap-explain-v1:physical:06abad4563c1f00189e8f718354c7bf380a2bf216c2c64e19eeea9dae227fff5", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 11818444224054941250, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:625dc2ecb160daea9220f3c11ad598a06b50664ef7bc9790d442644a1f9a94e6", + "logical_root_ids": [ + "asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4" + ], + "physical_candidate_id": "asap-explain-v1:physical:ae3c88d23a919c5e1c0d2a743822ed3338945c29a827849ada3bd37c3ebc182d", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 4754089690189431057, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:985b7f5c84ddcdf36ce558a4da7e86d7e4511ddcdcb470dba23ae48759cb0317", + "logical_root_ids": [ + "asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b" + ], + "physical_candidate_id": "asap-explain-v1:physical:d0c2addd51491030e110e2534c0cb0fe7ce47b67a72e0faf17cfdb7edb0371d2", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 11545774673163874085, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json new file mode 100644 index 000000000..d28f5ba23 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json @@ -0,0 +1,50 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:58095076fcd25aa06dd6b1139c2d666f7f864d1c2cfa8da7a68c4336146dbce0", + "logical_root_ids": [ + "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" + ], + "physical_candidate_id": "asap-explain-v1:physical:3abdcddbce0076bb0f960bdbbadb2d764cc1637f37f928dfe344b3606bdc89eb", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 1350462962080375017, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:a807d3c844faa560c71a0ffcc409b8b56f953736f833f12c8ccce423de372bde", + "logical_root_ids": [ + "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" + ], + "physical_candidate_id": "asap-explain-v1:physical:f10d832145869c1a1691c81c5a14cb67e10fb2c442ee46e9cd19b1915404c570", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 4863426083951867157, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:3dd7c380b3c0085f43c8482bbf72ac2f4b4caa6f1a98c7470acad94b82e2e2d8", + "logical_root_ids": [ + "asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1" + ], + "physical_candidate_id": "asap-explain-v1:physical:f2b4e5a7eb528da59a178559563506669184b715bc73b4ac9ed74a1fc77ff22f", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 27061497774794526, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:3fdaf973b5b17f03c0026ce43a74a141e46d0a0502365b420b3336eb05ccb1b7", + "logical_root_ids": [ + "asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a" + ], + "physical_candidate_id": "asap-explain-v1:physical:25e28dfdbf455e1affaccc38531735cba8054b29b8a824ae77c79fdb0ca70e67", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3235857638904289352, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json new file mode 100644 index 000000000..938983259 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json @@ -0,0 +1,38 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:3bee11ead3773ff58e41f9007d248c7134c04ce29d4a4bdef1f3a9050537560d", + "logical_root_ids": [ + "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2" + ], + "physical_candidate_id": "asap-explain-v1:physical:35be3a29d59d5ffe624cb7776f222b0ca5e6083d12e5c40fd0c1aabe3daa577e", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 17891999753521262724, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:a594d656c22382d2710527de66ad2f53f26f0f1b53b31c5979da81a762fc7ebe", + "logical_root_ids": [ + "asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163" + ], + "physical_candidate_id": "asap-explain-v1:physical:9c11f7ce82300d270e53a249926c3a924c9225d7a353b048772ba83672eb45d4", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 3167846180279825593, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:51a3c044f756b1a55a9a392a05448bc602fe03cc0bb08e739654033903cb2a80", + "logical_root_ids": [ + "asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173" + ], + "physical_candidate_id": "asap-explain-v1:physical:ebb74e79b04e6981663aac695ef814ebd80b6f5a2345b97b3be43019fa11ce05", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 17637043547591721229, + "total_cost": null, + "unavailable_reason": null + } +] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json b/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json new file mode 100644 index 000000000..ccb2b4144 --- /dev/null +++ b/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json @@ -0,0 +1,98 @@ +[ + { + "candidate_id": "asap-explain-v1:candidate:a327bc875dc0442d14ff542121c4dbae359d13824d2f1e05cf7a14d8d7a6c931", + "logical_root_ids": [ + "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b" + ], + "physical_candidate_id": "asap-explain-v1:physical:37dec2c54420e8acdb1f6b425d0abba0cda66ef485eaa1e7a01b8d7011dd5066", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 14733843382488271694, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:b9e7353b08881f81af8934010b159498e31e7842ec5a3a2a672c5b1f41837dab", + "logical_root_ids": [ + "asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb" + ], + "physical_candidate_id": "asap-explain-v1:physical:7d7f051f253b853bd6a092b38e1ea274fda9465ab7540f0bc06a7af618282e8a", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 15833270860732361489, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:60a26ce929f7e27340ebd8555bba5b691e41eb0d57d6a730d69735baa6720476", + "logical_root_ids": [ + "asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec" + ], + "physical_candidate_id": "asap-explain-v1:physical:6ec1a661f1ddc81ab2b7c771ed6ec852332aefc8d3e7827a3551c88dda52598f", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 5379663311087285901, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:1660105b2e06cd9a9f498679cb2179aab28d2d3a674d3990e76e80cc0450694d", + "logical_root_ids": [ + "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:a6ddc5cbfd0d2f2b509df334546e3e21f276ac4a1e1e54ab15d3b919e088bf3c", + "logical_root_ids": [ + "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:601ebe163e70ba24555540e00da90a72d682308b06cc53215f610dd6412a52c5", + "logical_root_ids": [ + "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65" + ], + "physical_candidate_id": "asap-explain-v1:physical:c4f2aa987a95e97b99f6f5089af4b78f0f4d4c8d28f121321398c738c3f125ce", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 11938117179177087264, + "total_cost": null, + "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:17dca7f80f586da96d29b00d6655e70cb4e3a253938d65efd838318e9f425a08", + "logical_root_ids": [ + "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + }, + { + "candidate_id": "asap-explain-v1:candidate:0658ec7508f74f5c5ad81379a01ac60dff7cd5adcd52e589a6c35b51bad75dce", + "logical_root_ids": [ + "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05" + ], + "physical_candidate_id": null, + "identity_unavailable_reason": null, + "status": "bind_failed", + "plan_id": null, + "total_cost": null, + "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" + } +] \ No newline at end of file From 2f37af598490e8e3d61f4fad4db315796897a2b0 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 02:10:35 +0000 Subject: [PATCH 42/80] test: check semantics for every local candidate placement --- control_plane/tests/issue754_level1.rs | 33 ++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index bea07025d..45585df96 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -330,7 +330,7 @@ fn assert_native_grouped_rate(plan: &CompiledPhysicalPlan) -> bool { stored } -fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { +fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option { if name == "topk-rate" { for dag in plan.query_plan.selected_dags.values() { assert_rate_sort_expression(dag); @@ -394,6 +394,28 @@ fn assert_selected_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Date: Mon, 28 Sep 2026 02:25:46 +0000 Subject: [PATCH 43/80] docs: scope current milestone to synthetic selection and execution --- docs/design_docs/planning-test-layers.md | 81 ++++++++++++++---------- 1 file changed, 47 insertions(+), 34 deletions(-) diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md index acc004e77..2b844814b 100644 --- a/docs/design_docs/planning-test-layers.md +++ b/docs/design_docs/planning-test-layers.md @@ -1,37 +1,50 @@ -# Planning validation: separate contracts and evidence +# Current planning and execution validation -Audience: implementers and reviewers. Each PR proves one contract; a downstream -pass cannot substitute for a missing upstream check. +Audience: implementers and reviewers. -| Layer | Input | Assertion | +The current scope is a complete deterministic path from a workload to correct +execution. Backend uses explicit synthetic prices for candidate selection. Online +ERP collection, feedback-driven replanning and deployment switching are deferred. + +| PR | Input | Assertion | | --- | --- | --- | -| Level 1 (#728) | workload and declared capabilities/accuracy requirements | Every exposed supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions | -| Level 2 (#742) | same candidates plus synthetic complete quotes | Ranking, cost reversal, infeasible/missing quote exclusion; no claim about real costs | -| Workload statistics | ingestion observations, query history and series observations | Scope, units, observation windows, freshness and missingness survive into demand | -| Accuracy evidence | sketch error evidence and query requirements | Only applicable evidence admits a candidate; observed mean error is not a formal guarantee | -| Resource measurements | measured operator CPU, memory and storage | Correct units and work multiplicities, shared work counted once, provenance retained | -| Execution correctness | installed physical plan and input data | Results, stored state, recovery and coverage; independent of selection quality | -| Level 3 (#759) | real workload, applicable accuracy evidence and measured resource costs | Accurate results and measured selection quality under a declared objective | - -ERP means Error–Resource Profile. Workload statistics describe how much work is -requested. Accuracy evidence constrains which candidates are legal. Resource -measurements price feasible candidates. Synthetic prices test the selector only. - -## Evidence required for Level 3 - -Record the workload identity, observation interval, query frequency, accepted -sample count, distinct-series scope, implementation revision, machine, sketch -parameters and evidence timestamps. Preserve missing/unsupported dimensions; -do not replace them with zero or relabel analytical coefficients as measured. - -Freeze planning inputs before the evaluation interval. Measure each feasible -candidate under the same workload, horizon and resource objective, using repeated -runs. Compare predicted costs and selected-plan measurements with the measured -best candidate, reporting uncertainty and selection regret. Validate results -against exact execution and the query's accuracy contract. Evidence from the -same samples used to tune the model is not independent selection validation. - -Historical differential runs establish execution correctness. Historical benefit -runs against another engine establish only their stated performance comparison. -Neither establishes Level 3 selection quality. A real-evidence run with missing -inputs must be reported as incomplete, never as a synthetic pass. +| #728: structure | workload and declared execution/accuracy contracts | Every supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions | +| #742: ranking | same candidates plus synthetic complete quotes | Selection follows costs, reverses with costs, and excludes unavailable candidates | +| #775: execution | workload, synthetic quotes, finite fixture data | Select, install and execute the exact physical plan; validate results and execution provenance | + +```text +workload → Planner physical candidates + → Backend selection with synthetic costs + → Deployment Plan → data plane → checked results +``` + +Planner owns computation semantics and physical candidate construction. Backend +owns deployment selection and binding. Serving loads the selected typed plan; +it must not silently re-plan it at startup. The executor's existing operator, +shared-producer, window, bound-SDS and recovery tests remain part of the baseline. +Synthetic pricing does not relax query accuracy admission or SDS identity checks. + +## Synthetic cost scope + +Prices are deterministic test inputs, not resource measurements. The execution +fixture quotes every component of each compilable candidate. A candidate requiring +external execution is marked infeasible for the local-execution fixture. Backend +selects from that inventory using its production quote selection path. Retain the +quoted snapshot, selected plan and installed plan for inspection. Contract tests +must reject missing prices, a changed cost-model identity or a different installed +generation. Human plan approval remains a separate review. + +## Deferred work + +ERP means Error–Resource Profile. In future, offline benchmark evidence or online +measurements may inform candidate costs. Query-time merged sketch statistics can +supply merge/readout resource observations, but do not alone establish accuracy. +An online loop would additionally require valid observation scope, update policy, +replanning triggers and safe deployment replacement. None is required now. + +#776 (statistics), #777 (accuracy evidence), #778 (resource measurements) and #759 +(real-evidence selection audit) are follow-up PRs, not prerequisites for the +current #728 → #742 → #775 path. Their contract tests are not live telemetry or +production validation. Independent measurement correctness fixes may be reviewed +separately. The broader real-trace experiment remains deferred; its prior CPU +objective is not a gate for the current fixture execution milestone. From dcddbfcf82f7bcc3172d12277e3c94b4d082eb19 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 02:35:46 +0000 Subject: [PATCH 44/80] test: validate shared-query ensembles across physical candidates --- control_plane/tests/issue754_level1.rs | 87 +++++++++++++++++++ .../tests/support/issue754_workload.rs | 46 ++++++++++ 2 files changed, 133 insertions(+) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 45585df96..cd9f9b0bc 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -890,3 +890,90 @@ fn issue754_queries_have_valid_physical_plans() { } } } + +/// Ensembles retain every query and coherent shared producer bindings in each +/// exposed workload candidate. This does not claim exhaustive joint search. +#[test] +fn ensembles_preserve_all_queries_and_shared_output_identity() { + for (name, cases) in workload::ensembles() { + let (request, env) = workload::ensemble_input(&cases) + .into_physical_compilation_request() + .unwrap(); + assert_eq!(request.queries.len(), cases.len()); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let (_, admission) = + compile_candidates_for_pricing(candidates.clone(), env.clone(), QueryFrontend::PromQl); + assert_eq!(admission.len(), candidates.len()); + let mut bound = 0; + let mut shared = false; + for (index, candidate) in candidates.into_iter().enumerate() { + let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, env.clone()) else { + assert_eq!( + admission[index].status, + CandidateEvaluationStatus::CompilationFailed + ); + assert!(admission[index] + .unavailable_reason + .as_ref() + .is_some_and(|s| !s.is_empty())); + continue; + }; + bound += 1; + assert_eq!(plan.query_plan.entries.len(), cases.len()); + let mut consumers = std::collections::BTreeMap::new(); + for case in &cases { + let entry = plan + .query_plan + .lookup(&case.expr) + .expect("ensemble query disappeared"); + assert!(entry.nodes.contains_key(&entry.root)); + if let Some(dag) = plan.precompute_plan.executable_dags.get(&entry.query_id) { + dag.validate().unwrap(); + validate_query_plan(dag, entry).unwrap(); + } + for binding in entry.materialization_bindings() { + let reference = &binding.stored_output_reference; + let output = &plan.summary_catalog.outputs[&reference.stored_output_id]; + assert_eq!(reference.definition_id, output.definition_id); + consumers + .entry(reference.stored_output_id) + .or_insert_with(std::collections::BTreeSet::new) + .insert(entry.query_id.clone()); + } + } + let producers: std::collections::BTreeSet<_> = plan + .precompute_plan + .materializations + .iter() + .map(|m| m.policy_fingerprint()) + .collect(); + assert_eq!(producers.len(), plan.precompute_plan.materializations.len()); + shared |= consumers.values().any(|readers| readers.len() > 1); + if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { + let root = std::path::Path::new(&directory) + .join("ensembles") + .join(&name); + std::fs::create_dir_all(&root).unwrap(); + std::fs::write( + root.join(format!("candidate-{index}.json")), + serde_json::to_vec_pretty(&plan).unwrap(), + ) + .unwrap(); + std::fs::write( + root.join(format!("candidate-{index}.dot")), + control_plane::physical::plan_dot::render(&plan), + ) + .unwrap(); + std::fs::write( + root.join("admission.json"), + serde_json::to_vec_pretty(&admission).unwrap(), + ) + .unwrap(); + } + } + assert!(bound > 0, "{name}: no bound ensemble candidate"); + if name == "shared-rate" { + assert!(shared, "Rate consumers never share a stored producer"); + } + } +} diff --git a/control_plane/tests/support/issue754_workload.rs b/control_plane/tests/support/issue754_workload.rs index 159001fbc..935b51e9f 100644 --- a/control_plane/tests/support/issue754_workload.rs +++ b/control_plane/tests/support/issue754_workload.rs @@ -70,3 +70,49 @@ pub fn input(case: &Case) -> BackendLocalPlanningInput { } serde_json::from_value(snapshot).unwrap() } + +pub fn ensembles() -> Vec<(String, Vec)> { + let groups: [(&str, &[&str]); 3] = [ + ( + "shared-rate", + &["temporal-rate", "grouped-rate", "topk-rate"], + ), + ("shared-quantiles", &["temporal-quantile", "quantile-ratio"]), + ("all-ten", &[]), + ]; + groups + .into_iter() + .map(|(name, names)| { + ( + name.to_owned(), + suite() + .queries + .into_iter() + .filter(|case| names.is_empty() || names.contains(&case.name.as_str())) + .collect(), + ) + }) + .collect() +} + +pub fn ensemble_input(cases: &[Case]) -> BackendLocalPlanningInput { + let mut combined = serde_json::to_value(input(&cases[0])).unwrap(); + let mut queries = Vec::new(); + let mut evidence = serde_json::Map::new(); + for case in cases { + let wire = serde_json::to_value(input(case)).unwrap(); + queries.extend( + wire["query_workload"]["repeating_queries"] + .as_array() + .unwrap() + .clone(), + ); + if let Some(items) = wire["implementation"]["accuracy_evidence"].as_object() { + evidence.extend(items.clone()); + } + } + combined["query_workload"]["repeating_queries"] = json!(queries); + combined["implementation"]["data_snapshot_id"] = json!("issue-754-level1"); + combined["implementation"]["accuracy_evidence"] = json!(evidence); + serde_json::from_value(combined).unwrap() +} From cf9d0770f4fef116c78352dac9966f67dd57d77f Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 02:42:45 +0000 Subject: [PATCH 45/80] docs: specify candidate coverage for query ensembles --- docs/design_docs/planning-test-layers.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md index 2b844814b..f8ed73bab 100644 --- a/docs/design_docs/planning-test-layers.md +++ b/docs/design_docs/planning-test-layers.md @@ -10,7 +10,7 @@ ERP collection, feedback-driven replanning and deployment switching are deferred | --- | --- | --- | | #728: structure | workload and declared execution/accuracy contracts | Every supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions | | #742: ranking | same candidates plus synthetic complete quotes | Selection follows costs, reverses with costs, and excludes unavailable candidates | -| #775: execution | workload, synthetic quotes, finite fixture data | Select, install and execute the exact physical plan; validate results and execution provenance | +| #775: execution | workload, synthetic quotes, finite fixture data | Mutate quotes to select each admitted candidate, install and execute it; validate every query result and execution provenance | ```text workload → Planner physical candidates @@ -24,6 +24,19 @@ it must not silently re-plan it at startup. The executor's existing operator, shared-producer, window, bound-SDS and recovery tests remain part of the baseline. Synthetic pricing does not relax query accuracy admission or SDS identity checks. +## Workload ensembles + +Each layer tests the ten individual queries plus three workload ensembles: +shared-rate (temporal-rate, grouped-rate, topk-rate), shared-quantiles +(temporal-quantile, quantile-ratio), and all ten queries together. Structure checks +preserve every query and validate shared output identities. Ranking checks change +prices for whole workload candidates. Execution installs each selected workload +once, ingests its fixture once, and checks every query in that workload. + +“All candidates” means the supported inventory exposed by Planner and admitted +under the fixture's contracts, not an exhaustive Cartesian product of hypothetical +query plans. Binding rejections remain visible; prices cannot override them. + ## Synthetic cost scope Prices are deterministic test inputs, not resource measurements. The execution From 81fa7c55dcd2e7ba2c300a29c4759708bb77e7b8 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 02:44:53 +0000 Subject: [PATCH 46/80] docs: export ensemble physical candidates for human review --- .../issue754-human-review/README.md | 3 + .../issue754-human-review/ensembles/README.md | 15 ++ .../ensembles/SHA256SUMS | 41 +++++ .../ensembles/all-ten/admission.json.gz | Bin 0 -> 4930 bytes .../ensembles/all-ten/candidate-1.dot | 47 ++++++ .../ensembles/all-ten/candidate-1.json.gz | Bin 0 -> 13965 bytes .../ensembles/all-ten/candidate-11.dot | 125 ++++++++++++++ .../ensembles/all-ten/candidate-11.json.gz | Bin 0 -> 23582 bytes .../ensembles/all-ten/candidate-17.dot | 137 ++++++++++++++++ .../ensembles/all-ten/candidate-17.json.gz | Bin 0 -> 23500 bytes .../ensembles/all-ten/candidate-19.dot | 126 +++++++++++++++ .../ensembles/all-ten/candidate-19.json.gz | Bin 0 -> 23505 bytes .../ensembles/all-ten/candidate-2.dot | 135 ++++++++++++++++ .../ensembles/all-ten/candidate-2.json.gz | Bin 0 -> 24088 bytes .../ensembles/all-ten/candidate-21.dot | 120 ++++++++++++++ .../ensembles/all-ten/candidate-21.json.gz | Bin 0 -> 22361 bytes .../ensembles/all-ten/candidate-25.dot | 153 ++++++++++++++++++ .../ensembles/all-ten/candidate-25.json.gz | Bin 0 -> 27269 bytes .../ensembles/all-ten/candidate-3.dot | 55 +++++++ .../ensembles/all-ten/candidate-3.json.gz | Bin 0 -> 15618 bytes .../ensembles/all-ten/candidate-7.dot | 125 ++++++++++++++ .../ensembles/all-ten/candidate-7.json.gz | Bin 0 -> 23265 bytes .../ensembles/all-ten/candidate-9.dot | 125 ++++++++++++++ .../ensembles/all-ten/candidate-9.json.gz | Bin 0 -> 22824 bytes .../shared-quantiles/admission.json.gz | Bin 0 -> 823 bytes .../shared-quantiles/candidate-0.dot | 40 +++++ .../shared-quantiles/candidate-0.json.gz | Bin 0 -> 7512 bytes .../shared-quantiles/candidate-1.dot | 15 ++ .../shared-quantiles/candidate-1.json.gz | Bin 0 -> 3237 bytes .../shared-quantiles/candidate-2.dot | 30 ++++ .../shared-quantiles/candidate-2.json.gz | Bin 0 -> 6777 bytes .../shared-quantiles/candidate-3.dot | 25 +++ .../shared-quantiles/candidate-3.json.gz | Bin 0 -> 6231 bytes .../ensembles/shared-rate/admission.json.gz | Bin 0 -> 2026 bytes .../ensembles/shared-rate/candidate-0.dot | 54 +++++++ .../ensembles/shared-rate/candidate-0.json.gz | Bin 0 -> 12699 bytes .../ensembles/shared-rate/candidate-1.dot | 19 +++ .../ensembles/shared-rate/candidate-1.json.gz | Bin 0 -> 8532 bytes .../ensembles/shared-rate/candidate-2.dot | 44 +++++ .../ensembles/shared-rate/candidate-2.json.gz | Bin 0 -> 12094 bytes .../ensembles/shared-rate/candidate-4.dot | 45 ++++++ .../ensembles/shared-rate/candidate-4.json.gz | Bin 0 -> 11860 bytes .../ensembles/shared-rate/candidate-5.dot | 72 +++++++++ .../ensembles/shared-rate/candidate-5.json.gz | Bin 0 -> 15535 bytes 44 files changed, 1551 insertions(+) create mode 100644 docs/evaluation/issue754-human-review/ensembles/README.md create mode 100644 docs/evaluation/issue754-human-review/ensembles/SHA256SUMS create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-1.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-1.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.dot create mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index dd683531b..da8ef553e 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -1,5 +1,8 @@ # Issue #754 plans for human review +The [ensemble exports](ensembles/README.md) cover shared-rate, shared-quantile and +full-workload candidates without prices or a selected winner. + The `candidates/` directory contains physical plans for structural review. No human approval is recorded. Level 1 now exports candidate JSON/DOT and per-query `*.admission.json` reports before pricing, including `bind_failed` reasons. It diff --git a/docs/evaluation/issue754-human-review/ensembles/README.md b/docs/evaluation/issue754-human-review/ensembles/README.md new file mode 100644 index 000000000..7f15bfc82 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/README.md @@ -0,0 +1,15 @@ +# Query ensemble candidate exports + +Generated from Backend `cf9d0770` (test code `dcddbfcf`) and Planner +`176c1bd565e0c400f9a35996c2bd65de32475e72` using the Level 1 fixture contracts. +All three Level 1 tests passed. These are structural exports, not cost selections +or human approval. JSON files are gzip-compressed; DOT files show each bound DAG. +Admission reports retain rejected candidates and reasons. + +- `shared-rate`: temporal-rate, grouped-rate, topk-rate. +- `shared-quantiles`: temporal-quantile, quantile-ratio. +- `all-ten`: the complete issue-754 workload. + +Review query roots, dependencies, window contracts and shared stored-output +identity in each candidate. Level 2 separately prices whole workload candidates; +#775 installs each admitted candidate and checks all its query results. diff --git a/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS b/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS new file mode 100644 index 000000000..f9117982e --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS @@ -0,0 +1,41 @@ +3979e68d39e5a99f1567d5f7562261b8d647fe04001412201a9267c6bb19ecf8 all-ten/admission.json.gz +e1c3fbfa2d50fc51cefb5c01f00f025edc334a42020b0785b8703f07e9d9cf7f all-ten/candidate-1.dot +571c9392573948e262c918b934b4acb6c63d37ddd4844f13b149f93460622e3c all-ten/candidate-1.json.gz +3b8ab574c085f96a71710fd37166051b6f9f0333d93a3077586c41a72e15d823 all-ten/candidate-11.dot +b449bdcbb7aed36d6f7a2214adb21a770953f1917852e0f8c82949242a9d0dae all-ten/candidate-11.json.gz +7c14f3b7e09854f16aa190abd6764158608bcf6d23211c40d013c4a778514555 all-ten/candidate-17.dot +446879cc8e898b5bdb0f9b266e907fa70fdc0184fadf389b3dfbc001ffff44f6 all-ten/candidate-17.json.gz +64c31a619c7b75d395eaae7970671b498cb5f95fe4c48e7c3784f28de2240b16 all-ten/candidate-19.dot +d249ceefb3fc049f287a18cb5e0b079f85fc4737a966da2313e29f1848f5fe5c all-ten/candidate-19.json.gz +2ec5dc123c8bb73aca63a835de5aa432f4d6f30ec5f35ee828bf783607acd05e all-ten/candidate-2.dot +37e94465f656aed1aabf74da236120b97544755af5dd662ccc9f1a77574988e2 all-ten/candidate-2.json.gz +cbb5191360767a7d674dac969a4439fca93c932cf8ffa8d284285d3bdc9514db all-ten/candidate-21.dot +ff55677eacec789e9a71a0027f6b6d74aa990845c8878d1a7b234fbf5017cf65 all-ten/candidate-21.json.gz +40cf38b48b6839a76e7f5b8a3aedd05b35abe9b792a702f749c3257fdeb6ba43 all-ten/candidate-25.dot +805664cd07d2394b057ce17373054919f78638f83d7ceccaea76f174db52f45d all-ten/candidate-25.json.gz +580d29a8e10d9674d20e793def94ebadacd493ab7ac683e6150c2e2600ed5c24 all-ten/candidate-3.dot +d29e0dbc7d3b778b826f40148ed412630578e8c0c42c4310498d41df9b66024f all-ten/candidate-3.json.gz +d89d81b944ec7e8f67172868ff31cc85e774512466aab0ac786943bb7b6136c7 all-ten/candidate-7.dot +e152e1bca5c4c4d55810d815ab52da30c82d05519e65d15f0558f03e28e31066 all-ten/candidate-7.json.gz +7461b63f21a39804d09bb9f7fca85a11e9793c2bea339a7ed0a7303b5350f768 all-ten/candidate-9.dot +b5fe9ea7a700cb42f4aa7fa2341f0f34f8099f0d9eaee99cd417ce2cd24f4092 all-ten/candidate-9.json.gz +7138d7bf0b4ef036dcc9a98227fcee52ee3ccb2f662fceb462da17cd4a42f41d shared-quantiles/admission.json.gz +2607e6ff164a51e7dffae44677c91d5ab4c6fab0da096f5f105f6df55dd6df62 shared-quantiles/candidate-0.dot +59f028282a0aa9de334c65b134623809235651119edc565c97b7d8b600320b75 shared-quantiles/candidate-0.json.gz +b0c3c4dd6d91e02b2d8b32b07596b3ef92ace3334dd4bb7b39beeeb587529c47 shared-quantiles/candidate-1.dot +dffe7a47de4e5732d4b920b5aafe0d209c72bc8cf92c7fc22c28b752966dc26b shared-quantiles/candidate-1.json.gz +fd56bbdabea3e6d4ab97358a3332fce3349eabf32c6e8401fcd99a813190441a shared-quantiles/candidate-2.dot +e296d25192a91c536ab746e97e48b34a03481bf8b911d1379925d74e04557a35 shared-quantiles/candidate-2.json.gz +265f2c26cc1959271a98427eb152909dceb8978164a3ff7c02f5b575e3cbe75b shared-quantiles/candidate-3.dot +7ad36e082384a836f833b7fc6289a601971368d038d6b036f7f4c42c85bfe040 shared-quantiles/candidate-3.json.gz +5c1bce02cc9cf6212a93a1ffa79bf0a975cfb6e73cfb905fc531371ee6ea0260 shared-rate/admission.json.gz +ac30b1c50cb86b54761679a50229b0ad3955c2c31089dabd918e095e6cc55ae6 shared-rate/candidate-0.dot +1771a2a6b8e55dc2dbc62c686b4a4f760692b7b89e29d0ae40ae13497412ad49 shared-rate/candidate-0.json.gz +6e15ed465f915ede3349a128b824104c0363de529279ae4b20f1e13416c5145d shared-rate/candidate-1.dot +b94cf763a04748b26f637078ca0e9b930f68fd1cc1a151627cae00aa9e7a1891 shared-rate/candidate-1.json.gz +b6c2835d50b5ffcb20611aa5cea186aa5d9fe7c0e6411d43f78f4a88efe616c1 shared-rate/candidate-2.dot +1d131464a7aa249e83f12ff9738d67cd200ac3aad5ba7b371b375ed4db7c2102 shared-rate/candidate-2.json.gz +5b7d5462a2054c3f147070a06f82f6779990fd014311763da20d66b6075a7264 shared-rate/candidate-4.dot +5c8580871019c74d7e0fecc50981247e43193cc2f1949c454ef29d8d18cd257d shared-rate/candidate-4.json.gz +f78c9e6e8775ca9efb9d4b876b5569fb1920cdae1da322f9bfc246c4669355cb shared-rate/candidate-5.dot +ab15209ede04104462d61f5dff4d87a6cf1fb480398c37d276b3e97341f57056 shared-rate/candidate-5.json.gz diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e9d94dd1dd75d3d0da41d81ec48ffb3d3294b4af GIT binary patch literal 4930 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 AO8@`> literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot new file mode 100644 index 000000000..20c1b4474 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot @@ -0,0 +1,47 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d4cb33d8831202506ccd4e6666c66d47629b9092 GIT binary patch literal 13965 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 s!} precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-6"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-7"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-8"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-9"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f717dab9345cac894e9072e978344fb21d8d9c73 GIT binary patch literal 23582 zcmZ^~V{~Rwvo0Fjw$ZVjPC7O^wyifdJMP%Y8{4*Rb!^+VZoa+GJ!hXW?p;6TtXX4e zV%4gro|?oFFd+Xqz`iaz&!X|A;;CNs6@*aWWib`YV7o)DYX!@SU(Y$qre)m1p;x-*k3STHFL+kQ+GSgXj)YQUG?aE>hRW3 zRxBFwA^K2z{N9<*g5^}wOd-ftJAUeOJ-%s(NBVAE8T1nQ3vOw%#1{hy_s;yv@L#(6 z2Ud@dbF)+3UAjImd*G*6_p@#m%+1LCstRwC_ED_;-1Xr_Qo99YveH!!X54Ja2DGV| z?jH!1X0-UxAraMq-g#y(AI`t04_sJexB& zbhg%NSJQZ3`(Ng|eA8=NvyjarPWZPv9Nr$

Hprx*sn9K= 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 literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot new file mode 100644 index 000000000..5cdffc2ce --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot @@ -0,0 +1,137 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a545abfa310f89ae [label="materialization\npolicy_fp:a545abfa310f89ae\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-3"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-5"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-6"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-7"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11909113880704420270) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-8"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + subgraph cluster_precompute_dag_6 { + label="compat-query-9"; + precompute_6_0 [label="fallback #0\nMaintenanceInput"]; + precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_6_0 -> precompute_6_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_6_1 [label="ExactReadout\nSum"]; + query_6_2 [label="ReadMaterialization\npolicy_fp:a545abfa310f89ae\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a545abfa310f89ae -> query_6_2 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + query_6_2 -> query_6_1; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ca3124cb4404a1879a085befbdefc28d7adc42d GIT binary patch literal 23500 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 literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot new file mode 100644 index 000000000..cdea36ee5 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot @@ -0,0 +1,126 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-3"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-5"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-6"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-7"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-9"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_2 [label="Logical\nExactSubquery"]; + query_9_3 [label="Logical\nSort"]; + query_9_3 -> query_9_0; + query_9_2 -> query_9_3; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6f452d54ae4cb3a97c6736499d12acd014302ba7 GIT binary patch literal 23505 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 precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-5"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-6"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-7"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-8"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + subgraph cluster_precompute_dag_6 { + label="compat-query-9"; + precompute_6_0 [label="fallback #0\nMaintenanceInput"]; + precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_6_0 -> precompute_6_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5a1b657d6c50970dd32c974e5e75aa5f8d8111cf GIT binary patch literal 24088 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 t9WF{{R@c*0cZs literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot new file mode 100644 index 000000000..292bf43e3 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot @@ -0,0 +1,120 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-3"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-5"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-6"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-7"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-8"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..92c8f19a0bf35f62f6fba77192b16f665b651f34 GIT binary patch literal 22361 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 literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.dot new file mode 100644 index 000000000..356522da0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.dot @@ -0,0 +1,153 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-3"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-4"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-5"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-6"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; + precompute_3_2 [label="value #2\nMaintenanceInput"]; + precompute_3_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + precompute_3_1 -> precompute_3_2 [label="Input"]; + precompute_3_2 -> precompute_3_3 [label="Input"]; + subgraph cluster_maintenance_3_3 { + label="Planner maintenance operators"; + maintenance_3_3_1 [label="#1\nBound physical input"]; + maintenance_3_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; + maintenance_3_3_1 -> maintenance_3_3_2; + maintenance_3_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; + maintenance_3_3_2 -> maintenance_3_3_3; + } + } + subgraph cluster_precompute_dag_4 { + label="compat-query-7"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-8"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + subgraph cluster_precompute_dag_6 { + label="compat-query-9"; + precompute_6_0 [label="fallback #0\nMaintenanceInput"]; + precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_6_0 -> precompute_6_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; + materialization_9414a19c98bfc6a8 -> query_5_0 [style=dashed, color=gray40, label="reads"]; + query_5_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; + query_5_0 -> query_5_1; + subgraph cluster_native_query_5 { + label="Planner query operators"; + native_query_5_3 [label="#3\nBound physical input"]; + native_query_5_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; + native_query_5_3 -> native_query_5_4; + } + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5b04d26a5664b5731a5b4eeee42fc2017e5d4eb GIT binary patch literal 27269 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 J1P(AD{|EUbr=S1; literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.dot new file mode 100644 index 000000000..5e1b04b49 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.dot @@ -0,0 +1,55 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..616169a42ad9498ee27dcca3b5a545db7fd8d01d GIT binary patch literal 15618 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 precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-5"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-6"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-7"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-8"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-9"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..056fe2b21814d3e8eb764b25483d300a605fd00a GIT binary patch literal 23265 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 V<&xO+{ro+NQP(cMDGM&zzW~3wM4tcv literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.dot new file mode 100644 index 000000000..36569f2d0 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.dot @@ -0,0 +1,125 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-3"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-5"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-6"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + subgraph cluster_precompute_dag_3 { + label="compat-query-7"; + precompute_3_0 [label="fallback #0\nMaintenanceInput"]; + precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; + precompute_3_0 -> precompute_3_1 [label="Input"]; + } + subgraph cluster_precompute_dag_4 { + label="compat-query-8"; + precompute_4_0 [label="fallback #0\nMaintenanceInput"]; + precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_4_0 -> precompute_4_1 [label="Input"]; + } + subgraph cluster_precompute_dag_5 { + label="compat-query-9"; + precompute_5_0 [label="fallback #0\nMaintenanceInput"]; + precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_5_0 -> precompute_5_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile by (label_0) (0.9, data)"; + query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_2 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; + query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_2_1 -> query_2_0; + query_2_3 -> query_2_0; + query_2_2 -> query_2_1; + query_2_2 -> query_2_3; + } + subgraph cluster_query_3 { + label="QueryPlan: rate(data[1m])"; + query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; + query_3_1 -> query_3_0; + } + subgraph cluster_query_4 { + label="QueryPlan: sum by (label_0) (data)"; + query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + } + subgraph cluster_query_5 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_5_1 [label="ExactReadout\nRate"]; + query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; + query_5_1 -> query_5_0; + query_5_2 -> query_5_1; + } + subgraph cluster_query_6 { + label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; + query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; + query_6_1 -> query_6_0; + } + subgraph cluster_query_7 { + label="QueryPlan: sum_over_time(data[1m])"; + query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; + query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; + query_7_1 -> query_7_0; + } + subgraph cluster_query_8 { + label="QueryPlan: topk by (label_0) (3, data)"; + query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; + subgraph cluster_native_query_8 { + label="Planner query operators"; + native_query_8_1 [label="#1\nBound physical input"]; + native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; + native_query_8_1 -> native_query_8_18446744073709551615; + native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; + native_query_8_18446744073709551615 -> native_query_8_2; + } + } + subgraph cluster_query_9 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_9_1 [label="Logical\nSort"]; + query_9_2 [label="ExactReadout\nRate"]; + query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; + query_9_1 -> query_9_0; + query_9_2 -> query_9_1; + query_9_3 -> query_9_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d85338e4e0e614af92076065c656e5390ea66ac3 GIT binary patch literal 22824 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 OjxB^xT<#GL+W!ErW?WnV literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..f7a00c3238752d4c083a623a8faf49f761bb262f GIT binary patch literal 823 zcmV-71IYXziwFP!00002|IJnHYFkMR{okhu`Q5^3B#lOSl~RIcB<&iET^gsfEc@;& zw`pNnN+F?T4TkGGV;y~*bM*Gr&COr+y}7yFcJhPUCGHP?dv|kd5BB~|e0qPh!|BaO zxch#7XR&duVWcvV2rZ^~AZdL-wo>M9F%fr&@N6q%w!I{B_w*gNufHN5&wm`Y9q&J! z&zAyyDAc!KPHz5-e!X)ybDPW9Gc8GSG$C-Bb2>A2q&ad@Pi}Mg#@LR!NU>7YfFAt` z_($PAe6oy&$lEjfZXoWPl6i7pt4SIMfoesj8JGf)l--fD55D~p{oPY_@BjS#@TI(; zHTK)ZyF>%q>`K^smC|`qBc9p3e-}Ptam{I5N%H1`g-s%+!#~2AVWL1Y|u03V7(ISI-)EN8TR1FMf z5Pm-0U_d~+GKX)KM!?y+4r%pXrtisAJ)uxu*|wVX6$)DdRVhvW#b^rA;b!`_lSC-*W<`$ySXehN~F2#x|-SjZ33riT9~j9oS-D z43j)m{mMtCncBC(ub^9JELF48m;;!~J$^ggmc_)OU)`iq?Q_p1J4?Tc_?n9Vv!&bGF(Pr2?keyX&<#-+nvYs@B2HSNWLcaNvPiW2p5h2vK^gF@&tx9bt(9ij?*3VO>^l9iC0M(tMVe zl|$B6V_k^lE4HQ#vqF+h%WA0?%}HeO5H9-@P|>v3hX2o(sWq%HxRJ`BCr4{UGCM8s z2rb-LC9Jm5hhRCbkt`TGXL!++?HACE5rtdzp$#a9gW4xAq1&r>{{ZOV7A3w3007e@ BrsMzs literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot new file mode 100644 index 000000000..a401ecc7c --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot @@ -0,0 +1,40 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-1"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_1_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_1_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_1_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_1_2 [style=dashed, color=gray40, label="reads"]; + query_1_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_1_1 -> query_1_0; + query_1_3 -> query_1_0; + query_1_2 -> query_1_1; + query_1_2 -> query_1_3; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b20a58b20c71676902cc2e59f26b0e15045ad158 GIT binary patch literal 7512 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 X6G6>>&HY@M$m;(8A~4Y$0%!mLy`)aW literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.dot b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.dot new file mode 100644 index 000000000..9d854f025 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.dot @@ -0,0 +1,30 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-1"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_1_0 [label="Binary\nDiv", shape=doubleoctagon]; + query_1_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; + query_1_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_2688e3e2857315f7 -> query_1_2 [style=dashed, color=gray40, label="reads"]; + query_1_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; + query_1_1 -> query_1_0; + query_1_3 -> query_1_0; + query_1_2 -> query_1_1; + query_1_2 -> query_1_3; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..35bbdeefc4cd9dc030f1295648af0c51cf3a8d69 GIT binary patch literal 6777 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 b|5bM)t precompute_0_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: quantile_over_time(0.9, data[1m])"; + query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } + subgraph cluster_query_1 { + label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; + query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..589135e3b41907006535b7d4f150193f324f5969 GIT binary patch literal 6231 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 B5_|vv literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..883e33e19e93139161cd39f250656d34c6e27176 GIT binary patch literal 2026 zcmVH_pIDz&#RZli#Rpba2J~;c;NUPdFZMsMXSBX z&Cl;wygRTNfm#Ab-TT(A6cTSpXnF)VWs+6%N z(P%!6M;cLR5{1W*ob1EGzcsz;Xq2o=%_$bo+A?;Ra$Ae~lq3TiVUsYis)6$;l7({5 zwFawvX8K4|ny2c0Bw=x>zAV&Ij8UwmSwpf~3!dErJ1DdE?Mf~QY}any&Hn3$i}&#Q z@%--UeJ*Yv2i{V33lTC)6jqI^XvMB@PHXVgk+R7!tG#%o#L}`<;>u|eP5yZGZuZL$ zm;L4O<@KO%bbqII=PysL=i>qEAFg+I9|oQ;dbw^vTYuDIx^}!$c#Mz8I&J(=hL4ehy~# z)wxs`UWIatm}}JqgeOa79mk=E()|aOyz_}^ay1oL3k{>HGr7T#MYlY& znVWm&84Jp%t2cOTg=T9jPsTe76Y75{mMq}XSJpBMK~&d}R68k2PXpFrRq5Vm+fIq# zNl-zG&(HAp+->?7igoQd$uh#CHc}tmlE%!%%gmw3tY{g=khfiTFG#Y|WmZM0O7M{B zD~UCXdV`Z~u=RQL@y*2=h9XBph@rq0q~^($#uCvyO*;aT)$0IjQ1z&-ZuL498;r6I z8G16!G#nC1h-^-!c||u<2CuLN13fb@*uPTyF!jy<8SEb{zoj*K0>J)#cZJDOZqh&aD)YQn#O;T9xw6Xu@fYBO}&^mJ_@4i;Ei3{XgFxhRkr_)@3zyb`$R1p~)(jcP< zPeF4I^Ao8uyf55*Pf(P}15k31>ja!SzXzJ1qxJaU30~{T*Nfxz@^HP}?v4lFEq}N> zKEjo}Ke)qQHe2yp-{8G{gr7FMarS$~Mka>G{;(WHfQ8zO>(cZS4w;%NWS&Z|?-R&Mu$5$u42heAXo5%YHz3eeNUTnA@PrH+!uXjLv zz6Rt^hkC2#b12V}WL7OT#`}ng<@_Qm*ynFGY+(K#Zd|m+i z`Fek^7=RBfX!ARO4@dw%UG}lZ0G;!C()qZ1b=4Ep+5ImY?QgI_z6Q`iuF8-W=(rh#rVaC9Yp&G1pzuc+!ph5fH7^7^hK7>4 z^Y~6-hn-JW6um{!8ECwCERu}Y2tA1pPpUY$LaMH<>Vzd88rp}mpo94V`yT>(BQ$KJ zeHF-fpVoQ%QU+wf$JCX3LK2i36M@QR8PGEc;DDQ`dFuE2g<_!5N5N}lYqOhh8eVMm zOwuK1{L(VoR^ydP5i`%3j3h}kUUXdg*xtpezDNYc)8N$P7NSfr}kQ#Y#)rABH{U~KsJ zYQm8lV^D~ZB2%_x+01yawL=DwRmd7L)f!z^-u@?HSjx#cm%1YLAFzKR>_7ebFCnSo IOY0;60OC~oN&o-= literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot new file mode 100644 index 000000000..4857bca8f --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot @@ -0,0 +1,54 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-1"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + subgraph cluster_precompute_dag_2 { + label="compat-query-2"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } + subgraph cluster_query_1 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_1_1 [label="ExactReadout\nRate"]; + query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + query_1_2 -> query_1_1; + } + subgraph cluster_query_2 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_2_1 [label="Logical\nSort"]; + query_2_2 [label="ExactReadout\nRate"]; + query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; + query_2_1 -> query_2_0; + query_2_2 -> query_2_1; + query_2_3 -> query_2_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..ec5902e2d777fd064424b979f438ac758170d6b8 GIT binary patch literal 12699 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 literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.dot new file mode 100644 index 000000000..468ed17cc --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.dot @@ -0,0 +1,19 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } + subgraph cluster_query_2 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..079e5481f21d085ccfb1ba587d6a2c2353e225b8 GIT binary patch literal 8532 zcmX|@Ra6{WkVSEKcL)&NA$a3XfZz?mp>cPDyEN{B;O_43ZUKV3YvaK)dGF24{Wz=Y z+NzJestzR>3F@B(^XEc;Eq0$b(HByKg@PK5-U>)8wV6q>aIX`(GHTh$9ugsf52P+* zYD+F_EUdh&SMBu~^x5$lLn!JjkxKYpe%>zCXRlF|jKkg+fs1YSV{1$2S4#R8IA1TK z0`nK-iqEH>;aGS~z-K#tHdYvC#aND-p1S$sdFx``mAzb${pea>!I0S)YRb**N1Scx2A629p2pISNNPY=qw>?~OCs5xVaq3-9Mie0&yq7QxxqK#$ zX0yy7^tz2-aA_}fm?$RAdRW}Z1Sihz0y+u1Zy0(!G}$e$CqUSQbj^gkuww8 zAIhm&Lj^0066^5hch%3Y1sZ=r3pxCPh7sm-_bvPM>*;ggkBW#A=t#h&IklUfgwEj4 zUJwOlWRhSkeZQO|BHK&ypnGyuvKcj+fSXBQC{p#RMUCvS<=p4l^Vs&oNHuweJ=$&ls7*XXpr(aSdv^(B;I@kaz`jLzM%Ws& zR0S7wSOd8^>Na#qd%AG=yf%=Y@QE@`$aYJ{eEb)0-jvf~mE}JOo*Z1e z%Kf`HD^H7qnuI581Ug!MoSu~1eHx;s2df7i5PaTrdXRb*uv`$B!`*IO83yFh{Ug6M zh~U&QtXy0_!!d$9Hg0Bm?Li#rSB=HG6gBP1zhr;AsPeephj#gCPDqed7Pu2(5X=h5 zkcY{-J9$hN2KdrcJg1Tbsi8CSA%Jn z^wGjD1_u$(qveEMAYSUf%dJ$nX(Zf zXruGb&O9b1>ywYoC*!6?KgxG}TSm~X_0daQ<`$(#M%s*c-%REJ0s+X2{_8AjtC0u5 zT>?!lY5haMw;~!Cj?%b=K}TASTdZQJUBk=3!TYJ4Ul7_cNOP)>WK+&R{ha$%e^v5 zzbXtugpJxH`FI66uD8VD>=`>Uu^ZA>Zx4%xiN;)$Oo&PMD5&-8{k6t=^SKsLD*_J7 zl}+hB)@9U)La91pcf@$2725lK278c$+y6)XHKW{ zXxV7bSV`ZtYyRAi1Zz&C67&jtEHUa54bgD+=YxTJLLp|@F~4bDyJipdd=e^h9m-X# zLC5XF&N~NXvVcsKCHL3SVhpG6=sk$M$Yh7+;#l8;ic~GbzmwKdjY<&=$7Yr5o_zi_ zK51S@Z%h3;8(RPzl)B<6D9Z}X%lyVmqjNsHFhP9?M$K%D+cvv?rxAEm=hWMmJ~}I=HEG~_D{of=maROI z#p=h~_<{I*x$p!W++W2u0<2frIxF6U@F&bmPC9;*ZMNKaEaMRHc%pMWC_aT&ba*{^ z`QlTJrKUN1=YjYwLtjBJH6(-xtXamnF3G&!nlq4y*b#7_!KE9Svt|NZb}1 zzFS)*uq6Db(bIBY;k3hnJXMa8+O!L;|>-cnS$}^s0VW5 zz|NW;f%P2N;S)#Ex3DItI6-f zS4_GfelTw5q>+J}h4!aj1a4oREm4%ZM_?qS*p>mh-=5R<_`OiD6SVrWjOfzrkx)}- z{aWYtn3n5wa^I9GG;*@r=7&HTmM|?ipuD5WxWdQ!tOyRQb(yf`!g~%9EMlqE{wH_O zZyitew(D{DPuaryzNfpbqLE6k=fI+Vj;(toFd9@Jq2-cB8D?)v;taHQRKNdiisYg} z0z!|Q_4xSnlIXkDrswqH!C+F!4}f82>|YQLK5Y&?cx z^S43|ZGwiqnWrYaZvkvT%fVGkfg^vp^q^S$UPt3jpMf*#7|O47x0`j|gdy-PXyHvl zR2{y!pDN(KMVDN=l(jaexCXyrv@Q_vzH}ykJ)S<^1!?(Za2;&{ba=a?tVt8>a1!V90#Ls$-0* zP_$=i-GWm=gmapsGQbci?J4=`T+P>={@jJBmGVg(?eYi2n_?;g_pw{0SDK*qF^Bq)n^8u*F|#Yso1x>vn2tZ)5C6U%+^u2Azq53L#myino=My*I=6y zMolpb?-gTBsSjBtIQo&z%?LTfVPWlx{C9;nsU7L;ny36G!Zw~OuR&cy-kDykt5>0w zAWkkT;wmoB>R}SC>FyHgMAY}eXqDKyyB~+Oc!?jYVZN&E)G-ibXG-&+_7e#=FHcEeybHN;OTdIL8{EBisbfEKwf1u* zI2|I`n+XZSI|yUU2jGg{o06>ZII0hmFF6r~#&PeoI*nftk-1NX8ndBwsZWOHc}KNz z{F|v-BDQrRtCp(h5DmvluBR7O*V+-F?uJsk(*&3Wee+|%l@Te)la)I~deW+v+`{~;xTMNh>@gO}@pCm@0f#DmuTh=H#| zXM3dPi$QnZuou!yqqp1tL%b&xJ?Th@>npABTAcv2#Q?ey&@0Ladhfl=`9+{f`Ns#0Qb9$j7YJVv`-sR}lGd)4{PVO6mP)KanF9c z6qo-r1zp^Z`!{5NiAd1zn|)5d{G!{_Bw4qg2Sj%XcHZgkZbMlAgvRwfqTE7xUE{+-ls!yQ#4B6y% zHif=OeFmB9P)ayfFYVD-L0XJoo<^46_{ZuGX|#B7kNWxDat35&&klV~iF31{-ete_ zoUGE9Xqry6T(xB}Bxpu@!z5JH!~X$JNBg7ufzqEffr`^SNUg>ebAujU=P$mGonAl& z*C$y4a@J|9dO81#$&*U_7|orY_XB3duBL>Y;Boh21=B**mj{)+d{798zxB7(G1*kp zb?E{uWQ9Co!^8l^&4pIM4#}*_c>fl`6zvTjz2#sPv#6&AhsNjpPJYMmD`*y+pUgaL zws>6iBd_#r8-?VnG?S?ab<_*9wYvJcFi#gjVKGJOlB$kc=kAYpEB2O$%N+NO@*N=r zhgK1V_lL$xKzT7` z%JBNdeD0ru{$}!cvY#r`LNUtGffo17coH1>g0i?qdlF`)GATGk70UOamiun%cN=m; zr)4_mniXm-&!)l#YTGMl4XM>XAy4TFzqBUUYtD*KSHGZz;j9J!GLrJmTnS3q0&M%f zHkNGyN;wHNaEy7#Il=wz)mevcySv(UZcZ-htM)>Ilbqxm2}??ZD5Ss8<5u5QjcMEGMOx^ujaT@z~`zYYy=jx9ev zKD!&1BB0)bD_&penJ0RX-ru<=fln)|_O%VPlqDbkFo>~UP^jwI0h@I-H8QhQ`y?4U z>cQb(uCNq(%!efz!Wz7IN<5K<`Xw10wy~l}Ckm$h(q*8L`Q-=PdI{AG190Z`>#tT%}{5($%7}Ln6NEmtxWoM5MdO^(r#h)ud*w5z+qWBv(-P5k8 z*yxDE6ZC?aCXBQm?OcPwHo~M)FwW&MtZ}+eR-iBBxAXKKn78wXJCEv;kWDj3aHn-^ zXy)*wHibQj(BgR9LB>7Tl&P0_6$^Jpe~lH28+op_ZS}W#Z(rg)yY9#5GUvVx%@sfe zd__=;*H$0PSvy*_-ekJj5bc>2<`6A2osL@|1)Yu(Zm8h&SS*rJqNdA2wtnK`bt$vl z_Fy)%&rTiHw!xtj3HGVQ4TRs3aY~Jy1{)ptLv;inBPJB$RZUs~JaMocGAb|BQ0-tzvybm zUOWdzAT(>;fAY(PbtYhf@{~8k)eMX+&~ACz((u*|*Ig8?y;JNzkacN0tH7Rpn!BiN zOGeg2B|-whI?pbJd>U=)X}O@HH9m)TB3nya|G(v(KXz z7(0q))+Q>2#5lNUBO-7+RJR3a)9qhwYw@f`=OPmqFacpj@)oU=wAS0_lerpYe8Cne zP(`8^nDghbB|}O&2U8cHMPAq&p8stB{)6Lc)WH%huRg{)e8yTg#*#xHN^`%b@0GJI zq&=?ReV=8yY*#NxI_K|@IYBaQdhtmO8*|%aZoMDl%DnzP}0iw!Wi?(WqOUi zEzi3+u5-;{rh_b4v6$gTJ#%9_0wq;@lEEfxN^YNY`BQPZtBM8{p!NkUQ7dy*$RIjk z1bY$95^gtXX%lv5wnjvxQrVrj?38{z50i!PV$vIqxCh}$s1@Vtpc~{1!8{Mv8e*oIiUw1-8`EQJ_dQPel(A% zh{47G-p0hOYEECu%^m6G{bWKxo~^Q~uapkwKc%BA zRTiN}FHx4k^tzHoFBH+`g*&o2ni#QTeR5}xl8-d=y#QfUsU^K^#;vRI4 zC5PjcN(Y^1HB;9W>o@=%drv=HN3pxC9b?Mr`>yu0l--Uwu)En;Y5C4n^PPHi?}+&dPpJouU|&5(b*vB?2~YfmWX2Qkv-A$$ z*P9y|kev-0!th|Zp1IgULKbA$?J(Pkq|IMo#$P{bUsiCN6#)4Fuw&^p%5Ym%@D{e@Ds z=+dBNp@loBMxt&E#Zr`a%$E9-o0p3+=MYKk-8 zdr~qtFnDX;EX0mimhmVYoDnH7bHqo&<}Q@!mUy7K@k1mJIEpdHm+v68#g6M6j#~hM z`Y(&<#`eYh(B5;<@OpFAu~8)8*)&R|AksV6a?@)o;?1STnI@x=p zSPn-`-cf*)@V6HWMIrs7EVufiC|+1Xv^Pk3)Ofr_S083fBm`nYbBf&Yenvm%MVQDi z)~CmnshV*vS#U1FeX_CS24uEj^UldInDa}MR+XCW%Gt&a9unYW($uv%NkBzTvC{HV zP6tuf30$g+o7}1o6L}17#}d)DmjWX1&>(enBq@RR-y zrujRvyfL1Ap$89To(SfDfc-WP_SeCx??b|frpe)|M<&D7)Jsp-n9f-=OKr{OLWV5> zz|m7A$@G_zEP21`f}{9%vXhyFe?$dBVWKlwKN=AmeN5Exz4lCHB*G6Sy&H}Dc`SaF zNFzrnp&GF=ftFnUCnhIDVqs5jDMDgl&ax`4ylkTDU$OMA=ao*pi@az4dnjldMSCKb z7&|B@7wuZiK*jkJPV0aRHi*aX?TgY%A+#s|&`R?xbN3cK z%a>UAPZV=ZI`>Z~FW9dW(tu=Pi1Wj@iS}ef6A;g`k<9YOrKX8=`@@5=Uh(E4*u?0s6!}`p4i8Q8h9|=mVby*0 zF{aX__lmryc(%d@tWm!1*5`nLrIGk3-c5=C#y$S8h>>?9ujdquocBO~4dC;cn-!5l z?7eJE+NatZm$P_cx?dSwRm&wfuxI&e6seZdvs(BnZnBJ^iTQ#)BDh{ECsdc`3wn@hf~WLVXk~%qcny5;it9wUkr@KfcuYRLjH1 zyOxhNH91V0hJPpbu=Tv|udRup7s@KM;gv*k{QyIZU_D_VcX}VfJK?(ZpslJ_W9{nD zog2>9gl4-Xrp<(uj{%=PTN5ZRJyHk7)Gd=ek+{nK=IQ&`&4HddNyopgOA{0EP;9!c z<{Fkfz5|zu=%}zJvfTAxu3}B9gh>amQ2riRWQfBinlYhgsR$*Q(KdlN5pL^T$0{jr znEGwt*~;HxOTQcb6;S-u-LKs;VgZ!Hjvo>A&&?0O=Y~Gh zoIxus=CREEbRK*=aF9pR_sJVCHGVbG&6M9`T`ond*WQbEa|-47drFWlnmc9h7>z=) zr3Iz;T;HXA>(yHBzpm==a_bYRxuP5B&3>bay_urPOsh@Q;y+uZC;zXlN~jm7@wRa_ zQ5KpAVH0caX>3x(Y2Vy-D*{}eP4T&jd?lzYmTs#|%1Fs=(5=#;ch1~&M-zj~tUht( z`SnHhQpXEImeho(8c+?HkiE<= zVl9?`-AL9TxyZ^aX?7sXymcPUBV$LId)=xSNyan`gWEMdZvbrrJU!b4*OJq23iLM! z`dYyMtYG1Fom>BjWPfp-ktfQ{)|7${Z?S!UAww1I%`(hNLsFq()_nC9k;M|0kTQ1G?pUaRmR<`n2`Q*mclp$*F>iomD=&%51v1;4NO2 zRUzL9&rzv4IVa%o*##JE9R|0cdq+JzFDCsK`C5{rb@Eeu=|uS>lig2P&Vz={m4{Ui z1Cfa=?-{R>GPVz+6MYfyW<+z6(T}<&We&{DSCup)>@@WGD#>?=s#_!FuhO-{WNIh1 z=O-@bcEk@qlIWDc`YK5ZO8T=J;&Mf@RTg5EB}x^16bpR2s@!x7+(q;AM~I|OF!w^$ zDg_o2`4*Eg5BT5gc@Ii(j=Dk;W{W0-zOz6W5qHe`RcNAweS?I#afHE^x3e!gPx|7M*^e?te4vk#0INurU08ZKN^2BsZ;u%I8~lP_bSo{jaLr-5MQdQm7DHs{9ospj{2GYx({ohT^rJ=C~$47s;xYfug@cdni`up4v%=$YfB~u*(11@)~`1=RLOr z960-tZj}hiVI7hp)l>w=BHCNi%lJv;fdzM4Yyq~N?-w+(FwV48|49%vR_u!SB!-DQ zRzonmpwMHq01l7ohqd(4dB=}L@Vsa+WW|9P!2#jAtHaeF>|lP precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-2"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; + } + subgraph cluster_query_1 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_1_1 [label="ExactReadout\nRate"]; + query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + query_1_2 -> query_1_1; + } + subgraph cluster_query_2 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_2_1 [label="Logical\nSort"]; + query_2_2 [label="ExactReadout\nRate"]; + query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; + query_2_1 -> query_2_0; + query_2_2 -> query_2_1; + query_2_3 -> query_2_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..1dde09f93da4196d159ac81961a21fda69e7aaf4 GIT binary patch literal 12094 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 literal 0 HcmV?d00001 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot new file mode 100644 index 000000000..503b4e6b7 --- /dev/null +++ b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot @@ -0,0 +1,45 @@ +digraph compiled_physical_plan { + rankdir=LR; + node [shape=box, fontname=Helvetica]; + subgraph cluster_precompute { + label="PrecomputePlan"; + materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; + subgraph cluster_precompute_dag_0 { + label="compat-query-0"; + precompute_0_0 [label="fallback #0\nMaintenanceInput"]; + precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; + precompute_0_0 -> precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-1"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } + subgraph cluster_query_1 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; + query_1_1 [label="ExactReadout\nRate"]; + query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; + query_1_1 -> query_1_0; + query_1_2 -> query_1_1; + } + subgraph cluster_query_2 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_2_2 [label="Logical\nExactSubquery"]; + query_2_3 [label="Logical\nSort"]; + query_2_3 -> query_2_0; + query_2_2 -> query_2_3; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ae1ba122a9f99f9921a99a95f80009e77a110a2 GIT binary patch literal 11860 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 precompute_0_1 [label="Input"]; + } + subgraph cluster_precompute_dag_1 { + label="compat-query-1"; + precompute_1_0 [label="fallback #0\nMaintenanceInput"]; + precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; + precompute_1_2 [label="value #2\nMaintenanceInput"]; + precompute_1_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; + precompute_1_0 -> precompute_1_1 [label="Input"]; + precompute_1_1 -> precompute_1_2 [label="Input"]; + precompute_1_2 -> precompute_1_3 [label="Input"]; + subgraph cluster_maintenance_1_3 { + label="Planner maintenance operators"; + maintenance_1_3_1 [label="#1\nBound physical input"]; + maintenance_1_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; + maintenance_1_3_1 -> maintenance_1_3_2; + maintenance_1_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; + maintenance_1_3_2 -> maintenance_1_3_3; + } + } + subgraph cluster_precompute_dag_2 { + label="compat-query-2"; + precompute_2_0 [label="fallback #0\nMaintenanceInput"]; + precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; + precompute_2_0 -> precompute_2_1 [label="Input"]; + } + } + subgraph cluster_query_0 { + label="QueryPlan: rate(data[1m])"; + query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; + query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; + query_0_1 -> query_0_0; + } + subgraph cluster_query_1 { + label="QueryPlan: sum by (label_0) (rate(data[1m]))"; + query_1_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; + materialization_9414a19c98bfc6a8 -> query_1_0 [style=dashed, color=gray40, label="reads"]; + query_1_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; + query_1_0 -> query_1_1; + subgraph cluster_native_query_1 { + label="Planner query operators"; + native_query_1_3 [label="#3\nBound physical input"]; + native_query_1_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; + native_query_1_3 -> native_query_1_4; + } + } + subgraph cluster_query_2 { + label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; + query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; + query_2_1 [label="Logical\nSort"]; + query_2_2 [label="ExactReadout\nRate"]; + query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; + materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; + query_2_1 -> query_2_0; + query_2_2 -> query_2_1; + query_2_3 -> query_2_2; + } +} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6a8929b23fe1cd8427e1d50d7638eb3027127d85 GIT binary patch literal 15535 zcmZ9zW0WXOur1iOZQHhO+qP}nHc#8`K5g5!ZCi7`duP^qZ|X;^tf;K2__1Tx&d4bI zXb6D+4xry_-^;i|3AdA9A1FbFJ-mX-=?H>glXvy_)l1x%eM^^kcmFAr2m^+UaY{** zXeG5{7xKOEJLC^ZwxA_l6CDyM$`ZLhWn{|5V}ElvPPt$8@xg)%GkBsEIZ+4YgY}Ph zACk`_WRr-J@d-kFVh%BopOHQIBJaa%vh#+ksU{*joZs(@G9oauqiGBuO&BSANDrlS zUyf!U&_+&&nX@NvUAG8&WTV$7SBA%pShVz{F@K53GzTW{Q>Kqw2&>kf4(Xv8z2En*>AEgSKeIiclDub2C5Roe~c4`tZW=Kk(K znd*1bBBSP`E_!lSt=Mnr{5;9X``1p4JV1(6|2`PmvALQGPdgp*XVoZlo|H zN@kxjhrZvh8>Al=`F>V!XLtHM%8ee^nfl>MNgpZk(ekzBq8>H+AwgSyJ=pXaDLs}@ z91s_Ucas0%@=0xzmP+~!U%n|)eQ@x>%%Hhh?zb6sA& z5`ABZr#yX3oV=ZzvU-2H@@LZ2z8nPYS1J0}u<5BP^TsCPOD9&)cESuodpBt{+wJRtqhEK=i{%K9Gp8HOB?}1egxV-H)tLy2FZZ<1#j`ZZmME25$ z9sG5nX@d2|wblwQ)Hbf7Y~=+WaLLWJ_$%N#{^JYBriI8(JpPN_GTzL#^XekxhbLnz zmq69$#cyxlz2HpOeqNvUOTH&?wdtAD#{A&RXPQ2S8B&7lK8fq~ zVsj3i*fWvO7m*&HBO4`oXplQ`T9hKG;*R~Z@9Z192$85#W(MjkE9N+V)VK@d?uTmP zwmw23#e;ChI4j4P;&$NQNGrrz5;aXmw6DwOV_bg=Mn1rA1 zbss1E__eh?-wrXCi|PK4W9WJB4!PDeCe#Pb2@DF=ysi2 zh6HQcT?*AS7-#-?pUPs6=|+ZB4LLdoxnuE=cg>ZDsTStC%%lBdGCWJN%F0i;mRYQg za?J`8*n@1J;Iei{MoK@;h*;5^e#iMuSRwD%FU`1&P$70jCT zimkrHD0Utk!O7RODW>^6J4luxic7wl+%8kmrmW|0$Dye48$!1o@n~aTfqi(mx-(P1 zDr4`bt0(Yvry%$=bH`g0t;B^9;;o0VeVIF_G*V_ZPn7UP^qN^7T|azsHSQq8t6-z2 zLia3$u2u)k?}|FvLFvQVka&Ljh1i+{cx2B4vMyhc+`RAQ<93W&5f1#VdsPaRn!*1l z_MPibnOOI48<}BxQJarsQtIIej%$zg@DExtee%O4NuoeE6&^WK+|!V{x>Tl$*#^1_ zP{r`ZMQ_+cUszortTw*pV*@MBcJ1NkO~zO7H5{zDDeu8PzE#|!<6Np;i5-__s#m>c z;y12W3nUs>%>4DZxU067D}@r)kW;b-mV?wF05m)zKapM@^OQ(}a*i_ngHt;S$%7^a zA))z=X@=nevvp0@+}dCUf=s*o7tIVu6wnoMJQ&gJ0zs+gm~#p=8E9`YfQ-hF10D#W z7!dedx8-sREPToZw|eDg#*I;)c&oGSF#6i8ntYi$@4CMRRt&bXostQ7Kav4I;3p)& zt9MI&j$;sOHkX$h8C~~mzP*iCtLPWl1zfRP$y# zs*>+AQl@JYlCKI3Q!g>2`lJpGDchP7Iy7bQs*3d;mz?LN=^(F=n(^TsljgtewL!V6 z%j=C^){_Q?0Xzc-7j~}Q6`~w7NZybOb9%ovOy62s=DIY^Bi)S+OC6flxiqb%s@|?` z&u&IznSwUUC~TC}!M0sUtS<$47}@=6Fj3SLwQa^WY*~p#2@>5?^2G1x6k-zPJ;<6_3oJs47tne45n`HA z0}0QhvvPQ&jt@4&gB^|+Gt6PXof-9t_wMs^?5EKUNR-Dg%|!J?K|4TRlgk&hmWaVQ=tzBhawTu< zxjkFAYpyrbkUfgXy-E6>=dU%tm6<=uKi6b`t{`dDYy*%rt@-RCYryC4W?$d+FK@7jTV#vdf~Q}1Ig>fP zca0m4?|v6jdU4T=ycxFf4`fa(wzk1qz72(G!9_eTCQbTOQ)l=l;Ww+U@%or}|J~N$ zGghOJXb;NRc(!Qkwc*os6M3IQ`^&z`c;ACH$!tx8G^3U4sp_;|vGJhJIsRa+K4rv8 zb+PcweW@ggv3p0;F};vw{Q&(ZbeEMzQ1ye_eAt-L((YdCw2LakUxCf548UN3O-iIu znbkWQmu+{g-MNl@MI>pqNkWP3RDL|F%2xX5dF+F;nby>;M(%o?u;x2=qgAS(97p>) zD#yvL%641%1=*2fmv=`deS z`^BIi((u5|W`L)>@MVP5j)^@GJwmy>%riU5erwO%)muXD}+sX=xg*7yD z13a_G3eO&j!4;a`6AJ4ZJR72#Hh9Nxkb`xiyJ&O6$*$M&p%izk=e)Xvaf@%f=LTE2#6q_UH#L~!c%XX(TM&Suy4J*q|*Lip?tfC9bD|}no#bzc07}nw(Iq@)tfbw z!n+1)Yv#p%YjLWrRtD|Rq}yASi9R_qgI&gcGgxtxJ&9C)6V%#P?U$BWqKdqNebTw^ zxVeL7)|{fmwc~hQM`Th%Xi`UDvd1S)_nzi+L31UvDaObMqWxVG;OKFps%FW~+U`C#u#xqsM#iop_i5g*2Le>uFEZ$k8| z$UlYg$Kw@+t+8{;8!AS9f!c4g5=tq zMaS}j&V<;d05oR1L>3?j#C`# zjwsRLOAh4`AcFY=GubBUmt%Nynkc{A{znt7l;YWA?^wl8BqQJSmT*)RTMR(57LK_q zkVJhf0!KiMq&&F0DtI+d&%KcaRGtUpt{)jb@6GykXg5pyRRt8psYPyPIVh%T@rqz# zijk-Ku?0q0Y{zz8OsGCKz!t=Y*Z>=F6JkxQj}535@&9(&t*`-=!ZY~lOguFx)9d;m z`^@vu7{_mR^4nnjrS%5%;Fji@lIpQwPQ*$1F5|A!=eJ(BFu1+1A&b{7bqzSU0LP_p za{|^UDVVuwPKwdo4pU-s*Odahh!DU{e9QkR+<2-!m)WV# z@?*KXrnb;9NV*V2_R^71q2D(H4=p`5S|D8rKUR^wyfsqWc=nmqWYn6nf=Q$6TzGjt zgM~J>Bn5r{s!yM5ZGE62vsuV=w5)HyX;s}|46mnuwIFDz(7alI{c8U2h2>eLE zz5ou!!+7#yKg$)|`re9pJN1NS4cr2rBpO@fPAKafddvM&whJrI1NgDsxW*iP%xd8R z*SR)0iSx4T=04pDSe5HGEbrB_7+bXD(O*1RXResto&KV z0Dj5KF}QKSho(uG4wV3GF@*(LXJcY-zO=3u`BRkh%a9ufrAI&5Uvr7qKA1m5A8kZd zi7(aybx)iffuFBI`omHcdU2Z?ko@*Ru86uG6dRTn?xvO|B`;L-^GBtp8}qad%`jU} zn`6Rd=�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¥G4%s>?3$~17&w^GBWsVdD!tqozm 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 Date: Mon, 28 Sep 2026 14:12:44 +0000 Subject: [PATCH 47/80] fix: scope candidate cost manifests to the logical dataset --- control_plane/src/physical/workload_cost.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index aa53ad861..6193dced7 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -40,6 +40,7 @@ pub struct CostComponentDemand { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(deny_unknown_fields)] pub struct WorkloadCostManifest { + pub dataset_identity: planner_types::post_asap::LogicalDatasetIdentity, pub plan_id: u64, pub plan_version: u64, pub planner_revision: String, @@ -344,6 +345,8 @@ pub fn manifest( ); } Ok(WorkloadCostManifest { + dataset_identity: plan.precompute_plan.ingest.dataset_identity.clone() + .ok_or_else(|| CompileError::Snapshot("cost manifest lacks dataset identity".into()))?, plan_id: plan.envelope.plan_id, plan_version: plan.envelope.plan_version, planner_revision: plan.envelope.planner_revision.clone(), From 1b68c9c1f4774397dc4d9f85945dce7753f8f3d8 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 14:13:30 +0000 Subject: [PATCH 48/80] test: require dataset-bound semantics across workload candidates --- control_plane/tests/issue754_level1.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index cd9f9b0bc..14c78be80 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -343,6 +343,10 @@ fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Date: Mon, 28 Sep 2026 14:16:01 +0000 Subject: [PATCH 49/80] style: format dataset-scoped cost manifest --- control_plane/src/physical/workload_cost.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index 6193dced7..eea4d3532 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -345,7 +345,11 @@ pub fn manifest( ); } Ok(WorkloadCostManifest { - dataset_identity: plan.precompute_plan.ingest.dataset_identity.clone() + dataset_identity: plan + .precompute_plan + .ingest + .dataset_identity + .clone() .ok_or_else(|| CompileError::Snapshot("cost manifest lacks dataset identity".into()))?, plan_id: plan.envelope.plan_id, plan_version: plan.envelope.plan_version, From af507e0879019d881eaca82c8963b6763ae07f36 Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 14:16:10 +0000 Subject: [PATCH 50/80] style: format dataset assertions --- control_plane/tests/issue754_level1.rs | 28 ++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 14c78be80..70efc1b16 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -343,9 +343,17 @@ fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Date: Mon, 28 Sep 2026 14:22:22 +0000 Subject: [PATCH 51/80] test: refresh dataset-bound candidate plan exports --- .../candidates/SHA256SUMS | 68 +++ .../candidates/grouped-rate-0.json | 62 +-- .../candidates/grouped-rate-1.json | 42 +- .../candidates/grouped-rate-3.json | 390 +++++++++--------- .../candidates/grouped-rate-4.json | 62 +-- .../candidates/grouped-temporal-sum-0.json | 60 +-- .../candidates/grouped-temporal-sum-1.json | 40 +- .../candidates/grouped-temporal-sum-3.json | 60 +-- .../candidates/quantile-ratio-0.json | 64 +-- .../candidates/quantile-ratio-1.json | 44 +- .../candidates/quantile-ratio-2.json | 44 +- .../candidates/spatial-quantile-0.json | 52 ++- .../candidates/spatial-quantile-1.json | 32 +- .../candidates/spatial-quantile-2.json | 32 +- .../candidates/spatial-quantile-3.json | 32 +- .../candidates/spatial-sum-0.json | 52 ++- .../candidates/spatial-sum-1.json | 32 +- .../candidates/spatial-sum-2.json | 32 +- .../candidates/spatial-sum-3.json | 32 +- .../candidates/spatial-topk-1.json | 34 +- .../candidates/spatial-topk-2.json | 34 +- .../candidates/temporal-quantile-0.json | 52 ++- .../candidates/temporal-quantile-1.json | 32 +- .../candidates/temporal-quantile-2.json | 32 +- .../candidates/temporal-rate-0.json | 52 ++- .../candidates/temporal-rate-1.json | 32 +- .../candidates/temporal-rate-2.json | 32 +- .../candidates/temporal-rate-3.json | 32 +- .../candidates/temporal-sum-0.json | 52 ++- .../candidates/temporal-sum-1.json | 32 +- .../candidates/temporal-sum-2.json | 32 +- .../candidates/topk-rate-0.json | 66 +-- .../candidates/topk-rate-1.json | 46 ++- .../candidates/topk-rate-2.json | 46 ++- .../candidates/topk-rate-5.json | 66 +-- .../issue754-human-review/ensembles/README.md | 5 +- .../ensembles/SHA256SUMS | 44 +- .../ensembles/all-ten/admission.json.gz | Bin 4930 -> 4909 bytes .../ensembles/all-ten/candidate-1.json.gz | Bin 13965 -> 13991 bytes .../ensembles/all-ten/candidate-11.json.gz | Bin 23582 -> 23669 bytes .../ensembles/all-ten/candidate-17.json.gz | Bin 23500 -> 23564 bytes .../ensembles/all-ten/candidate-19.json.gz | Bin 23505 -> 23576 bytes .../ensembles/all-ten/candidate-2.json.gz | Bin 24088 -> 24164 bytes .../ensembles/all-ten/candidate-21.json.gz | Bin 22361 -> 22435 bytes .../ensembles/all-ten/candidate-25.json.gz | Bin 27269 -> 27513 bytes .../ensembles/all-ten/candidate-3.json.gz | Bin 15618 -> 15649 bytes .../ensembles/all-ten/candidate-7.json.gz | Bin 23265 -> 23258 bytes .../ensembles/all-ten/candidate-9.json.gz | Bin 22824 -> 22900 bytes .../shared-quantiles/admission.json.gz | Bin 823 -> 820 bytes .../shared-quantiles/candidate-0.json.gz | Bin 7512 -> 7604 bytes .../shared-quantiles/candidate-1.json.gz | Bin 3237 -> 3273 bytes .../shared-quantiles/candidate-2.json.gz | Bin 6777 -> 6845 bytes .../shared-quantiles/candidate-3.json.gz | Bin 6231 -> 6294 bytes .../ensembles/shared-rate/admission.json.gz | Bin 2026 -> 2028 bytes .../ensembles/shared-rate/candidate-0.json.gz | Bin 12699 -> 12758 bytes .../ensembles/shared-rate/candidate-1.json.gz | Bin 8532 -> 8564 bytes .../ensembles/shared-rate/candidate-2.json.gz | Bin 12094 -> 12156 bytes .../ensembles/shared-rate/candidate-4.json.gz | Bin 11860 -> 11924 bytes .../ensembles/shared-rate/candidate-5.json.gz | Bin 15535 -> 15570 bytes .../grouped-rate.admission.json | 74 ++++ .../grouped-temporal-sum.admission.json | 50 +++ .../quantile-ratio.admission.json | 38 ++ .../spatial-quantile.admission.json | 50 +++ .../spatial-sum.admission.json | 50 +++ .../spatial-topk.admission.json | 50 +++ .../temporal-quantile.admission.json | 38 ++ .../temporal-rate.admission.json | 50 +++ .../temporal-sum.admission.json | 38 ++ .../topk-rate.admission.json | 98 +++++ 69 files changed, 1671 insertions(+), 818 deletions(-) create mode 100644 docs/evaluation/issue754-human-review/candidates/SHA256SUMS create mode 100644 docs/evaluation/issue754-human-review/grouped-rate.admission.json create mode 100644 docs/evaluation/issue754-human-review/grouped-temporal-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/quantile-ratio.admission.json create mode 100644 docs/evaluation/issue754-human-review/spatial-quantile.admission.json create mode 100644 docs/evaluation/issue754-human-review/spatial-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/spatial-topk.admission.json create mode 100644 docs/evaluation/issue754-human-review/temporal-quantile.admission.json create mode 100644 docs/evaluation/issue754-human-review/temporal-rate.admission.json create mode 100644 docs/evaluation/issue754-human-review/temporal-sum.admission.json create mode 100644 docs/evaluation/issue754-human-review/topk-rate.admission.json diff --git a/docs/evaluation/issue754-human-review/candidates/SHA256SUMS b/docs/evaluation/issue754-human-review/candidates/SHA256SUMS new file mode 100644 index 000000000..56d2b6afe --- /dev/null +++ b/docs/evaluation/issue754-human-review/candidates/SHA256SUMS @@ -0,0 +1,68 @@ +a23fa47150b5fc1a15d43df09d88ef35fd107ba088d15134c14e433afc8c7b36 grouped-rate-0.dot +4ba5055087e6afc0dd57a8f5035d72a774d138abefe69c74483fed16448d96a1 grouped-rate-0.json +00bbd0355f8dd41336c6b70f3039aac35a4c82e6a7cae8052697f1039b7fb9d4 grouped-rate-1.dot +ea9d513b36b6ab3d7de5d5ea200bf14721654a7c227491b92eb0a06f12b7b082 grouped-rate-1.json +e5cdd608afb3372a58936dd084ee2f04485a77827b0c0d3c9111ea140af95033 grouped-rate-3.dot +1a357ddce623a5e86a978af379d2aeb8a1c6ff9ae5c3dc1f121d0c01ede0849a grouped-rate-3.json +d915c5f91285b0fa687ac9dc7277136c64c9cce29649314429273a8540264309 grouped-rate-4.dot +bc93971902c28d51a4c4ed53339f034f5d6aca7a5e489779936abffd1e12051f grouped-rate-4.json +9c7d19da2e4b2ad0639debcb6f4e9f827f0cef6004dac5e3ba22c5a304b23756 grouped-temporal-sum-0.dot +1caf844e1229536077ebe796b2459effcaf5b7c61fefbbdef7e9ddb1a888e236 grouped-temporal-sum-0.json +03a9ed7614e92df8f5830ef6d5608b172754b42dde51af00c94308d353a4d2e4 grouped-temporal-sum-1.dot +b57f4fb2f38d773f100ea11e1d0e0d133429a1e2787850b3dbfab1f08dca7bf9 grouped-temporal-sum-1.json +ae875e99e455befa415fb8ed48128cda20e4df8b448347287b908b1418d06b3f grouped-temporal-sum-3.dot +d31deddfb8bb69586c6911ae3ad50756e53b3731c3f6443c3b6e9a7ac40cb6ed grouped-temporal-sum-3.json +1a5445c8ab2dae1c393755ec7fa22c75b88bc377d5ecf04993a24ad489eb3f09 quantile-ratio-0.dot +0d55156e43fcc08e084b62ab50c99b4dbbf9ddbcc9eb00db5aec4115acc79bed quantile-ratio-0.json +80d8f8415e5a3760c5fe3bd3ad14eeb4cf9068987b7f6a2492d8a30a18fd7c7e quantile-ratio-1.dot +8e993c797f4fcd2a4b509dab8335c053dc7a7d519a6f7c5e91a95a8e431bc27e quantile-ratio-1.json +80d8f8415e5a3760c5fe3bd3ad14eeb4cf9068987b7f6a2492d8a30a18fd7c7e quantile-ratio-2.dot +9957c5d53ac1860e46a0ca9b415277064bf6eb6c1205f32abc3f266f55dc48e1 quantile-ratio-2.json +607a40d93e04abd7154abd5cc11a0dcd2ca8e99ec8360e89ed336cf6fb73a151 spatial-quantile-0.dot +87ff92a2b88021370953db8a8dc4446bfe3d656a80f1e005fec83de98020e71d spatial-quantile-0.json +5e553f62a68c7cda482a68184740f0f40bc60b1f02459e3ba1d1b7f30907d072 spatial-quantile-1.dot +97a767fb31af927d0cb2f434c3be47bf3b6aac608925295e204c72dbf441188e spatial-quantile-1.json +17625fcc56a4d98ae78f9b191a59639a54916c6461b6c15502d1d8672751c962 spatial-quantile-2.dot +aeb76fdf656e0d3770eeb917a1985cac8a386decbf893b9bdd351faf0287d37f spatial-quantile-2.json +5e553f62a68c7cda482a68184740f0f40bc60b1f02459e3ba1d1b7f30907d072 spatial-quantile-3.dot +bbc399db388aa58ef279c8e32e5b887955bab039929eb5d05daf9c140502331a spatial-quantile-3.json +1c3987ab0266297396156e3ef58af3f31d7fe29c8244f9461294b6380229e02e spatial-sum-0.dot +d053505ebe8f13237debd1a971372c80ee35ce48cc25cd6f9aee6042fb1e73b0 spatial-sum-0.json +f391d96e85d188e916041614f1af29f43fc2d2c71e2aa0add6cd8c6b21d5c461 spatial-sum-1.dot +4f530a3d5a75b7a7cf5f69775d6ba5c40ceba39ee2634780808615a6a90f8162 spatial-sum-1.json +4a8e06781815e3d4fed1bf4e907a782875ef17f2b80dfada6c5e77b39b6032bb spatial-sum-2.dot +4bf30d2fd891137a431532eece65f45487c52f8273a4ea62589acea766884c4b spatial-sum-2.json +9821ea6299da7c979efb0b50886fbbaafca42fbee2675c5687c5358d6884629b spatial-sum-3.dot +99294796cd0a96515ca107b8f7ff3f0c967874386f9f81156a535790d0b516f9 spatial-sum-3.json +81664a0344b11864a4769f0bb66a2a40df6d977d1a042b331ebd4ac7757a6ded spatial-topk-1.dot +99f0653b5f4ab60de5768cc6b5552f71aa15b6a0f377dfa75b1c04687c43c367 spatial-topk-1.json +2a8e23864aa9dbd9a5b221972e3b44810aee591b2b1c21b093e95dc1355d0742 spatial-topk-2.dot +b12609208b399374de42202c616da39c9b5c3d62acb059f4ae01330673a5209d spatial-topk-2.json +a178b0b3e2c34a496bbfc84b2af9fceca6ada72f21fda1d77f2ef9c97185b725 temporal-quantile-0.dot +2a8b447ee8cf4976f5385bacae557008a38ac7aca28b97e16894eee8ba69579b temporal-quantile-0.json +6929dde319f7934c9200a30527f4947f14dbcf91da6d210bf0f0157add7aba3f temporal-quantile-1.dot +27a8f79baa24de7f58c27425913557765de3968dd69ba67fc0ef4be194c1ce04 temporal-quantile-1.json +6929dde319f7934c9200a30527f4947f14dbcf91da6d210bf0f0157add7aba3f temporal-quantile-2.dot +f06b999b30b18c363ffd7ad822db0815be54b73becde68d4178c3fbf4fb83590 temporal-quantile-2.json +f9c77fba7e66f7ead9fc331187e03dd7f1cebb1c8029754746c513516f6af7a5 temporal-rate-0.dot +fc7e34aa0914ae744026686aed093f0958ac390126c6c769665b21cef415b765 temporal-rate-0.json +c590c9c05e13f1a0c22fb6903431103db8bf24bfbda940746b928ae6bb6f5766 temporal-rate-1.dot +b51eef57f754f4f149c214688cc21e0c9e1fbaaac01756ed8c5aa7ccfbd482f3 temporal-rate-1.json +b871a018cb43c5b05bb147352c63c2dad9c7399c8a425f78ea47b0ff2c3f1c52 temporal-rate-2.dot +bd56b720b77f6c60e038dbea3b92510b4d3a9a68453bcd91d738e38c4082a066 temporal-rate-2.json +c590c9c05e13f1a0c22fb6903431103db8bf24bfbda940746b928ae6bb6f5766 temporal-rate-3.dot +5cbed72ecab59d6ee4d43b29ceb8b9f8fc2c24fcf4efe3d6fa0aa31456f4d697 temporal-rate-3.json +7a7f11a5de77c8ef6204f7675864ff9683d363c3e5ffd4db0e6dc30e08738b8b temporal-sum-0.dot +406feb6afc9d0cd76c09bbfecaa329d520a9181f9c81ac1e9d893346ed7891c5 temporal-sum-0.json +e4ff237701efe51f494297fb6483dc51096ffbfdc36f97b708f31c455a07baa3 temporal-sum-1.dot +936505e3de989979f4da344ca90dd2f6b21731951a93b8783063d150bc2b481d temporal-sum-1.json +b6f86537f68deef541ea7b7678b172c08976b72a6fefe29bb327c0ab8c9a4c36 temporal-sum-2.dot +6729ec0d71d022accaf4eaf0b1daedd5b1c9b2cf97779d64721e50c52b3e829c temporal-sum-2.json +79955b955557087ea0619994c758101d6f1902ea1f1512aed889ea96cdfe1771 topk-rate-0.dot +a342e430d6a3f8b09a0814f567de7971eeb5eb9747a6f177ba5ca1e28980af63 topk-rate-0.json +33253484be175105dc0d9a8ce7b1f49135c41c89b1435f27fa695d66035041b8 topk-rate-1.dot +b3b91eec74c335442a246c28d3d1e6b177f065cfe0105bab629c5fb4fea20819 topk-rate-1.json +2976981633461028bfdb5c3916af6e7a179b76107d02af307904b810f8e26183 topk-rate-2.dot +2e40c9ff72c8b8ff95837ff2e29d3ffbabe20393cf5a59ef128a0efee1d458b0 topk-rate-2.json +f4437ddb2840257c40e12541c79d2a3ebe808f0124261fc05d357c4e3929da68 topk-rate-5.dot +35a7518dac65d4e5dcd73facbb2486b1e78a1e11731e34d5bd44669e6923b61d topk-rate-5.json diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json index eba314cb8..384b69b0e 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5849823772717530049, "plan_version": 1, "summary_descriptors": { @@ -57,18 +57,22 @@ }, "outputs": { "11966640087163441478": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -185,10 +189,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5849823772717530049, "plan_version": 1, - "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + "snapshot_sha256": "2ef3fd83d8c43d89e656d4923e5471c0e1516f338f26ff04782e7d76ec2c4ce3" }, "envelope": { "plan_id": 5849823772717530049, @@ -197,10 +201,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -212,7 +220,7 @@ { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, @@ -247,7 +255,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -651,10 +663,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5849823772717530049, "plan_version": 1, - "snapshot_sha256": "89af136d200df7367e58e0904704c3111bc018f7991cfbe940a640f7ccc02c78" + "snapshot_sha256": "2ef3fd83d8c43d89e656d4923e5471c0e1516f338f26ff04782e7d76ec2c4ce3" }, "envelope": { "plan_id": 5849823772717530049, @@ -663,7 +675,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1195,7 +1207,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "materialization": 11966640087163441478, "output_grouping": { @@ -1240,7 +1252,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -1256,7 +1268,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1347,13 +1359,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1418,26 +1430,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -1511,7 +1523,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", "physical_candidate": { "materialized_outputs": { "3": { @@ -1936,7 +1948,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", "physical_dag": { "nodes": { "2": { @@ -2198,7 +2210,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", "physical_candidate": { "materialized_outputs": { "3": { diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json index 05140fa56..b5ba35d4c 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 741363842036532054, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 741363842036532054, "plan_version": 1, - "snapshot_sha256": "5021409fc6aa6b0871c33c64216eabdf16b6fe3e2600b417b3701a594e382197" + "snapshot_sha256": "e4d7e90745a3b4fb0e9e97bacd7df01b197f5ab4a49bc4f633e2e8826ea74845" }, "envelope": { "plan_id": 741363842036532054, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 741363842036532054, "plan_version": 1, - "snapshot_sha256": "5021409fc6aa6b0871c33c64216eabdf16b6fe3e2600b417b3701a594e382197" + "snapshot_sha256": "e4d7e90745a3b4fb0e9e97bacd7df01b197f5ab4a49bc4f633e2e8826ea74845" }, "envelope": { "plan_id": 741363842036532054, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -216,13 +220,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -287,26 +291,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -380,7 +384,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", "physical_candidate": { "materialized_outputs": { "3": { @@ -805,7 +809,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", "physical_dag": { "nodes": { "2": { @@ -1067,7 +1071,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", "physical_candidate": { "materialized_outputs": { "3": { diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json index 3d06bc9f5..4c41f7636 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15282866737310247190, "plan_version": 1, "summary_descriptors": { @@ -98,180 +98,27 @@ }, "outputs": { "1361847422443465319": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" }, "10670331111097222824": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", + "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - }, - "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", "nodes": { "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { @@ -528,16 +375,177 @@ } } } + }, + "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { + "semantic_format_version": 1, + "semantics": { + "kind": "planner", + "fragment": { + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, + "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", + "nodes": { + "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { + "operation": { + "expression": { + "Scan": { + "predicates": [], + "schema": { + "closed": true, + "columns": [ + { + "dtype": "timestamp", + "name": "ts", + "nullable": false, + "table": null + }, + { + "dtype": "float64", + "name": "value", + "nullable": false, + "table": null + }, + { + "dtype": "utf8", + "name": "label_0", + "nullable": true, + "table": null + }, + { + "dtype": "utf8", + "name": "$promql_series_identity", + "nullable": false, + "table": null + } + ], + "time_index": 0, + "unique_keys": [] + }, + "source": { + "TimeSeries": { + "metric": "data" + } + } + } + }, + "kind": "fallback" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "Plain": "float64" + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [], + "record_range": true + }, + "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { + "operation": { + "family": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "grouping": "PerSubpopulationInstance", + "input": { + "item": null, + "weight": { + "Column": "SampleValue" + }, + "weight_domain": { + "kind": "unknown_or_signed" + } + }, + "kind": "summary_agg", + "reduction": "PerEntity" + }, + "output_schema": { + "fields": [ + { + "dtype": { + "Plain": "timestamp" + }, + "name": "ts", + "nullable": false + }, + { + "dtype": { + "ExactAggregate": [ + "Rate", + "Rate" + ] + }, + "name": "value", + "nullable": false + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "label_0", + "nullable": true + }, + { + "dtype": { + "Plain": "utf8" + }, + "name": "$promql_series_identity", + "nullable": false + } + ], + "time_index": 0 + }, + "inputs": [ + { + "role": "Input", + "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" + } + ] + } + } + } + } } } }, "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15282866737310247190, "plan_version": 1, - "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" + "snapshot_sha256": "271e472fee4649a5e2d4792afc55a6eaf946b15bb857d405f8d0bf2ebc06786a" }, "envelope": { "plan_id": 15282866737310247190, @@ -546,10 +554,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -561,7 +573,7 @@ { "stored_output_reference": { "stored_output_id": 1361847422443465319, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" }, "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", "schema_version": 1, @@ -594,7 +606,7 @@ { "stored_output_reference": { "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8" }, "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", "schema_version": 1, @@ -627,7 +639,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { @@ -812,7 +828,11 @@ }, { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", "nodes": { "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { @@ -1921,10 +1941,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15282866737310247190, "plan_version": 1, - "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" + "snapshot_sha256": "271e472fee4649a5e2d4792afc55a6eaf946b15bb857d405f8d0bf2ebc06786a" }, "envelope": { "plan_id": 15282866737310247190, @@ -1933,7 +1953,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -2748,7 +2768,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" + "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8" }, "full_window_slide_ms": 10000, "materialization": 10670331111097222824, @@ -2816,7 +2836,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -2832,7 +2852,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2923,13 +2943,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -2994,26 +3014,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -3087,7 +3107,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", "physical_candidate": { "materialized_outputs": { "3": { @@ -3512,7 +3532,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", "physical_dag": { "nodes": { "2": { @@ -3774,7 +3794,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", "physical_candidate": { "materialized_outputs": { "3": { diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json index be387f47c..864fa668f 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3349874915222028658, "plan_version": 1, "summary_descriptors": { @@ -57,18 +57,22 @@ }, "outputs": { "11966640087163441478": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { @@ -225,10 +229,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3349874915222028658, "plan_version": 1, - "snapshot_sha256": "6c3edf9e4a581f942181a16a44d2729a1efce85faea4837635d1399cc9f282c9" + "snapshot_sha256": "c7402b8eabccec7196971f65608f9d358173429f7c79c285a3cad9775a4e2852" }, "envelope": { "plan_id": 3349874915222028658, @@ -237,10 +241,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -252,7 +260,7 @@ { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, @@ -287,7 +295,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { @@ -758,10 +770,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3349874915222028658, "plan_version": 1, - "snapshot_sha256": "6c3edf9e4a581f942181a16a44d2729a1efce85faea4837635d1399cc9f282c9" + "snapshot_sha256": "c7402b8eabccec7196971f65608f9d358173429f7c79c285a3cad9775a4e2852" }, "envelope": { "plan_id": 3349874915222028658, @@ -770,7 +782,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1682,7 +1694,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" }, "materialization": 11966640087163441478, "output_grouping": { @@ -1737,7 +1749,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -1753,7 +1765,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", + "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1844,13 +1856,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" + "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1915,26 +1927,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", + "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", "query_index": 0 } ], @@ -2008,7 +2020,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", + "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", "physical_candidate": { "materialized_outputs": { "3": { @@ -2433,7 +2445,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", + "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", "physical_dag": { "nodes": { "2": { @@ -2695,7 +2707,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", + "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", "physical_candidate": { "materialized_outputs": { "3": { diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json index 1c4607f1b..57e622ab0 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 398383639928265061, "plan_version": 1, "summary_descriptors": { @@ -55,18 +55,22 @@ }, "outputs": { "13322971198486020251": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", "nodes": { "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { @@ -200,10 +204,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 398383639928265061, "plan_version": 1, - "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + "snapshot_sha256": "c05491085f9559df2a52fee1653f3cf7082dd2ecf973f2c30d65f309212b41bb" }, "envelope": { "plan_id": 398383639928265061, @@ -212,10 +216,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -227,7 +235,7 @@ { "stored_output_reference": { "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" }, "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", "schema_version": 1, @@ -262,7 +270,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", "nodes": { "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { @@ -680,10 +692,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 398383639928265061, "plan_version": 1, - "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" + "snapshot_sha256": "c05491085f9559df2a52fee1653f3cf7082dd2ecf973f2c30d65f309212b41bb" }, "envelope": { "plan_id": 398383639928265061, @@ -692,7 +704,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -959,7 +971,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" }, "materialization": 13322971198486020251, "output_grouping": { @@ -1007,7 +1019,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], @@ -1023,7 +1035,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", + "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1086,7 +1098,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", + "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1109,7 +1121,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", + "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1200,13 +1212,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" + "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", + "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1271,26 +1283,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" + "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json index 0a0849068..d6c2103d6 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 375190931036314940, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 375190931036314940, "plan_version": 1, - "snapshot_sha256": "660c4121b4fd9dc03cb63ef0136345337b3125f02744c7d2267930d7a5ecbf3e" + "snapshot_sha256": "f256d976daa070a439b37f43c427683bd3ea49004063daf163a5b883dc8177d1" }, "envelope": { "plan_id": 375190931036314940, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 375190931036314940, "plan_version": 1, - "snapshot_sha256": "660c4121b4fd9dc03cb63ef0136345337b3125f02744c7d2267930d7a5ecbf3e" + "snapshot_sha256": "f256d976daa070a439b37f43c427683bd3ea49004063daf163a5b883dc8177d1" }, "envelope": { "plan_id": 375190931036314940, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", + "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -188,7 +192,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", + "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -211,7 +215,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", + "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -302,13 +306,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" + "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", + "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -373,26 +377,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" + "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json index 21a61c8aa..2953eb62d 100644 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3225737927651639557, "plan_version": 1, "summary_descriptors": { @@ -55,18 +55,22 @@ }, "outputs": { "11909113880704420270": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { + "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -183,10 +187,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3225737927651639557, "plan_version": 1, - "snapshot_sha256": "c7646d01552ed81c2644a9fc353010b259e81c2465328a254a1e97cc218e69e1" + "snapshot_sha256": "3231bb2a1bd447de3484336c7675af8b0770952c2953ec1a8f741cf55dfea824" }, "envelope": { "plan_id": 3225737927651639557, @@ -195,10 +199,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -210,7 +218,7 @@ { "stored_output_reference": { "stored_output_id": 11909113880704420270, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11909113880704420270", "schema_version": 1, @@ -245,7 +253,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -649,10 +661,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3225737927651639557, "plan_version": 1, - "snapshot_sha256": "c7646d01552ed81c2644a9fc353010b259e81c2465328a254a1e97cc218e69e1" + "snapshot_sha256": "3231bb2a1bd447de3484336c7675af8b0770952c2953ec1a8f741cf55dfea824" }, "envelope": { "plan_id": 3225737927651639557, @@ -661,7 +673,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1193,7 +1205,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 11909113880704420270, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" }, "materialization": 11909113880704420270, "output_grouping": { @@ -1238,7 +1250,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], @@ -1254,7 +1266,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", + "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1317,7 +1329,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", + "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1340,7 +1352,7 @@ }, { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", + "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1431,13 +1443,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" + "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", + "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1502,26 +1514,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" + "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", + "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json index 4413b2141..89bd177d3 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14871479243635342203, "plan_version": 1, "summary_descriptors": { @@ -63,18 +63,22 @@ }, "outputs": { "2776719732314936823": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", + "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744": { + "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -207,10 +211,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14871479243635342203, "plan_version": 1, - "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + "snapshot_sha256": "e914c18d37f9b2210a35cc813a8ff9fccfff680e44c761191a157d2fe50827c4" }, "envelope": { "plan_id": 14871479243635342203, @@ -219,10 +223,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -234,7 +242,7 @@ { "stored_output_reference": { "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198" }, "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", "schema_version": 1, @@ -272,7 +280,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -640,10 +652,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14871479243635342203, "plan_version": 1, - "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" + "snapshot_sha256": "e914c18d37f9b2210a35cc813a8ff9fccfff680e44c761191a157d2fe50827c4" }, "envelope": { "plan_id": 14871479243635342203, @@ -652,7 +664,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1412,7 +1424,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" + "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198" }, "materialization": 2776719732314936823, "output_grouping": { @@ -1490,7 +1502,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], @@ -1506,7 +1518,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", + "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1697,13 +1709,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" + "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1792,27 +1804,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", + "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1901,26 +1913,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" + "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json index b423d4c99..d716a7b21 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5752356276213301876, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5752356276213301876, "plan_version": 1, - "snapshot_sha256": "da92d04cc473b203b23c785b5b6a0ee1ddb12f29b5e82f245ac636ef47fb9cad" + "snapshot_sha256": "e4ee83d3aacaeed35289d83e7a2e1d58397d7d36ed7440ca3736eaf93cc8c9b2" }, "envelope": { "plan_id": 5752356276213301876, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5752356276213301876, "plan_version": 1, - "snapshot_sha256": "da92d04cc473b203b23c785b5b6a0ee1ddb12f29b5e82f245ac636ef47fb9cad" + "snapshot_sha256": "e4ee83d3aacaeed35289d83e7a2e1d58397d7d36ed7440ca3736eaf93cc8c9b2" }, "envelope": { "plan_id": 5752356276213301876, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +120,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], @@ -132,7 +136,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", + "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +327,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" + "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +422,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", + "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +531,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" + "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json index b4401ead4..a5e30916c 100644 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 12971657221408630864, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 12971657221408630864, "plan_version": 1, - "snapshot_sha256": "59bd2d2fcdc457e2f0b6fd69b34d69c94d12cb251016be429c8d54a23c82046b" + "snapshot_sha256": "9e016fda8ee70c5a05293beff41959a15209a9c2c74e92c5a63d62d09e92da81" }, "envelope": { "plan_id": 12971657221408630864, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 12971657221408630864, "plan_version": 1, - "snapshot_sha256": "59bd2d2fcdc457e2f0b6fd69b34d69c94d12cb251016be429c8d54a23c82046b" + "snapshot_sha256": "9e016fda8ee70c5a05293beff41959a15209a9c2c74e92c5a63d62d09e92da81" }, "envelope": { "plan_id": 12971657221408630864, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -116,7 +120,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], @@ -132,7 +136,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", + "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -323,13 +327,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" + "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -418,27 +422,27 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", + "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -527,26 +531,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" + "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" }, { "candidates": [], "consumer_count": 1, "group_id": 5, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 6, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", + "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json index a307ace5e..49dbd432e 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3294188734724225991, "plan_version": 1, "summary_descriptors": { @@ -65,18 +65,22 @@ }, "outputs": { "1584935399223751265": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", + "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502": { + "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", "nodes": { "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { @@ -226,10 +230,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3294188734724225991, "plan_version": 1, - "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + "snapshot_sha256": "f36b2cfadc29a6200678fc11cdfdfebfd3d5a075a8ac94b94e9204b6189a3330" }, "envelope": { "plan_id": 3294188734724225991, @@ -238,10 +242,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -253,7 +261,7 @@ { "stored_output_reference": { "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39" }, "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", "schema_version": 1, @@ -293,7 +301,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", "nodes": { "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { @@ -703,10 +715,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3294188734724225991, "plan_version": 1, - "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" + "snapshot_sha256": "f36b2cfadc29a6200678fc11cdfdfebfd3d5a075a8ac94b94e9204b6189a3330" }, "envelope": { "plan_id": 3294188734724225991, @@ -715,7 +727,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1094,7 +1106,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" + "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39" }, "full_window_slide_ms": 10000, "materialization": 1584935399223751265, @@ -1161,7 +1173,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], @@ -1177,7 +1189,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", + "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1266,26 +1278,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" + "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json index 35bff6a42..4e3031517 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14256379658571227787, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14256379658571227787, "plan_version": 1, - "snapshot_sha256": "e83203acc81b4c9a80aa3467e511ef13d1ca72e7d530f2d3b4154a7124e80fa1" + "snapshot_sha256": "c76e379f2cb5077e745db535f0a50bf9a983773457eca70f9321e827311de935" }, "envelope": { "plan_id": 14256379658571227787, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14256379658571227787, "plan_version": 1, - "snapshot_sha256": "e83203acc81b4c9a80aa3467e511ef13d1ca72e7d530f2d3b4154a7124e80fa1" + "snapshot_sha256": "c76e379f2cb5077e745db535f0a50bf9a983773457eca70f9321e827311de935" }, "envelope": { "plan_id": 14256379658571227787, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", + "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +218,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" + "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json index f58370d89..6fcc3c548 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 18366075381595067177, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 18366075381595067177, "plan_version": 1, - "snapshot_sha256": "a50ca7b888d90687444a3c78f51565aa4f92f48f748a0c1d22f5a5c1d89a80da" + "snapshot_sha256": "983208ce4df04a835d265dedb512c3984495050a4eb712249d40635d0018e880" }, "envelope": { "plan_id": 18366075381595067177, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 18366075381595067177, "plan_version": 1, - "snapshot_sha256": "a50ca7b888d90687444a3c78f51565aa4f92f48f748a0c1d22f5a5c1d89a80da" + "snapshot_sha256": "983208ce4df04a835d265dedb512c3984495050a4eb712249d40635d0018e880" }, "envelope": { "plan_id": 18366075381595067177, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -435,7 +439,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], @@ -451,7 +455,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", + "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -540,26 +544,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" + "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json index 63cf6c2be..9a4d9633c 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 7667691247138405742, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 7667691247138405742, "plan_version": 1, - "snapshot_sha256": "0753a8d648c301f37202296a41f8a62dc12431d7b1ffe0783be9fcfc490a0fe0" + "snapshot_sha256": "a4ff872dc12ddc682d2bedf0f8ea262bd6430a948613050f8c047b2a4d52f198" }, "envelope": { "plan_id": 7667691247138405742, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 7667691247138405742, "plan_version": 1, - "snapshot_sha256": "0753a8d648c301f37202296a41f8a62dc12431d7b1ffe0783be9fcfc490a0fe0" + "snapshot_sha256": "a4ff872dc12ddc682d2bedf0f8ea262bd6430a948613050f8c047b2a4d52f198" }, "envelope": { "plan_id": 7667691247138405742, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", + "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +218,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" + "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", + "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json index 4061c5ed9..250599ebf 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3688256239081920855, "plan_version": 1, "summary_descriptors": { @@ -55,18 +55,22 @@ }, "outputs": { "10394281891663284740": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { + "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", "nodes": { "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { @@ -200,10 +204,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3688256239081920855, "plan_version": 1, - "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + "snapshot_sha256": "cd5b03e4820085ba6cc7d3b74252615655dfb7e720b017df4923dfe3f7ab19e2" }, "envelope": { "plan_id": 3688256239081920855, @@ -212,10 +216,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -227,7 +235,7 @@ { "stored_output_reference": { "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" }, "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", "schema_version": 1, @@ -262,7 +270,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", "nodes": { "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { @@ -679,10 +691,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3688256239081920855, "plan_version": 1, - "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" + "snapshot_sha256": "cd5b03e4820085ba6cc7d3b74252615655dfb7e720b017df4923dfe3f7ab19e2" }, "envelope": { "plan_id": 3688256239081920855, @@ -691,7 +703,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -958,7 +970,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" + "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" }, "full_window_slide_ms": 10000, "materialization": 10394281891663284740, @@ -1007,7 +1019,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], @@ -1023,7 +1035,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", + "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1088,26 +1100,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" + "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json index fd896c67a..923eb20c7 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17875413431231421451, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17875413431231421451, "plan_version": 1, - "snapshot_sha256": "30281263668785b9e14aa808c84a05be99b49dbb9694ec42c58e75a96e08ad1f" + "snapshot_sha256": "f37a1a4040f6c785dac789437f25da5425e36f6b4b1459d1a7d8f5f70ad7b4a0" }, "envelope": { "plan_id": 17875413431231421451, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17875413431231421451, "plan_version": 1, - "snapshot_sha256": "30281263668785b9e14aa808c84a05be99b49dbb9694ec42c58e75a96e08ad1f" + "snapshot_sha256": "f37a1a4040f6c785dac789437f25da5425e36f6b4b1459d1a7d8f5f70ad7b4a0" }, "envelope": { "plan_id": 17875413431231421451, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", + "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" + "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json index f357f3c77..84297653d 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 8064649510529993241, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 8064649510529993241, "plan_version": 1, - "snapshot_sha256": "33a4956677db5b5ed51bfc4698419fcfadc91daddb4de6f612570a1ed564b4e9" + "snapshot_sha256": "2e565a19f9cfa46fcab6fe2c5c55814fac08b38ee52c7cb0d95fa7f74e9b914a" }, "envelope": { "plan_id": 8064649510529993241, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 8064649510529993241, "plan_version": 1, - "snapshot_sha256": "33a4956677db5b5ed51bfc4698419fcfadc91daddb4de6f612570a1ed564b4e9" + "snapshot_sha256": "2e565a19f9cfa46fcab6fe2c5c55814fac08b38ee52c7cb0d95fa7f74e9b914a" }, "envelope": { "plan_id": 8064649510529993241, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -430,7 +434,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], @@ -446,7 +450,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", + "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -511,26 +515,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" + "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json index d45088454..7f636b318 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 10907830462850005469, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 10907830462850005469, "plan_version": 1, - "snapshot_sha256": "ec56196657331e1e051f4d64053f6df9fa199fccbfe479209e749f3f92bb8447" + "snapshot_sha256": "703eeaa21765a7be0718f988b44ab57325135dec4454826afdc628dde3c10048" }, "envelope": { "plan_id": 10907830462850005469, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 10907830462850005469, "plan_version": 1, - "snapshot_sha256": "ec56196657331e1e051f4d64053f6df9fa199fccbfe479209e749f3f92bb8447" + "snapshot_sha256": "703eeaa21765a7be0718f988b44ab57325135dec4454826afdc628dde3c10048" }, "envelope": { "plan_id": 10907830462850005469, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +117,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], @@ -129,7 +133,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", + "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +198,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" + "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", + "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json index c1964304d..265852809 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5538412219857372274, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5538412219857372274, "plan_version": 1, - "snapshot_sha256": "af5f675dbc7f8c213a47dad50ead551eea15b03e9affe2812086904c35775a0d" + "snapshot_sha256": "f2f9c79f1945c4731e483fffe77b54abda50b4886f81390f7564578731087ad8" }, "envelope": { "plan_id": 5538412219857372274, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5538412219857372274, "plan_version": 1, - "snapshot_sha256": "af5f675dbc7f8c213a47dad50ead551eea15b03e9affe2812086904c35775a0d" + "snapshot_sha256": "f2f9c79f1945c4731e483fffe77b54abda50b4886f81390f7564578731087ad8" }, "envelope": { "plan_id": 5538412219857372274, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", + "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", "query_index": 0 } ], @@ -126,33 +130,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" + "target_id": "asap-explain-v1:target:a975d8480168ad2f477897f4128dc3d9f3bb53fb05b9fe87057f9f221243f1f5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" + "target_id": "asap-explain-v1:target:21d490ed5a1a5ce1cab55b6ba6c7c656963e4c4555a0646a45e4c16c7b06196d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", + "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", "query_index": 0 } ], @@ -255,7 +259,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", + "logical_root_id": "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json index c8d93fb2c..31344f67a 100644 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 2697027346875258477, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 2697027346875258477, "plan_version": 1, - "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + "snapshot_sha256": "4e75782c646622c601f1943733c8173e8d8a26191336bf23f5ce0e4a74127027" }, "envelope": { "plan_id": 2697027346875258477, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 2697027346875258477, "plan_version": 1, - "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" + "snapshot_sha256": "4e75782c646622c601f1943733c8173e8d8a26191336bf23f5ce0e4a74127027" }, "envelope": { "plan_id": 2697027346875258477, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -667,7 +671,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", + "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", "query_index": 0 } ], @@ -684,33 +688,33 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" + "target_id": "asap-explain-v1:target:a975d8480168ad2f477897f4128dc3d9f3bb53fb05b9fe87057f9f221243f1f5" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" + "target_id": "asap-explain-v1:target:21d490ed5a1a5ce1cab55b6ba6c7c656963e4c4555a0646a45e4c16c7b06196d" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" + "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", + "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", "query_index": 0 } ], @@ -813,7 +817,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", + "logical_root_id": "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21", "physical_dag": { "nodes": { "1": { diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json index 0b4a3f050..a98ca82aa 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11818444224054941250, "plan_version": 1, "summary_descriptors": { @@ -63,18 +63,22 @@ }, "outputs": { "3752266711358116078": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", + "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7": { + "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -207,10 +211,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11818444224054941250, "plan_version": 1, - "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + "snapshot_sha256": "c24c449f65b7e00c664355443d1b20a5d81934f63aa921a0a647a0c8de004ee8" }, "envelope": { "plan_id": 11818444224054941250, @@ -219,10 +223,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -234,7 +242,7 @@ { "stored_output_reference": { "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d" }, "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", "schema_version": 1, @@ -272,7 +280,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -640,10 +652,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11818444224054941250, "plan_version": 1, - "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" + "snapshot_sha256": "c24c449f65b7e00c664355443d1b20a5d81934f63aa921a0a647a0c8de004ee8" }, "envelope": { "plan_id": 11818444224054941250, @@ -652,7 +664,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1007,7 +1019,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" + "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d" }, "materialization": 3752266711358116078, "output_grouping": { @@ -1070,7 +1082,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], @@ -1086,7 +1098,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1175,26 +1187,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json index 0055426e1..d9492ab6d 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4754089690189431057, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4754089690189431057, "plan_version": 1, - "snapshot_sha256": "c89664e439f4d33e1861c699707fcc8ff80c566d2cb218216a35029f0e417fd4" + "snapshot_sha256": "428ac6da3ba0567a7ff84bd1766c7b799384099837ff8895aead7989744c9930" }, "envelope": { "plan_id": 4754089690189431057, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4754089690189431057, "plan_version": 1, - "snapshot_sha256": "c89664e439f4d33e1861c699707fcc8ff80c566d2cb218216a35029f0e417fd4" + "snapshot_sha256": "428ac6da3ba0567a7ff84bd1766c7b799384099837ff8895aead7989744c9930" }, "envelope": { "plan_id": 4754089690189431057, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +218,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json index d18f88a1c..2ca4611f3 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11545774673163874085, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11545774673163874085, "plan_version": 1, - "snapshot_sha256": "c2d9e705eadbc7ad976f425ffe05194332a7fe7ceba1c5abf15d83f52070635a" + "snapshot_sha256": "264e732aa882ebbb085990dc45427d8672f90690ae04392d6806ebd6a9211caa" }, "envelope": { "plan_id": 11545774673163874085, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11545774673163874085, "plan_version": 1, - "snapshot_sha256": "c2d9e705eadbc7ad976f425ffe05194332a7fe7ceba1c5abf15d83f52070635a" + "snapshot_sha256": "264e732aa882ebbb085990dc45427d8672f90690ae04392d6806ebd6a9211caa" }, "envelope": { "plan_id": 11545774673163874085, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", + "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -214,26 +218,26 @@ "strategy": "SketchAlgorithmStrategy" } ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" + "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", + "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json index 55c39087b..864df4391 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 1350462962080375017, "plan_version": 1, "summary_descriptors": { @@ -55,18 +55,22 @@ }, "outputs": { "14425999489689100447": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -183,10 +187,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 1350462962080375017, "plan_version": 1, - "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + "snapshot_sha256": "9816c890ff5995d34df441c81a7f76c165b49867e2835ba985420cad0b40a88d" }, "envelope": { "plan_id": 1350462962080375017, @@ -195,10 +199,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -210,7 +218,7 @@ { "stored_output_reference": { "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", "schema_version": 1, @@ -243,7 +251,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -618,10 +630,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 1350462962080375017, "plan_version": 1, - "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" + "snapshot_sha256": "9816c890ff5995d34df441c81a7f76c165b49867e2835ba985420cad0b40a88d" }, "envelope": { "plan_id": 1350462962080375017, @@ -630,7 +642,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -873,7 +885,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "materialization": 14425999489689100447, "output_grouping": { @@ -918,7 +930,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], @@ -934,7 +946,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", + "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -999,26 +1011,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" + "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json index bff198d61..148a5129a 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4863426083951867157, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4863426083951867157, "plan_version": 1, - "snapshot_sha256": "041bcc4ae7d3908c160ca40f3ef7d68e0dc37fa5010cfe78aed88180c472acef" + "snapshot_sha256": "522880ca2c669d989602b8b2b1beb7018adc40bc29170a6dc3cf3515d7c3d500" }, "envelope": { "plan_id": 4863426083951867157, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 4863426083951867157, "plan_version": 1, - "snapshot_sha256": "041bcc4ae7d3908c160ca40f3ef7d68e0dc37fa5010cfe78aed88180c472acef" + "snapshot_sha256": "522880ca2c669d989602b8b2b1beb7018adc40bc29170a6dc3cf3515d7c3d500" }, "envelope": { "plan_id": 4863426083951867157, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +117,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], @@ -129,7 +133,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", + "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +198,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" + "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json index 61a2e3d3f..402bcdebe 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 27061497774794526, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 27061497774794526, "plan_version": 1, - "snapshot_sha256": "0f481d092a0bb716d2eefae569e452f3aaaead3f06e26fdfed66df4878e2ac8a" + "snapshot_sha256": "74c6c294542f7b212779761d347e4c58cb4892d2c43523a2161e70052a8376c2" }, "envelope": { "plan_id": 27061497774794526, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 27061497774794526, "plan_version": 1, - "snapshot_sha256": "0f481d092a0bb716d2eefae569e452f3aaaead3f06e26fdfed66df4878e2ac8a" + "snapshot_sha256": "74c6c294542f7b212779761d347e4c58cb4892d2c43523a2161e70052a8376c2" }, "envelope": { "plan_id": 27061497774794526, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", + "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" + "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json index f1ab37343..f086f597c 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3235857638904289352, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3235857638904289352, "plan_version": 1, - "snapshot_sha256": "9b394eab4010ef72b9a949cba5f04fe68189b9e2d9f2103336c644d255c7539c" + "snapshot_sha256": "d12eb2ffe6c3c3e26c26ee725cd7562abc41e48bf0e453ab56da1ce0ee843fc7" }, "envelope": { "plan_id": 3235857638904289352, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3235857638904289352, "plan_version": 1, - "snapshot_sha256": "9b394eab4010ef72b9a949cba5f04fe68189b9e2d9f2103336c644d255c7539c" + "snapshot_sha256": "d12eb2ffe6c3c3e26c26ee725cd7562abc41e48bf0e453ab56da1ce0ee843fc7" }, "envelope": { "plan_id": 3235857638904289352, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +117,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], @@ -129,7 +133,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", + "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +198,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" + "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", + "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json index 0e21b210e..6a0a6995d 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17891999753521262724, "plan_version": 1, "summary_descriptors": { @@ -53,18 +53,22 @@ }, "outputs": { "12984500598014581905": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { + "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -181,10 +185,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17891999753521262724, "plan_version": 1, - "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + "snapshot_sha256": "0893fb182e4b35b83326d88d313a3b9a7687035559b51330095208e290ede771" }, "envelope": { "plan_id": 17891999753521262724, @@ -193,10 +197,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -208,7 +216,7 @@ { "stored_output_reference": { "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" }, "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", "schema_version": 1, @@ -241,7 +249,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -616,10 +628,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17891999753521262724, "plan_version": 1, - "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" + "snapshot_sha256": "0893fb182e4b35b83326d88d313a3b9a7687035559b51330095208e290ede771" }, "envelope": { "plan_id": 17891999753521262724, @@ -628,7 +640,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -871,7 +883,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" + "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" }, "materialization": 12984500598014581905, "output_grouping": { @@ -916,7 +928,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], @@ -932,7 +944,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", + "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -997,26 +1009,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" + "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json index b8e3abd2b..7c4082269 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3167846180279825593, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3167846180279825593, "plan_version": 1, - "snapshot_sha256": "3773d72986b0e243fc81008c5269c627bd10c9ccdc73e2badaa7aee7c5e15de3" + "snapshot_sha256": "792ef34c12265f97d1e85764bf09d07f554cc0899757e98606ff5f291ff80912" }, "envelope": { "plan_id": 3167846180279825593, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 3167846180279825593, "plan_version": 1, - "snapshot_sha256": "3773d72986b0e243fc81008c5269c627bd10c9ccdc73e2badaa7aee7c5e15de3" + "snapshot_sha256": "792ef34c12265f97d1e85764bf09d07f554cc0899757e98606ff5f291ff80912" }, "envelope": { "plan_id": 3167846180279825593, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", + "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,26 +194,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" + "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json index e3ce2225e..861f34b5e 100644 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17637043547591721229, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17637043547591721229, "plan_version": 1, - "snapshot_sha256": "953f830872fb25e81dd7f0d72fd13c52d57160e35ccbac04fbcfa7a46cab37fc" + "snapshot_sha256": "bd838c688bde485d5db53b9750b62e58ded5f87aa655ec6d9ef518aa6a74887b" }, "envelope": { "plan_id": 17637043547591721229, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 17637043547591721229, "plan_version": 1, - "snapshot_sha256": "953f830872fb25e81dd7f0d72fd13c52d57160e35ccbac04fbcfa7a46cab37fc" + "snapshot_sha256": "bd838c688bde485d5db53b9750b62e58ded5f87aa655ec6d9ef518aa6a74887b" }, "envelope": { "plan_id": 17637043547591721229, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -113,7 +117,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], @@ -129,7 +133,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", + "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -194,26 +198,26 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" + "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" }, { "candidates": [], "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" + "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" + "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", + "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", "query_index": 0 } ], diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json index 0808902f8..d64b4b83a 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14733843382488271694, "plan_version": 1, "summary_descriptors": { @@ -57,18 +57,22 @@ }, "outputs": { "11966640087163441478": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { + "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -185,10 +189,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14733843382488271694, "plan_version": 1, - "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + "snapshot_sha256": "1db96e399ee7d088567817e560420ca24f1f6b923ed6cd141a9b5192d4339c03" }, "envelope": { "plan_id": 14733843382488271694, @@ -197,10 +201,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -212,7 +220,7 @@ { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, @@ -247,7 +255,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", "nodes": { "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { @@ -651,10 +663,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 14733843382488271694, "plan_version": 1, - "snapshot_sha256": "01aa291d0bba16f136b29656f71d9d501b2e3e013133f65793468a426bb9d2e4" + "snapshot_sha256": "1db96e399ee7d088567817e560420ca24f1f6b923ed6cd141a9b5192d4339c03" }, "envelope": { "plan_id": 14733843382488271694, @@ -663,7 +675,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1337,7 +1349,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" + "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" }, "materialization": 11966640087163441478, "output_grouping": { @@ -1382,7 +1394,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -1398,7 +1410,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", + "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1463,13 +1475,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" + "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1534,26 +1546,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -1656,7 +1668,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", + "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", "physical_candidate": { "materialized_outputs": { "3": { @@ -2602,7 +2614,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", + "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", "physical_candidate": { "materialized_outputs": { "3": { @@ -3493,7 +3505,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", + "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", "physical_dag": { "nodes": { "2": { @@ -3821,7 +3833,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", + "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", "physical_dag": { "nodes": { "2": { @@ -4584,7 +4596,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", + "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json index 797824f8f..5f55bbb31 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15833270860732361489, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15833270860732361489, "plan_version": 1, - "snapshot_sha256": "d33232b7b98c627b6d530deac83577fe8d6e9c88268d75815eed930034214651" + "snapshot_sha256": "d303d04ea52f3faafe576f3bb7a6ca9b3a40b2aa278cd9d36928056896347571" }, "envelope": { "plan_id": 15833270860732361489, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 15833270860732361489, "plan_version": 1, - "snapshot_sha256": "d33232b7b98c627b6d530deac83577fe8d6e9c88268d75815eed930034214651" + "snapshot_sha256": "d303d04ea52f3faafe576f3bb7a6ca9b3a40b2aa278cd9d36928056896347571" }, "envelope": { "plan_id": 15833270860732361489, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -109,7 +113,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -125,7 +129,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", + "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -190,13 +194,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" + "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -261,26 +265,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -383,7 +387,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", + "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", "physical_candidate": { "materialized_outputs": { "3": { @@ -1329,7 +1333,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", + "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", "physical_candidate": { "materialized_outputs": { "3": { @@ -2220,7 +2224,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", + "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", "physical_dag": { "nodes": { "2": { @@ -2548,7 +2552,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", + "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", "physical_dag": { "nodes": { "2": { @@ -3311,7 +3315,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", + "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json index 7b0293a38..4b913b1b1 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5379663311087285901, "plan_version": 1, "summary_descriptors": {}, @@ -21,10 +21,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5379663311087285901, "plan_version": 1, - "snapshot_sha256": "c7f25e4059eb188819d2ca40a9d47afd269d55c1b6ca1b27d719b82fd7a17c04" + "snapshot_sha256": "92b433ace25b8150a5617cc6d26f6992540059bde5649800d79c58d58e7e5b7d" }, "envelope": { "plan_id": 5379663311087285901, @@ -33,10 +33,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -50,10 +54,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 5379663311087285901, "plan_version": 1, - "snapshot_sha256": "c7f25e4059eb188819d2ca40a9d47afd269d55c1b6ca1b27d719b82fd7a17c04" + "snapshot_sha256": "92b433ace25b8150a5617cc6d26f6992540059bde5649800d79c58d58e7e5b7d" }, "envelope": { "plan_id": 5379663311087285901, @@ -62,7 +66,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -146,7 +150,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -162,7 +166,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", + "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -227,13 +231,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" + "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -298,26 +302,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -420,7 +424,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", + "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", "physical_candidate": { "materialized_outputs": { "3": { @@ -1366,7 +1370,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", + "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", "physical_candidate": { "materialized_outputs": { "3": { @@ -2257,7 +2261,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", + "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", "physical_dag": { "nodes": { "2": { @@ -2585,7 +2589,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", + "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", "physical_dag": { "nodes": { "2": { @@ -3348,7 +3352,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", + "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json index 8c65a6b58..ec596ef85 100644 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json +++ b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json @@ -6,11 +6,11 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11938117179177087264, "plan_version": 1, "summary_descriptors": { @@ -57,18 +57,22 @@ }, "outputs": { "11966640087163441478": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" } }, "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { + "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { "semantic_format_version": 1, "semantics": { "kind": "planner", "fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { @@ -225,10 +229,10 @@ "collector_plans": [], "precompute_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11938117179177087264, "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + "snapshot_sha256": "3c83044a5a74315b8f3323e30df2e9ff4d0a37d78ebdb93fcecff8eba0d59498" }, "envelope": { "plan_id": 11938117179177087264, @@ -237,10 +241,14 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "ingest": { + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "protocol": "prometheus_remote_write_v1", "endpoint_path": "/api/v1/write", "timestamp_unit": "unix_milliseconds", @@ -252,7 +260,7 @@ { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" }, "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", "schema_version": 1, @@ -287,7 +295,11 @@ "materializations": [ { "semantic_fragment": { - "format_version": 1, + "format_version": 2, + "dataset_identity": { + "namespace": "example", + "dataset": "metrics" + }, "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", "nodes": { "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { @@ -758,10 +770,10 @@ }, "transmission_plan": { "summary_catalog": { - "schema_version": 4, + "schema_version": 6, "plan_id": 11938117179177087264, "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" + "snapshot_sha256": "3c83044a5a74315b8f3323e30df2e9ff4d0a37d78ebdb93fcecff8eba0d59498" }, "envelope": { "plan_id": 11938117179177087264, @@ -770,7 +782,7 @@ "activation_unix_ms": 10000, "expiry_unix_ms": null, "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", + "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", "capability_snapshot_id": "asapquery-local-v1" }, "frame_identity": { @@ -1706,7 +1718,7 @@ "binding": { "stored_output_reference": { "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" + "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" }, "materialization": 11966640087163441478, "output_grouping": { @@ -1761,7 +1773,7 @@ "candidate_assembly_rejections": [], "committed_roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -1777,7 +1789,7 @@ "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", + "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1842,13 +1854,13 @@ "consumer_count": 1, "group_id": 0, "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" + "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" }, { "candidates": [ { "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", + "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", "cost_estimate": { "erp_record_ids": [], "model": "backend_state_footprint_v1", @@ -1913,26 +1925,26 @@ "consumer_count": 1, "group_id": 1, "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" + "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" }, { "candidates": [], "consumer_count": 1, "group_id": 2, "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" + "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" }, { "candidates": [], "consumer_count": 1, "group_id": 3, "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" + "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" } ], "roots": [ { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", + "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", "query_index": 0 } ], @@ -2035,7 +2047,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", + "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", "physical_candidate": { "materialized_outputs": { "3": { @@ -2981,7 +2993,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", + "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", "physical_candidate": { "materialized_outputs": { "3": { @@ -3872,7 +3884,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", + "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", "physical_dag": { "nodes": { "2": { @@ -4200,7 +4212,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", + "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", "physical_dag": { "nodes": { "2": { @@ -4963,7 +4975,7 @@ } ] }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", + "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", "physical_dag": { "nodes": { "2": { diff --git a/docs/evaluation/issue754-human-review/ensembles/README.md b/docs/evaluation/issue754-human-review/ensembles/README.md index 7f15bfc82..c4b95d0bc 100644 --- a/docs/evaluation/issue754-human-review/ensembles/README.md +++ b/docs/evaluation/issue754-human-review/ensembles/README.md @@ -1,7 +1,8 @@ # Query ensemble candidate exports -Generated from Backend `cf9d0770` (test code `dcddbfcf`) and Planner -`176c1bd565e0c400f9a35996c2bd65de32475e72` using the Level 1 fixture contracts. +Generated from Backend `af507e08` and Planner +`bccc837f5caf21c888b2cce73c64a1be283b679a`, including explicit logical dataset +identity, using the Level 1 fixture contracts. All three Level 1 tests passed. These are structural exports, not cost selections or human approval. JSON files are gzip-compressed; DOT files show each bound DAG. Admission reports retain rejected candidates and reasons. diff --git a/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS b/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS index f9117982e..3adcef7dc 100644 --- a/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS +++ b/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS @@ -1,41 +1,41 @@ -3979e68d39e5a99f1567d5f7562261b8d647fe04001412201a9267c6bb19ecf8 all-ten/admission.json.gz +6573fb335aa2e61734bacc78b6af307f1600217e49d9d22956f729ade8e26baa all-ten/admission.json.gz e1c3fbfa2d50fc51cefb5c01f00f025edc334a42020b0785b8703f07e9d9cf7f all-ten/candidate-1.dot -571c9392573948e262c918b934b4acb6c63d37ddd4844f13b149f93460622e3c all-ten/candidate-1.json.gz +02a45f809d9da3b6cadc0b3e9e571a7fa3946d36939e4cc8b599885824511feb all-ten/candidate-1.json.gz 3b8ab574c085f96a71710fd37166051b6f9f0333d93a3077586c41a72e15d823 all-ten/candidate-11.dot -b449bdcbb7aed36d6f7a2214adb21a770953f1917852e0f8c82949242a9d0dae all-ten/candidate-11.json.gz +8f6944d4b20517d10c0ef6a3e561a04cf1fe51e6f80271f0d18bba7ca623e5e0 all-ten/candidate-11.json.gz 7c14f3b7e09854f16aa190abd6764158608bcf6d23211c40d013c4a778514555 all-ten/candidate-17.dot -446879cc8e898b5bdb0f9b266e907fa70fdc0184fadf389b3dfbc001ffff44f6 all-ten/candidate-17.json.gz +bf949405d1b59e872c84f1cc8a67c182aa1e2ce495925c17afc43da7f439d562 all-ten/candidate-17.json.gz 64c31a619c7b75d395eaae7970671b498cb5f95fe4c48e7c3784f28de2240b16 all-ten/candidate-19.dot -d249ceefb3fc049f287a18cb5e0b079f85fc4737a966da2313e29f1848f5fe5c all-ten/candidate-19.json.gz +5d34fb3d8f186731f19702c48d6712bf70988387a2f7a9a2bbffc0c40c247004 all-ten/candidate-19.json.gz 2ec5dc123c8bb73aca63a835de5aa432f4d6f30ec5f35ee828bf783607acd05e all-ten/candidate-2.dot -37e94465f656aed1aabf74da236120b97544755af5dd662ccc9f1a77574988e2 all-ten/candidate-2.json.gz +6adca4025e78eb903e389299db3446c8d0fffb3c703fb505575625194ac7d7c8 all-ten/candidate-2.json.gz cbb5191360767a7d674dac969a4439fca93c932cf8ffa8d284285d3bdc9514db all-ten/candidate-21.dot -ff55677eacec789e9a71a0027f6b6d74aa990845c8878d1a7b234fbf5017cf65 all-ten/candidate-21.json.gz +492b7e2559be5f860ba3ec67963e9e1dde30220f239bfe04774ab9ddf4505cfc all-ten/candidate-21.json.gz 40cf38b48b6839a76e7f5b8a3aedd05b35abe9b792a702f749c3257fdeb6ba43 all-ten/candidate-25.dot -805664cd07d2394b057ce17373054919f78638f83d7ceccaea76f174db52f45d all-ten/candidate-25.json.gz +d743ce25e1fcfeabfbcc31c3350abfcd93016964b1c4c232326692e5258160ef all-ten/candidate-25.json.gz 580d29a8e10d9674d20e793def94ebadacd493ab7ac683e6150c2e2600ed5c24 all-ten/candidate-3.dot -d29e0dbc7d3b778b826f40148ed412630578e8c0c42c4310498d41df9b66024f all-ten/candidate-3.json.gz +fa9c26cbc3e58bcce10ead9478ef16b21ca1846ebe2647997dfcec34ac0b948f all-ten/candidate-3.json.gz d89d81b944ec7e8f67172868ff31cc85e774512466aab0ac786943bb7b6136c7 all-ten/candidate-7.dot -e152e1bca5c4c4d55810d815ab52da30c82d05519e65d15f0558f03e28e31066 all-ten/candidate-7.json.gz +8a3d5442ba242dbeef024cb00bfa9062c031b6b1b589fb4147c3616aaf64380a all-ten/candidate-7.json.gz 7461b63f21a39804d09bb9f7fca85a11e9793c2bea339a7ed0a7303b5350f768 all-ten/candidate-9.dot -b5fe9ea7a700cb42f4aa7fa2341f0f34f8099f0d9eaee99cd417ce2cd24f4092 all-ten/candidate-9.json.gz -7138d7bf0b4ef036dcc9a98227fcee52ee3ccb2f662fceb462da17cd4a42f41d shared-quantiles/admission.json.gz +cbeee5d2086540342e267def53cb91654af88268843c3ee03aacaaee25a8dace all-ten/candidate-9.json.gz +1d179ee048cdfe6eaae51cf9dee7f68a04780355e30a0af218e87681df78d828 shared-quantiles/admission.json.gz 2607e6ff164a51e7dffae44677c91d5ab4c6fab0da096f5f105f6df55dd6df62 shared-quantiles/candidate-0.dot -59f028282a0aa9de334c65b134623809235651119edc565c97b7d8b600320b75 shared-quantiles/candidate-0.json.gz +6c7b80bca096b4993def4bfcf8e78e5feafa5b02de39c4fa8c45775d839cbde3 shared-quantiles/candidate-0.json.gz b0c3c4dd6d91e02b2d8b32b07596b3ef92ace3334dd4bb7b39beeeb587529c47 shared-quantiles/candidate-1.dot -dffe7a47de4e5732d4b920b5aafe0d209c72bc8cf92c7fc22c28b752966dc26b shared-quantiles/candidate-1.json.gz +681c18ee8c1d7c629834970430d0564cfaa0f13a1f6ed2e31bc84f311a779750 shared-quantiles/candidate-1.json.gz fd56bbdabea3e6d4ab97358a3332fce3349eabf32c6e8401fcd99a813190441a shared-quantiles/candidate-2.dot -e296d25192a91c536ab746e97e48b34a03481bf8b911d1379925d74e04557a35 shared-quantiles/candidate-2.json.gz +2d5dce66b1e5aabbeb609258aabf587b3d9bf1afc34e9e32b75bd83497f6e5cd shared-quantiles/candidate-2.json.gz 265f2c26cc1959271a98427eb152909dceb8978164a3ff7c02f5b575e3cbe75b shared-quantiles/candidate-3.dot -7ad36e082384a836f833b7fc6289a601971368d038d6b036f7f4c42c85bfe040 shared-quantiles/candidate-3.json.gz -5c1bce02cc9cf6212a93a1ffa79bf0a975cfb6e73cfb905fc531371ee6ea0260 shared-rate/admission.json.gz +7077e37591a6c34cf700d5d7b85fdebc5f8f8846fef3745b8e94cff013664ce2 shared-quantiles/candidate-3.json.gz +b1a664e65e5fd032d386ed6cac8193ca22492059c920bc23c3b3d34bf860ef17 shared-rate/admission.json.gz ac30b1c50cb86b54761679a50229b0ad3955c2c31089dabd918e095e6cc55ae6 shared-rate/candidate-0.dot -1771a2a6b8e55dc2dbc62c686b4a4f760692b7b89e29d0ae40ae13497412ad49 shared-rate/candidate-0.json.gz +5508aa8c83e18a38b5cb590e774559e6a9f804b466c90f069294f90abed71bdc shared-rate/candidate-0.json.gz 6e15ed465f915ede3349a128b824104c0363de529279ae4b20f1e13416c5145d shared-rate/candidate-1.dot -b94cf763a04748b26f637078ca0e9b930f68fd1cc1a151627cae00aa9e7a1891 shared-rate/candidate-1.json.gz +6d0ff24f65e48e8d567450b5d73059181f138496e09fbb8a14654924ceda970d shared-rate/candidate-1.json.gz b6c2835d50b5ffcb20611aa5cea186aa5d9fe7c0e6411d43f78f4a88efe616c1 shared-rate/candidate-2.dot -1d131464a7aa249e83f12ff9738d67cd200ac3aad5ba7b371b375ed4db7c2102 shared-rate/candidate-2.json.gz +c1e1b3af0ac2f935cb4fe4a073642d1ae130f8a96cac9b7a1d1fcf4e731e7926 shared-rate/candidate-2.json.gz 5b7d5462a2054c3f147070a06f82f6779990fd014311763da20d66b6075a7264 shared-rate/candidate-4.dot -5c8580871019c74d7e0fecc50981247e43193cc2f1949c454ef29d8d18cd257d shared-rate/candidate-4.json.gz +4e89b07495cab155fa33aad92a9c053523bae45ea1019d586bc64dcb683e47f0 shared-rate/candidate-4.json.gz f78c9e6e8775ca9efb9d4b876b5569fb1920cdae1da322f9bfc246c4669355cb shared-rate/candidate-5.dot -ab15209ede04104462d61f5dff4d87a6cf1fb480398c37d276b3e97341f57056 shared-rate/candidate-5.json.gz +3c59450e29a13fc571b325a72794efae84800d99375255f1254c00ad861b3d14 shared-rate/candidate-5.json.gz diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz index e9d94dd1dd75d3d0da41d81ec48ffb3d3294b4af..2bfcd027afea984b4140553952403a93765b609f 100644 GIT binary patch literal 4909 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 literal 4930 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 AO8@`> diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz index d4cb33d8831202506ccd4e6666c66d47629b9092..55257c1131aeb3eb99d3f9600ce41ab910b046ee 100644 GIT binary patch delta 13727 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 o4+tvgSL=-XY45=^#z`?uT>D+%vm7 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz index f717dab9345cac894e9072e978344fb21d8d9c73..7c3fd4504724bf58b2b9dba5563ad7f439360b0b 100644 GIT binary patch literal 23669 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 RZ+mX<12r8zID~P~{tt}aJP`l@ literal 23582 zcmZ^~V{~Rwvo0Fjw$ZVjPC7O^wyifdJMP%Y8{4*Rb!^+VZoa+GJ!hXW?p;6TtXX4e zV%4gro|?oFFd+Xqz`iaz&!X|A;;CNs6@*aWWib`YV7o)DYX!@SU(Y$qre)m1p;x-*k3STHFL+kQ+GSgXj)YQUG?aE>hRW3 zRxBFwA^K2z{N9<*g5^}wOd-ftJAUeOJ-%s(NBVAE8T1nQ3vOw%#1{hy_s;yv@L#(6 z2Ud@dbF)+3UAjImd*G*6_p@#m%+1LCstRwC_ED_;-1Xr_Qo99YveH!!X54Ja2DGV| z?jH!1X0-UxAraMq-g#y(AI`t04_sJexB& zbhg%NSJQZ3`(Ng|eA8=NvyjarPWZPv9Nr$

Hprx*sn9K= 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz index 8ca3124cb4404a1879a085befbdefc28d7adc42d..364af03f35ba028945ac61cce6549a9e82962a38 100644 GIT binary patch literal 23564 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 F@?VGRDCPhF literal 23500 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz index 6f452d54ae4cb3a97c6736499d12acd014302ba7..0560f1c98187501ccafed25fa0ebed816dc1b8b8 100644 GIT binary patch literal 23576 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 literal 23505 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 O(%eQ`0VN+qsQ&>~U>OSl literal 24088 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 t9WF{{R@c*0cZs diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz index 92c8f19a0bf35f62f6fba77192b16f665b651f34..d87847a84cfaea012ed971bab31f380f37ddcf81 100644 GIT binary patch literal 22435 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz index e5b04d26a5664b5731a5b4eeee42fc2017e5d4eb..1e816ac218013f4378e12dcef0b53945d4f203a9 100644 GIT binary patch literal 27513 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 J1P(AD{|EUbr=S1; diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz index 616169a42ad9498ee27dcca3b5a545db7fd8d01d..d2b4ff1c51762dd6b2e1bad27530ab3c652f5cff 100644 GIT binary patch literal 15649 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 z

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 I1rg5w04@rX^Z)<= literal 22824 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 OjxB^xT<#GL+W!ErW?WnV diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz index f7a00c3238752d4c083a623a8faf49f761bb262f..9a1aaf0a152ae2174550e2aae3222d4dd509dae7 100644 GIT binary patch literal 820 zcmV-41Izp$iwFP!00002|IL-%iW@i#h41?m!(6u@TR)cPRZ1CTOWF;Dq;xW+W!ZOM zrJY$=mQv`@(u-Uqb}Z@W)6v^kH#dLP=jP^i+sO}Zm$*Op?cL3-J=ps<@#+214yQLC z+ugtCcd8j%c@567iCb4TT?n#p3yx6LwYRQ5`-YtgBNDu6@5FuexPARK;_>{)VcYTk z!})xvpbr)G?U$3A|3|;xxkK@UsXhd)547B426YILn3>xqazbUm)@;mOU%QOebr=oU z`zi3Zo=+LJSeFlr@a9WsLP8n>6HxB%y-NkNoRfV5;%>~E+C8%M+b^%bd#djJpPwJT zl=nShpD*62?c~L6v&x##e6TykgpOW8tIlrWMBwBrs0!j{3`26XIdDAddhj@14wujO zk0<+Rhoh}y+G61cy7+Lh%i~q{+jV|C`SbrPv(wjHo3_#rsh7x1G8r2_ zUAmkv*V@hxm;b)`&6suk_v;_QZH}Z--5n57AlX>7hs;&-yL($q0i(FmIlAw#Yp*l8 zweaBV?T2xrUD^TzaOZ&{1ksXrMn=ahX$J2$wPcw)-O$vvZH>l7oWlAJZhO_lwCZt( zYG=!e1&Xf7(tDpas_2!t=-OUiYg6w|x|vjAuY4(P97`M=+m>0=308@ZbX1r{9d-d) zl|w7oi$HTROW;bhv<7PVGjQvS0)r=sN@E(VzZ^GRy3x!U2ZnT27MXo|vNvcojWY^~ z1WxBw3>*S;NtAmU#yf z*^AxHspbd^D8X=EZTH?b_!e89uDUyC2=?3^{{-9+CzX?wiskDf zW##b8af5QKOl6w8-%Tm#)zY=qYaQ&4%f;=UxM4KcmDuP$9pxt2><{h53X(i literal 823 zcmV-71IYXziwFP!00002|IJnHYFkMR{okhu`Q5^3B#lOSl~RIcB<&iET^gsfEc@;& zw`pNnN+F?T4TkGGV;y~*bM*Gr&COr+y}7yFcJhPUCGHP?dv|kd5BB~|e0qPh!|BaO zxch#7XR&duVWcvV2rZ^~AZdL-wo>M9F%fr&@N6q%w!I{B_w*gNufHN5&wm`Y9q&J! z&zAyyDAc!KPHz5-e!X)ybDPW9Gc8GSG$C-Bb2>A2q&ad@Pi}Mg#@LR!NU>7YfFAt` z_($PAe6oy&$lEjfZXoWPl6i7pt4SIMfoesj8JGf)l--fD55D~p{oPY_@BjS#@TI(; zHTK)ZyF>%q>`K^smC|`qBc9p3e-}Ptam{I5N%H1`g-s%+!#~2AVWL1Y|u03V7(ISI-)EN8TR1FMf z5Pm-0U_d~+GKX)KM!?y+4r%pXrtisAJ)uxu*|wVX6$)DdRVhvW#b^rA;b!`_lSC-*W<`$ySXehN~F2#x|-SjZ33riT9~j9oS-D z43j)m{mMtCncBC(ub^9JELF48m;;!~J$^ggmc_)OU)`iq?Q_p1J4?Tc_?n9Vv!&bGF(Pr2?keyX&<#-+nvYs@B2HSNWLcaNvPiW2p5h2vK^gF@&tx9bt(9ij?*3VO>^l9iC0M(tMVe zl|$B6V_k^lE4HQ#vqF+h%WA0?%}HeO5H9-@P|>v3hX2o(sWq%HxRJ`BCr4{UGCM8s z2rb-LC9Jm5hhRCbkt`TGXL!++?HACE5rtdzp$#a9gW4xAq1&r>{{ZOV7A3w3007e@ BrsMzs diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz index b20a58b20c71676902cc2e59f26b0e15045ad158..0a3fb10284c8233af2124e50d15bdbf10ab01258 100644 GIT binary patch delta 7438 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 MKfQ0!63T}G0Cdfk@Bjb+ delta 7336 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 X6G6>>&HY@M$m;(8A~4Y$0%!mLy`)aW diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz index 35bbdeefc4cd9dc030f1295648af0c51cf3a8d69..08f58bcc584b98ae8c1fa7f74a6a0202df13231b 100644 GIT binary patch delta 6830 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 delta 6761 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 delta 6153 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 bzvfJAKMDQAjfbXFzIgn9%#dBcpxyugy3p|= diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz index 883e33e19e93139161cd39f250656d34c6e27176..cc98eb1185a3498632b69597b3019b347a0fabcf 100644 GIT binary patch literal 2028 zcmVB*xBjnp6>ekufJx0_-?oR8~%2?83ZDR;lsVAk|$oZmJWD& z%ETYrT#lD*YRB{CU%UL-A#wWe-#-Rs8cmXd;sIQRyHBi5Yu2WXZheW&+@lB$>d|uUKX#Wy0cN(<-la9cRLX^Kg%>s0=GFn;1GHyu2OXO_W&5JALBpD*tRGZ1(>Z|J%jF6b&A$ZsU{?2;>Ecd6@+d8w*F|EfA3D< zm%DE!xGai-qbin==5sI8S|1e5-cpmr-n{|in8+A|$gHlF zR+PFRC>e>l28`N*J?kup79-KM4zf2hP#V|#Ono#vquG#LM$SVA$#6@n(Gm@4;+Fmt zy4|6nAxT`|foOKct}-)vs#vE$7A>p8h9PMr2vSa2(y|epa3hSHNJDh3ymTSJ3rYn~ zS71m&bN@nOJ<6yZCTx@mx6{A6SQi*+tEMx-aSnz1XaQAD69*bl7c!_(8uV{Z8#)_)?7fOd|F(NF+D9H?_3^&3&!Fkje=E-ev1m1Zeb z8|ska*>q%{fvsLJk8E4117BEb%O36xML+C(<^sJy>Zo}Q@h?DgLf08~tZY9hQ_IX> zo#qNrL9|h`6i=YGW}Q&#TzaM<6&?g)h&aQBOo0kTXBx%})~qMghR>8{c<5o9Uz`R| zqE^(K!yrc}L^p>4-PW~rJJ@R!xm&ZGc7Ly9FA*3H31}#RN zFGyPhPP$5$ur_24P6bU!;PI@Sbd zsIf*eQBGPXHV~XV9)k*FF^cn5+c>f@mJ$lE%hWqifJNfx~ z2gLO?Ab$eXTSBBc`i$Zeu_nl~P8F1fF};r((P|?gP%I42Ls#tq0~lkakY{R_vDIvB zS)GjC2nMwEpoI%H9Iu`Y5QDK@(ABFztlKg?l7w->V9UVK8i?xkB>Ham>MAFwv-_Vm+TUP;fcf}urjwN`rX#{96A7gDYiY@udv&Lq2o)p3d+C1{#(EvOQ*pT zP_|at;0rc4vVC_kTlA47e3JIzD5K#de5v+Xx)junLrI@0?2fu^)r1k?>?S(FNMJd^ zt;_<`mkA@q_CO#EKG0J_5?EL~sW@Zu&20ZFW_xw#1xOQb-=12Ex_TY8^cAgdkL_pH z1WC3S__$&D5n#=(Xdqk7^E~ObELNp%-_ap=wO+&tw?$h)P|Io*3YkvPt7Dm1ZM9rc zGZ5B!4b&*#r203IYT9zC62WJe3Dk4TBTy`XefSXvBC|wl+q0~Nh+5(aU7AiYS8ZON zDeMhy1Qu?=oHSD!GtuHyhsvC5P|m)6InGR5Z9MX*C|SkN*IG K$?SORBme;AR{3-Q literal 2026 zcmVH_pIDz&#RZli#Rpba2J~;c;NUPdFZMsMXSBX z&Cl;wygRTNfm#Ab-TT(A6cTSpXnF)VWs+6%N z(P%!6M;cLR5{1W*ob1EGzcsz;Xq2o=%_$bo+A?;Ra$Ae~lq3TiVUsYis)6$;l7({5 zwFawvX8K4|ny2c0Bw=x>zAV&Ij8UwmSwpf~3!dErJ1DdE?Mf~QY}any&Hn3$i}&#Q z@%--UeJ*Yv2i{V33lTC)6jqI^XvMB@PHXVgk+R7!tG#%o#L}`<;>u|eP5yZGZuZL$ zm;L4O<@KO%bbqII=PysL=i>qEAFg+I9|oQ;dbw^vTYuDIx^}!$c#Mz8I&J(=hL4ehy~# z)wxs`UWIatm}}JqgeOa79mk=E()|aOyz_}^ay1oL3k{>HGr7T#MYlY& znVWm&84Jp%t2cOTg=T9jPsTe76Y75{mMq}XSJpBMK~&d}R68k2PXpFrRq5Vm+fIq# zNl-zG&(HAp+->?7igoQd$uh#CHc}tmlE%!%%gmw3tY{g=khfiTFG#Y|WmZM0O7M{B zD~UCXdV`Z~u=RQL@y*2=h9XBph@rq0q~^($#uCvyO*;aT)$0IjQ1z&-ZuL498;r6I z8G16!G#nC1h-^-!c||u<2CuLN13fb@*uPTyF!jy<8SEb{zoj*K0>J)#cZJDOZqh&aD)YQn#O;T9xw6Xu@fYBO}&^mJ_@4i;Ei3{XgFxhRkr_)@3zyb`$R1p~)(jcP< zPeF4I^Ao8uyf55*Pf(P}15k31>ja!SzXzJ1qxJaU30~{T*Nfxz@^HP}?v4lFEq}N> zKEjo}Ke)qQHe2yp-{8G{gr7FMarS$~Mka>G{;(WHfQ8zO>(cZS4w;%NWS&Z|?-R&Mu$5$u42heAXo5%YHz3eeNUTnA@PrH+!uXjLv zz6Rt^hkC2#b12V}WL7OT#`}ng<@_Qm*ynFGY+(K#Zd|m+i z`Fek^7=RBfX!ARO4@dw%UG}lZ0G;!C()qZ1b=4Ep+5ImY?QgI_z6Q`iuF8-W=(rh#rVaC9Yp&G1pzuc+!ph5fH7^7^hK7>4 z^Y~6-hn-JW6um{!8ECwCERu}Y2tA1pPpUY$LaMH<>Vzd88rp}mpo94V`yT>(BQ$KJ zeHF-fpVoQ%QU+wf$JCX3LK2i36M@QR8PGEc;DDQ`dFuE2g<_!5N5N}lYqOhh8eVMm zOwuK1{L(VoR^ydP5i`%3j3h}kUUXdg*xtpezDNYc)8N$P7NSfr}kQ#Y#)rABH{U~KsJ zYQm8lV^D~ZB2%_x+01yawL=DwRmd7L)f!z^-u@?HSjx#cm%1YLAFzKR>_7ebFCnSo IOY0;60OC~oN&o-= diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz index ec5902e2d777fd064424b979f438ac758170d6b8..e91cec9a526adc0eabdabe6574b3d1c3d7a44f04 100644 GIT binary patch literal 12758 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz index 079e5481f21d085ccfb1ba587d6a2c2353e225b8..e9876276f0c35db09fdef35a681666aad53ae881 100644 GIT binary patch literal 8564 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 literal 12094 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz index 8ae1ba122a9f99f9921a99a95f80009e77a110a2..940ca9f5b673fa136e4482f8de25373377e51d90 100644 GIT binary patch literal 11924 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 H6zKl}S?4x` literal 11860 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 literal 15535 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�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¥G4%s>?3$~17&w^GBWsVdD!tqozm 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 Date: Mon, 28 Sep 2026 17:11:36 +0000 Subject: [PATCH 52/80] test(level1): assert candidate membership and account for every rejection Level 1 declared one expected plan per query while its stated purpose was to enumerate the candidate inventory before pricing. A single expected shape is a selection assertion in structural clothing, and four of the ten queries carried no expectation at all. Replace it with a membership contract. Each query declares the shapes the inventory must expose and how this fixture resolves them: MustBind, or MustReject with a named policy reason. The heap families Planner exposes for spatial-topk and topk-rate are now required to be present *and* refused, which is a positive assertion about the inventory rather than silence about it. Separate policy refusals from defects. A rejection that is neither a declared policy reason nor a recorded defect now fails the test. Three candidates fail with "Planner logical fragment does not match any original query subtree" and one with a schema incompatibility; main is green on these paths, so each is a regression introduced inside the #737 -> #728 stack. They are listed in KNOWN_BINDING_DEFECTS with exact occurrence counts, so a new instance fails and a fixed one forces its entry to be deleted. All must be gone before #775 installs and executes these candidates. Stop committing derived plans. candidates/ and ensembles/ were ~94k lines, are fully reproducible from the test, and every identity in them changes when the Planner pin moves; CI already uploads them on every run. Only the per-query admission reports stay in the tree, and they now reproduce byte-for-byte from this build. Historical synthetic-price exports move to archive/, and the README's hand-copied Planner revision is dropped in favour of reading the pin from Cargo.toml, since the copied one had gone stale. The sort-key contract test now compiles the query instead of reading a committed export, so it no longer depends on plans from an older Planner. A certified companion fixture for the heap candidates is NOT included: the issue-754 generator cannot supply one. Scoped evidence needs topk_selected_lower_bound > topk_excluded_upper_bound, and under the generator's own per-series domain the third- and fourth-ranked series overlap in both groups, while these queries evaluate in real_time scope so the bound must hold across the whole validity window. That needs a generator with non-overlapping per-series domains. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/issue754_level1.rs | 260 +- docs/design_docs/planning-test-layers.md | 10 +- .../issue754-human-review/README.md | 167 +- .../admission/grouped-rate.admission.json | 32 +- .../grouped-temporal-sum.admission.json | 22 +- .../admission/quantile-ratio.admission.json | 18 +- .../admission/spatial-quantile.admission.json | 24 +- .../admission/spatial-sum.admission.json | 24 +- .../admission/spatial-topk.admission.json | 20 +- .../temporal-quantile.admission.json | 18 +- .../admission/temporal-rate.admission.json | 24 +- .../admission/temporal-sum.admission.json | 18 +- .../admission/topk-rate.admission.json | 40 +- .../{ => archive}/grouped-rate.dot | 0 .../{ => archive}/grouped-rate.json | 0 .../{ => archive}/grouped-rate.md | 0 .../{ => archive}/grouped-temporal-sum.dot | 0 .../{ => archive}/grouped-temporal-sum.json | 0 .../{ => archive}/grouped-temporal-sum.md | 0 .../{ => archive}/quantile-ratio.dot | 0 .../{ => archive}/quantile-ratio.json | 0 .../{ => archive}/quantile-ratio.md | 0 .../{ => archive}/render.py | 0 .../{ => archive}/spatial-quantile.dot | 0 .../{ => archive}/spatial-quantile.json | 0 .../{ => archive}/spatial-quantile.md | 0 .../{ => archive}/spatial-sum.dot | 0 .../{ => archive}/spatial-sum.json | 0 .../{ => archive}/spatial-sum.md | 0 .../{ => archive}/spatial-topk.dot | 0 .../{ => archive}/spatial-topk.json | 0 .../{ => archive}/spatial-topk.md | 0 .../{ => archive}/temporal-quantile.dot | 0 .../{ => archive}/temporal-quantile.json | 0 .../{ => archive}/temporal-quantile.md | 0 .../{ => archive}/temporal-rate.dot | 0 .../{ => archive}/temporal-rate.json | 0 .../{ => archive}/temporal-rate.md | 0 .../{ => archive}/temporal-sum.dot | 0 .../{ => archive}/temporal-sum.json | 0 .../{ => archive}/temporal-sum.md | 0 .../{ => archive}/topk-rate.dot | 0 .../{ => archive}/topk-rate.json | 0 .../{ => archive}/topk-rate.md | 0 .../candidates/SHA256SUMS | 68 - .../candidates/grouped-rate-0.dot | 23 - .../candidates/grouped-rate-0.json | 2512 -------- .../candidates/grouped-rate-1.dot | 11 - .../candidates/grouped-rate-1.json | 1373 ---- .../candidates/grouped-rate-3.dot | 40 - .../candidates/grouped-rate-3.json | 4096 ------------ .../candidates/grouped-rate-4.dot | 31 - .../candidates/grouped-rate-4.json | 3009 --------- .../candidates/grouped-temporal-sum-0.dot | 21 - .../candidates/grouped-temporal-sum-0.json | 1324 ---- .../candidates/grouped-temporal-sum-1.dot | 11 - .../candidates/grouped-temporal-sum-1.json | 418 -- .../candidates/grouped-temporal-sum-3.dot | 23 - .../candidates/grouped-temporal-sum-3.json | 1555 ----- .../candidates/quantile-ratio-0.dot | 26 - .../candidates/quantile-ratio-0.json | 1942 ------ .../candidates/quantile-ratio-1.dot | 11 - .../candidates/quantile-ratio-1.json | 560 -- .../candidates/quantile-ratio-2.dot | 11 - .../candidates/quantile-ratio-2.json | 560 -- .../candidates/spatial-quantile-0.dot | 21 - .../candidates/spatial-quantile-0.json | 1319 ---- .../candidates/spatial-quantile-1.dot | 11 - .../candidates/spatial-quantile-1.json | 259 - .../candidates/spatial-quantile-2.dot | 11 - .../candidates/spatial-quantile-2.json | 585 -- .../candidates/spatial-quantile-3.dot | 11 - .../candidates/spatial-quantile-3.json | 259 - .../candidates/spatial-sum-0.dot | 21 - .../candidates/spatial-sum-0.json | 1135 ---- .../candidates/spatial-sum-1.dot | 11 - .../candidates/spatial-sum-1.json | 229 - .../candidates/spatial-sum-2.dot | 11 - .../candidates/spatial-sum-2.json | 550 -- .../candidates/spatial-sum-3.dot | 11 - .../candidates/spatial-sum-3.json | 233 - .../candidates/spatial-topk-1.dot | 11 - .../candidates/spatial-topk-1.json | 929 --- .../candidates/spatial-topk-2.dot | 19 - .../candidates/spatial-topk-2.json | 1487 ----- .../candidates/temporal-quantile-0.dot | 21 - .../candidates/temporal-quantile-0.json | 1228 ---- .../candidates/temporal-quantile-1.dot | 11 - .../candidates/temporal-quantile-1.json | 259 - .../candidates/temporal-quantile-2.dot | 11 - .../candidates/temporal-quantile-2.json | 259 - .../candidates/temporal-rate-0.dot | 21 - .../candidates/temporal-rate-0.json | 1046 --- .../candidates/temporal-rate-1.dot | 11 - .../candidates/temporal-rate-1.json | 233 - .../candidates/temporal-rate-2.dot | 11 - .../candidates/temporal-rate-2.json | 229 - .../candidates/temporal-rate-3.dot | 11 - .../candidates/temporal-rate-3.json | 233 - .../candidates/temporal-sum-0.dot | 21 - .../candidates/temporal-sum-0.json | 1044 --- .../candidates/temporal-sum-1.dot | 11 - .../candidates/temporal-sum-1.json | 229 - .../candidates/temporal-sum-2.dot | 11 - .../candidates/temporal-sum-2.json | 233 - .../candidates/topk-rate-0.dot | 25 - .../candidates/topk-rate-0.json | 5266 --------------- .../candidates/topk-rate-1.dot | 11 - .../candidates/topk-rate-1.json | 3985 ------------ .../candidates/topk-rate-2.dot | 15 - .../candidates/topk-rate-2.json | 4022 ------------ .../candidates/topk-rate-5.dot | 31 - .../candidates/topk-rate-5.json | 5645 ----------------- .../issue754-human-review/ensembles/README.md | 16 - .../ensembles/SHA256SUMS | 41 - .../ensembles/all-ten/admission.json.gz | Bin 4909 -> 0 bytes .../ensembles/all-ten/candidate-1.dot | 47 - .../ensembles/all-ten/candidate-1.json.gz | Bin 13991 -> 0 bytes .../ensembles/all-ten/candidate-11.dot | 125 - .../ensembles/all-ten/candidate-11.json.gz | Bin 23669 -> 0 bytes .../ensembles/all-ten/candidate-17.dot | 137 - .../ensembles/all-ten/candidate-17.json.gz | Bin 23564 -> 0 bytes .../ensembles/all-ten/candidate-19.dot | 126 - .../ensembles/all-ten/candidate-19.json.gz | Bin 23576 -> 0 bytes .../ensembles/all-ten/candidate-2.dot | 135 - .../ensembles/all-ten/candidate-2.json.gz | Bin 24164 -> 0 bytes .../ensembles/all-ten/candidate-21.dot | 120 - .../ensembles/all-ten/candidate-21.json.gz | Bin 22435 -> 0 bytes .../ensembles/all-ten/candidate-25.dot | 153 - .../ensembles/all-ten/candidate-25.json.gz | Bin 27513 -> 0 bytes .../ensembles/all-ten/candidate-3.dot | 55 - .../ensembles/all-ten/candidate-3.json.gz | Bin 15649 -> 0 bytes .../ensembles/all-ten/candidate-7.dot | 125 - .../ensembles/all-ten/candidate-7.json.gz | Bin 23258 -> 0 bytes .../ensembles/all-ten/candidate-9.dot | 125 - .../ensembles/all-ten/candidate-9.json.gz | Bin 22900 -> 0 bytes .../shared-quantiles/admission.json.gz | Bin 820 -> 0 bytes .../shared-quantiles/candidate-0.dot | 40 - .../shared-quantiles/candidate-0.json.gz | Bin 7604 -> 0 bytes .../shared-quantiles/candidate-1.dot | 15 - .../shared-quantiles/candidate-1.json.gz | Bin 3273 -> 0 bytes .../shared-quantiles/candidate-2.dot | 30 - .../shared-quantiles/candidate-2.json.gz | Bin 6845 -> 0 bytes .../shared-quantiles/candidate-3.dot | 25 - .../shared-quantiles/candidate-3.json.gz | Bin 6294 -> 0 bytes .../ensembles/shared-rate/admission.json.gz | Bin 2028 -> 0 bytes .../ensembles/shared-rate/candidate-0.dot | 54 - .../ensembles/shared-rate/candidate-0.json.gz | Bin 12758 -> 0 bytes .../ensembles/shared-rate/candidate-1.dot | 19 - .../ensembles/shared-rate/candidate-1.json.gz | Bin 8564 -> 0 bytes .../ensembles/shared-rate/candidate-2.dot | 44 - .../ensembles/shared-rate/candidate-2.json.gz | Bin 12156 -> 0 bytes .../ensembles/shared-rate/candidate-4.dot | 45 - .../ensembles/shared-rate/candidate-4.json.gz | Bin 11924 -> 0 bytes .../ensembles/shared-rate/candidate-5.dot | 72 - .../ensembles/shared-rate/candidate-5.json.gz | Bin 15570 -> 0 bytes .../grouped-rate.admission.json | 74 - .../grouped-temporal-sum.admission.json | 50 - .../quantile-ratio.admission.json | 38 - .../spatial-quantile.admission.json | 50 - .../spatial-sum.admission.json | 50 - .../spatial-topk.admission.json | 50 - .../temporal-quantile.admission.json | 38 - .../temporal-rate.admission.json | 50 - .../temporal-sum.admission.json | 38 - .../topk-rate.admission.json | 98 - 166 files changed, 452 insertions(+), 51191 deletions(-) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-rate.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-rate.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-rate.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-temporal-sum.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-temporal-sum.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/grouped-temporal-sum.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/quantile-ratio.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/quantile-ratio.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/quantile-ratio.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/render.py (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-quantile.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-quantile.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-quantile.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-sum.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-sum.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-sum.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-topk.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-topk.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/spatial-topk.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-quantile.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-quantile.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-quantile.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-rate.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-rate.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-rate.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-sum.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-sum.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/temporal-sum.md (100%) rename docs/evaluation/issue754-human-review/{ => archive}/topk-rate.dot (100%) rename docs/evaluation/issue754-human-review/{ => archive}/topk-rate.json (100%) rename docs/evaluation/issue754-human-review/{ => archive}/topk-rate.md (100%) delete mode 100644 docs/evaluation/issue754-human-review/candidates/SHA256SUMS delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-0.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-1.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-2.json delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot delete mode 100644 docs/evaluation/issue754-human-review/candidates/topk-rate-5.json delete mode 100644 docs/evaluation/issue754-human-review/ensembles/README.md delete mode 100644 docs/evaluation/issue754-human-review/ensembles/SHA256SUMS delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-1.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-1.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.dot delete mode 100644 docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz delete mode 100644 docs/evaluation/issue754-human-review/grouped-rate.admission.json delete mode 100644 docs/evaluation/issue754-human-review/grouped-temporal-sum.admission.json delete mode 100644 docs/evaluation/issue754-human-review/quantile-ratio.admission.json delete mode 100644 docs/evaluation/issue754-human-review/spatial-quantile.admission.json delete mode 100644 docs/evaluation/issue754-human-review/spatial-sum.admission.json delete mode 100644 docs/evaluation/issue754-human-review/spatial-topk.admission.json delete mode 100644 docs/evaluation/issue754-human-review/temporal-quantile.admission.json delete mode 100644 docs/evaluation/issue754-human-review/temporal-rate.admission.json delete mode 100644 docs/evaluation/issue754-human-review/temporal-sum.admission.json delete mode 100644 docs/evaluation/issue754-human-review/topk-rate.admission.json diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 70efc1b16..e52a8d7ca 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -16,6 +16,131 @@ use serde_json::{json, Value}; mod workload; use workload::Suite; +/// Level 1 asserts *membership*: which shapes the candidate inventory must +/// expose, and which it must refuse and why. It never names a winner, because +/// ranking is #742's contract and this layer prices nothing. +/// +/// A required shape declares how it must resolve. `MustBind` shapes have to +/// reach `AwaitingQuote`; `MustReject` shapes have to appear in the inventory +/// and then fail admission for the stated policy reason. The same shape can be +/// `MustReject` under the strict fixture and `MustBind` under the certified +/// one, so the fixture, not a second test path, carries the difference. +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Resolution { + // No fixture constructs this yet: the issue-754 generator cannot certify a + // heap (see `required_summary_shapes`), so every required shape here is a + // rejection. The variant is the half of the contract a certified fixture + // fills in, and deleting it would delete that contract. + #[allow(dead_code)] + MustBind, + MustReject(PolicyReason), +} + +/// Reasons a fixture may legitimately refuse an otherwise well-formed +/// candidate. Anything outside this set is a defect, not a policy decision. +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum PolicyReason { + /// The fixture supplies no evidence that certifies the summary readout. + NoCertifiedGuarantee, + /// The realized family cannot meet the query's declared accuracy target. + AccuracyTargetUnmet, +} + +impl PolicyReason { + fn matches(self, reason: &str) -> bool { + match self { + Self::NoCertifiedGuarantee => reason.contains("accuracy guarantee"), + Self::AccuracyTargetUnmet => reason.contains("does not satisfy"), + } + } + + const ALL: &'static [Self] = &[Self::NoCertifiedGuarantee, Self::AccuracyTargetUnmet]; +} + +/// Sketch/heap families each query must expose, with how this fixture resolves +/// them. The strict issue-754 fixture certifies no heap, so every heap family +/// is required to be present *and* rejected; that is a positive assertion about +/// the inventory, not silence about it. +/// +/// A certified companion fixture cannot be derived from this generator. Scoped +/// evidence needs `topk_selected_lower_bound > topk_excluded_upper_bound`, and +/// under the generator's own per-series domain (`multiplier * base` to +/// `multiplier * (base + modulo)`, as `issue754_workload` reads it for the +/// quantile operands) the third- and fourth-ranked series overlap in both +/// groups: group `a` selects down to 40 while excluding a series reaching 130, +/// and group `b` selects down to 360 while excluding one reaching 850. The +/// pointwise ordering never actually changes, but the queries evaluate in +/// `real_time` scope, so the contract must hold across the whole validity +/// window, not at one instant. Certifying a heap needs a generator with +/// non-overlapping per-series domains. +fn required_summary_shapes(name: &str) -> &'static [(&'static str, Resolution)] { + match name { + "spatial-topk" => &[( + "CountSketchWithHeap", + Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), + )], + "topk-rate" => &[ + ( + "CmsWithHeap", + Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), + ), + ( + "CountSketchWithHeap", + Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), + ), + ], + _ => &[], + } +} + +/// Binding defects this fixture reaches today. Level 1 records them rather than +/// tolerating them silently: each entry must still occur exactly `count` times, +/// so a new instance fails the test and a fixed one forces its line to be +/// deleted. `main` is green on these paths, so every entry is a regression +/// introduced inside the #737 → #728 stack, and all of them must be gone before +/// #775 installs and executes these candidates. +const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ + ( + "grouped-rate", + "Planner logical fragment does not match any original query subtree", + 1, + ), + ( + "grouped-rate", + "physical program has incompatible input or result schema", + 1, + ), + ( + "grouped-temporal-sum", + "Planner logical fragment does not match any original query subtree", + 1, + ), + ( + "spatial-topk", + "Planner logical fragment does not match any original query subtree", + 1, + ), +]; + +/// Classify one admission rejection. A reason that is neither a declared policy +/// refusal nor a recorded defect fails the query outright. +fn assert_rejection_is_accounted_for(name: &str, reason: &str) { + if PolicyReason::ALL + .iter() + .any(|policy| policy.matches(reason)) + { + return; + } + assert!( + KNOWN_BINDING_DEFECTS + .iter() + .any(|(query, defect, _)| *query == name && reason.contains(defect)), + "{name}: unaccounted binding rejection: {reason}\n\ + Add a policy reason if this is a deliberate refusal, or fix the \ + defect. Level 1 does not accept unexplained bind failures." + ); +} + struct ExpectedPlan { family: Option, partitioning: &'static str, @@ -152,15 +277,43 @@ fn assert_rate_sort_expression(dag: &asap_types::executable_plan::OwnedPostAsapD } // A descending sort over a timestamp or label must fail the Level 1 contract. +/// Compile the topk-rate query and return every ranking DAG the inventory +/// exposes. Reading a committed export instead would pin the contract to plans +/// generated by an older Planner revision; candidate identities do not survive +/// a Planner bump, so the fixture has to be produced by the build under test. +fn compiled_topk_rate_sort_dags() -> Vec { + let case = workload::suite() + .queries + .into_iter() + .find(|case| case.name == "topk-rate") + .expect("topk-rate left the issue-754 suite"); + let (request, environment) = workload::input(&case) + .into_physical_compilation_request() + .unwrap(); + let mut dags = Vec::new(); + for candidate in enumerate_exact_and_materialized_candidates(request).unwrap() { + let Ok(plan) = DeploymentPlanCompiler.compile_promql(candidate, environment.clone()) else { + continue; + }; + dags.extend( + plan.query_plan + .selected_dags + .values() + .filter(|dag| { + dag.nodes + .iter() + .any(|node| node.payload["operation"].get("Sort").is_some()) + }) + .cloned(), + ); + } + assert!(!dags.is_empty(), "topk-rate exposes no ranking DAG"); + dags +} + #[test] fn topk_rate_sort_contract_rejects_wrong_value_expression() { - let artifact: Value = serde_json::from_str(include_str!( - "../../docs/evaluation/issue754-human-review/topk-rate.json" - )) - .unwrap(); - let dag: asap_types::executable_plan::OwnedPostAsapDag = - serde_json::from_value(artifact["query_plan"]["selected_dags"]["compat-query-0"].clone()) - .unwrap(); + let dag = compiled_topk_rate_sort_dags().remove(0); assert_rate_sort_expression(&dag); for column in [0, 2] { let mut wrong = dag.clone(); @@ -694,15 +847,11 @@ fn issue754_queries_have_valid_physical_plans() { "root substitutions must not be reported as exhaustive joint search" ); } - let heap_families: &[&str] = match case.name.as_str() { - "spatial-topk" => &["CountSketchWithHeap"], - "topk-rate" => &["CmsWithHeap", "CountSketchWithHeap"], - _ => &[], - }; + let heap_families = required_summary_shapes(&case.name); let mut heap_roots = heap_families .iter() - .map(|family| { + .map(|(family, resolution)| { let trace = request .planner_selection_trace .iter() @@ -730,11 +879,14 @@ fn issue754_queries_have_valid_physical_plans() { ); assert!(trace["guarantee"].to_string().contains("topk_max_distinct_items"), "fixture lacks an enforced bound; cardinality estimates cannot certify a heap"); - trace["logical_root_id"].as_str().unwrap().to_owned() + ( + trace["logical_root_id"].as_str().unwrap().to_owned(), + *resolution, + ) }) .collect::>(); if case.name == "topk-rate" { - for family in heap_families { + for (family, resolution) in heap_families { let trace = request .planner_selection_trace .iter() @@ -758,7 +910,10 @@ fn issue754_queries_have_valid_physical_plans() { .query .input_contracts() .all(|(id, _)| split.materialized_outputs.contains_key(&id))); - heap_roots.push(trace["logical_root_id"].as_str().unwrap().to_owned()); + heap_roots.push(( + trace["logical_root_id"].as_str().unwrap().to_owned(), + *resolution, + )); } } let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); @@ -777,17 +932,47 @@ fn issue754_queries_have_valid_physical_plans() { ); match result.status { CandidateEvaluationStatus::AwaitingQuote => assert!(result.plan_id.is_some()), - CandidateEvaluationStatus::CompilationFailed => assert!(result - .unavailable_reason - .as_ref() - .is_some_and(|reason| !reason.is_empty())), + CandidateEvaluationStatus::CompilationFailed => { + let reason = result.unavailable_reason.as_deref().unwrap_or_default(); + assert!( + !reason.is_empty(), + "{}: bind failure without a reason", + case.name + ); + assert_rejection_is_accounted_for(&case.name, reason); + } ref status => panic!("unexpected pre-pricing status: {status:?}"), } } + // Each recorded defect must still occur exactly as often as declared: + // a new occurrence and a silently fixed one both fail here. + for (query, defect, count) in KNOWN_BINDING_DEFECTS { + if *query != case.name { + continue; + } + let observed = admission + .iter() + .filter(|result| { + result + .unavailable_reason + .as_deref() + .is_some_and(|reason| reason.contains(defect)) + }) + .count(); + assert_eq!( + observed, *count, + "{}: recorded defect count changed for {defect:?}; \ + update KNOWN_BINDING_DEFECTS (delete the entry once fixed)", + case.name + ); + } if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { - std::fs::create_dir_all(&directory).unwrap(); + // Mirror the committed layout: `admission/` is the contract, so a + // downloaded CI artifact drops straight onto the repository copy. + let admission_dir = std::path::Path::new(&directory).join("admission"); + std::fs::create_dir_all(&admission_dir).unwrap(); std::fs::write( - std::path::Path::new(&directory).join(format!("{}.admission.json", case.name)), + admission_dir.join(format!("{}.admission.json", case.name)), serde_json::to_vec_pretty(&admission).unwrap(), ) .unwrap(); @@ -880,7 +1065,7 @@ fn issue754_queries_have_valid_physical_plans() { case.name ); } - for root_id in heap_roots { + for (root_id, resolution) in heap_roots { let heap = admission .iter() .filter(|candidate| candidate.logical_root_ids.contains(&root_id)) @@ -889,16 +1074,25 @@ fn issue754_queries_have_valid_physical_plans() { !heap.is_empty(), "physical heap candidate disappeared before admission" ); - assert!( - heap.iter().all(|candidate| candidate.status - == CandidateEvaluationStatus::CompilationFailed - && candidate.total_cost.is_none() - && candidate - .unavailable_reason - .as_ref() - .is_some_and(|reason| reason.contains("accuracy guarantee"))), - "missing proof must be an explicit admission failure: {heap:?}" - ); + match resolution { + Resolution::MustBind => assert!( + heap.iter().all(|candidate| candidate.status + == CandidateEvaluationStatus::AwaitingQuote + && candidate.plan_id.is_some() + && candidate.total_cost.is_none()), + "certified shape must reach pricing unpriced: {heap:?}" + ), + Resolution::MustReject(policy) => assert!( + heap.iter().all(|candidate| candidate.status + == CandidateEvaluationStatus::CompilationFailed + && candidate.total_cost.is_none() + && candidate + .unavailable_reason + .as_deref() + .is_some_and(|reason| policy.matches(reason))), + "missing proof must be an explicit {policy:?} admission failure: {heap:?}" + ), + } } } } diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md index f8ed73bab..f1dd3ec53 100644 --- a/docs/design_docs/planning-test-layers.md +++ b/docs/design_docs/planning-test-layers.md @@ -8,7 +8,7 @@ ERP collection, feedback-driven replanning and deployment switching are deferred | PR | Input | Assertion | | --- | --- | --- | -| #728: structure | workload and declared execution/accuracy contracts | Every supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions | +| #728: structure | workload and declared execution/accuracy contracts | Membership: required shapes appear in the inventory and resolve as declared (bind, or refuse for a named policy reason); every other rejection is a recorded defect with a fixed occurrence count. No prices, no winner | | #742: ranking | same candidates plus synthetic complete quotes | Selection follows costs, reverses with costs, and excludes unavailable candidates | | #775: execution | workload, synthetic quotes, finite fixture data | Mutate quotes to select each admitted candidate, install and execute it; validate every query result and execution provenance | @@ -37,6 +37,14 @@ once, ingests its fixture once, and checks every query in that workload. under the fixture's contracts, not an exhaustive Cartesian product of hypothetical query plans. Binding rejections remain visible; prices cannot override them. +A rejection is not self-justifying. Level 1 separates *policy* refusals — the +fixture declining to certify a candidate, which are asserted as required +outcomes — from *defects*, which are bugs recorded with exact occurrence counts +so that neither a new instance nor a silent fix can pass unnoticed. Level 1's +enumerated candidate plans and ensembles are CI artifacts, not repository +content: they are fully derived, and their identities change with the Planner +pin. Only the per-query admission reports are committed. + ## Synthetic cost scope Prices are deterministic test inputs, not resource measurements. The execution diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index da8ef553e..97e2a1f87 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -1,94 +1,119 @@ # Issue #754 plans for human review -The [ensemble exports](ensembles/README.md) cover shared-rate, shared-quantile and -full-workload candidates without prices or a selected winner. - -The `candidates/` directory contains physical plans for structural review. No -human approval is recorded. Level 1 now exports candidate JSON/DOT and per-query -`*.admission.json` reports before pricing, including `bind_failed` reasons. It -never asserts a cost-selected winner. - -The top-level selected-plan pages are historical exports from the revision in -`source-commit.txt`, using synthetic fixture prices. They remain useful for -comparison, but are not the current Level 1 contract or production selection -evidence. Ranking belongs to Level 2; observed selection quality belongs to -Level 3. See [test responsibilities](../../design_docs/planning-test-layers.md). - -Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -`176c1bd565e0c400f9a35996c2bd65de32475e72`. - -## Current implementation boundary - -These exports describe the current Backend implementation. They do **not** prove -completion of the Planner physical-candidate installation/execution handoff. -Logical provenance and installed native physical programs are shown separately. -Spatial TopK binds a complete current-series snapshot and runs a persisted native -Sort → Limit program. Planner also exposes a CountSketch-with-heap physical -candidate over the same snapshot. This fixture has no enforced distinct-item -bound or score-separation proof, so its heap candidate is explicitly rejected -before pricing. The inherited `native_snapshot_topk` tests cover certified heap -admission, cost-dependent selection and analytical workspace costing; a separate -real-process test covers Remote Write and heap HTTP results. Signed samples do -not authorize CMS. Rate TopK also exposes native exact ranking, CMS and -CountSketch heaps above its bound per-series Rate readout. This fixture lacks -heap proof and records the rejection. Separate controlled tests select each -program through Backend costs; process E2E tests verify both heap families over -durable counter SDS, including reset, window changes and process restart. -Planner also exposes fixed-window candidates that finalize Rate and build the -heap during precompute. Their typed stored boundary and both physical DAGs are -listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, -multiple groups, resets, missing windows and restart. This placement requires -the finite complete-input barrier; it does not claim continuous completeness. -Grouped Rate exposes both query-time and precomputed Sum as native physical -candidates. In both, each series is finalized with PromQL Rate semantics before -Sum groups the values. The precomputed candidate retains independent complete -60-second windows at this fixture's 10-second query cadence; it does not merge finalized -rates across windows. Process E2E tests compare both placements, including a -five-second cadence with a 65-second evaluation, missing grouping labels and durable restart. -Other PromQL paths retain the documented Backend adapter representation. +Level 1 asserts *membership*, not a winner: for each query it requires that the +candidate inventory expose particular shapes, and that the shapes this fixture +declines to certify be refused for a named policy reason. It prices nothing, so +no file here records a cost or a selected plan. Ranking is #742; observed +selection quality is Level 3. -Candidate discovery preserves each root's admitted computations. Deployment -currently evaluates single-root substitutions in a preferred workload context; -it does not exhaustively enumerate joint workload combinations. Fixture costs -are not evidence of production-optimal placement. +## What is committed, and what is not + +| Path | Contents | Regenerated by | +| --- | --- | --- | +| `admission/*.admission.json` | The contract. One report per query: every candidate's id, status and, where it failed, the exact reason. `total_cost` is `null` throughout. | The Level-1 test | +| `archive/` | Historical selected-plan pages, DOT and `render.py`, exported with synthetic fixture prices from an earlier revision. Kept for comparison only. | Nothing | + +Enumerated candidate plans (`candidates/`) and workload ensembles (`ensembles/`) +are **no longer committed**. They ran to roughly 94,000 lines, they are fully +derived from the test, and every identity in them changes whenever the Planner +pin moves. CI uploads them on every run as the `issue754-level1-plans` artifact, +including on failure. Download that artifact when a specific rejection needs +explaining; its `admission/` directory drops straight onto this one. + +## Identities are pinned, and they move + +Candidate, physical-candidate and logical-root ids are content-addressed over +the Planner build. They are **not** stable across a Planner bump: changing the +pin rewrites every id here while leaving every status, reason and `plan_id` +untouched. Do not cite an id from `archive/` — those were produced by a +different Planner revision and no longer resolve. + +Backend source revision is in [source-commit.txt](source-commit.txt). The +Planner revision is whatever `planner-types` pins in the workspace `Cargo.toml`; +read it from there rather than from a number copied into prose, which is how the +previous revision in this file came to be wrong. + +## Current admission result + +| Query | Candidates | Bound | Refused | +| --- | --- | --- | --- | +| spatial-sum | 4 | 4 | — | +| spatial-quantile | 4 | 4 | — | +| temporal-sum | 3 | 3 | — | +| temporal-rate | 4 | 4 | — | +| temporal-quantile | 3 | 3 | — | +| quantile-ratio | 3 | 3 | — | +| grouped-rate | 6 | 4 | 1 fragment mismatch, 1 schema incompatibility | +| grouped-temporal-sum | 4 | 3 | 1 fragment mismatch | +| spatial-topk | 4 | 2 | 1 no certified guarantee, 1 fragment mismatch | +| topk-rate | 8 | 4 | 4 no certified guarantee | + +Two kinds of refusal appear here and they are not equivalent. + +**Policy refusals** are the fixture declining to certify a candidate, and they +are asserted as required outcomes. The heap candidates are the whole of this +category: Planner exposes `CountSketchWithHeap` for `spatial-topk` and both +`CmsWithHeap` and `CountSketchWithHeap` for `topk-rate`, above a bound per-series +Rate readout. This fixture supplies no distinct-item bound and no score +separation, so each one is refused before pricing. That refusal is the +assertion — the shapes must be present *and* rejected. + +A certified companion fixture cannot be derived from the issue-754 generator. +Scoped evidence requires `topk_selected_lower_bound > +topk_excluded_upper_bound`, and under the generator's own per-series value +domain the third- and fourth-ranked series overlap in both groups (group `a` +selects down to 40 while excluding a series reaching 130; group `b` selects down +to 360 while excluding one reaching 850). The pointwise ordering never changes, +but these queries evaluate in `real_time` scope, so the contract must hold +across the whole validity window rather than at one instant. Certifying a heap +needs a generator with non-overlapping per-series domains. The inherited +`native_snapshot_topk` and `native_rate_topk` tests cover certified heap +admission against fixtures built for it. + +**Binding defects** are bugs. Three candidates fail with `Planner logical +fragment does not match any original query subtree` and one with a schema +incompatibility. `main` is green on these paths, so each is a regression +introduced inside the #737 → #728 stack. They are enumerated in +`KNOWN_BINDING_DEFECTS` in the Level-1 test with exact occurrence counts: a new +instance fails the test, and a fixed one forces its entry to be deleted. Every +entry must be gone before #775 installs and executes these candidates. The same +error fails `repeated_dashboard_executes_multiple_selected_panes` and +`shared_exact_dashboard_executes_selected_workload` in CI today. ## Review order 1. Check source, value transformations, grouping, windows and readouts. -2. Compare candidate rejection reasons with the query's accuracy requirement. +2. Compare each refusal reason with the query's accuracy requirement, and check + which of the two categories above it belongs to. 3. Check persisted boundaries, definition IDs and requested pane coverage. 4. For topk-rate, check the actual rate-value sort expression and partition keys. -5. Compare costs and rejected candidates before reviewing the selected adapter. -The strict spatial-quantile fixture rejects the default KLL guarantee. A separate -assertion with relaxed accuracy verifies that both KLL and DDSketch reach costing -when admitted. Level 1 checks grouped-temporal-sum structure and minute coverage; Level 2 -checks cost-dependent placement. Sort-key mutation tests reject ranking -by timestamp or label instead of the finalized rate value. +Candidate discovery preserves each root's admitted computations. Deployment +evaluates single-root substitutions in a preferred workload context; it does not +exhaustively enumerate joint workload combinations. | Query | PromQL | | --- | --- | -| [grouped-rate](grouped-rate.md) | `sum by (label_0) (rate(data[1m]))` | -| [grouped-temporal-sum](grouped-temporal-sum.md) | `sum by (label_0) (sum_over_time(data[1m]))` | -| [quantile-ratio](quantile-ratio.md) | `quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])` | -| [spatial-quantile](spatial-quantile.md) | `quantile by (label_0) (0.9, data)` | -| [spatial-sum](spatial-sum.md) | `sum by (label_0) (data)` | -| [spatial-topk](spatial-topk.md) | `topk by (label_0) (3, data)` | -| [temporal-quantile](temporal-quantile.md) | `quantile_over_time(0.9, data[1m])` | -| [temporal-rate](temporal-rate.md) | `rate(data[1m])` | -| [temporal-sum](temporal-sum.md) | `sum_over_time(data[1m])` | -| [topk-rate](topk-rate.md) | `topk by (label_0) (3, rate(data[1m]))` | +| grouped-rate | `sum by (label_0) (rate(data[1m]))` | +| grouped-temporal-sum | `sum by (label_0) (sum_over_time(data[1m]))` | +| quantile-ratio | `quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])` | +| spatial-quantile | `quantile by (label_0) (0.9, data)` | +| spatial-sum | `sum by (label_0) (data)` | +| spatial-topk | `topk by (label_0) (3, data)` | +| temporal-quantile | `quantile_over_time(0.9, data[1m])` | +| temporal-rate | `rate(data[1m])` | +| temporal-sum | `sum_over_time(data[1m])` | +| topk-rate | `topk by (label_0) (3, rate(data[1m]))` | ## Reproduce -From the #728 worktree: - ```sh ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \ cargo test -p control_plane --test issue754_level1 --locked -- --test-threads=1 ``` -The test exports enumerated candidates into `candidates/` and admission reports -at the top level. It does not regenerate the historical selected-plan pages. +This writes `admission/` plus the uncommitted `candidates/` and `ensembles/` +trees. It does not regenerate `archive/`. + Actual execution and recovery evidence is maintained in the downstream [bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). diff --git a/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json index e6c7612c7..1d2156cd9 100644 --- a/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json +++ b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:87b839e53f17c6edb9300442353164b2be820b3935786213063526cb53a6c96c", + "candidate_id": "asap-explain-v1:candidate:111f0952136afd6e948171d6e16b8c676d34b55547bdf99843205593a97ef47f", "logical_root_ids": [ - "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b" + "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984" ], - "physical_candidate_id": "asap-explain-v1:physical:7ccc3bc27c1b96ada6ee6ba3fc13d6086f238bdd76a5b789ef1264884ebce6ae", + "physical_candidate_id": "asap-explain-v1:physical:47825c1d8d1596ca28581a9c3911012f43f2e69e5375fed4703a123d48ac3e51", "identity_unavailable_reason": null, "status": "bound", "plan_id": 5849823772717530049, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:26e523685f44afb79b6cf56e61e83103bad15f18eae703e32f89edc23f76bbfe", + "candidate_id": "asap-explain-v1:candidate:5720ec70a85747b7ed172ed0dea5e64452c43638184ffce632bdc0b547cb945f", "logical_root_ids": [ - "asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba" + "asap-explain-v1:root:4c88a5e7a225f5a46dbf69d5abfd7df6277d8adbb6d3e6d551b2773fff417860" ], - "physical_candidate_id": "asap-explain-v1:physical:8cfce96a5da0445c91268f4b08c0ef73e4f3f5c24f75a05b9272203f5281f3d8", + "physical_candidate_id": "asap-explain-v1:physical:4300a782bb2a5d4045f46fb57d992a8834c6069a5f735549f0507caa98252eb8", "identity_unavailable_reason": null, "status": "bound", "plan_id": 741363842036532054, @@ -24,9 +24,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:75549c88c5ef740087b6227e4a296e618acebb67efb1db5837b568e3100444e6", + "candidate_id": "asap-explain-v1:candidate:9a6da4a496cd79bb65f8e11a6d3a14a1f8d25bc1198298df6f2a2b56fa20b225", "logical_root_ids": [ - "asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456" + "asap-explain-v1:root:6daba5f3c9b44ad12632739d6780f55e616a9653fbd1525b02168d0e453a4845" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -36,11 +36,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:e55145861b536c12ea805c740f9c620c26a962496cdb1ab6474a99a98e599f4c", + "candidate_id": "asap-explain-v1:candidate:f1d848dd9b94a31003252e3e67de1fc831e8cd65e6816ac62bf5f0e1153924a6", "logical_root_ids": [ - "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5" + "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105" ], - "physical_candidate_id": "asap-explain-v1:physical:26c63bfb557453a9a1e144baaaa1156de7f8b1e0cab4afd4f241d392fcab9111", + "physical_candidate_id": "asap-explain-v1:physical:405478c7249bbf80125586a7fffa2568d84b797d0b354692be3fde55dad7a3f8", "identity_unavailable_reason": null, "status": "bound", "plan_id": 15282866737310247190, @@ -48,11 +48,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:b39e34722ce28083cbad29620719a38093563e34cf6e69431ff395315d960f8e", + "candidate_id": "asap-explain-v1:candidate:ec910d95d9d6da4f5d07f294f742290d18ab508bdafc9f350322591dc453d664", "logical_root_ids": [ - "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac" + "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35" ], - "physical_candidate_id": "asap-explain-v1:physical:cb63c4da47a097c41d7d40bbc9c6da3506003e36fd4d4d69464dab773fc261dc", + "physical_candidate_id": "asap-explain-v1:physical:7ee64b28e1a319d45bfa1b89940e164be12e84c751323db4b70ce5923f2eed60", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3349874915222028658, @@ -60,9 +60,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:04b3d3fc23a69590e3c24eeed8d01d045fadab84a403128ce95321d162e38a28", + "candidate_id": "asap-explain-v1:candidate:6be4fb9f425339017648a016bdcf3d4191d067ea32bea01c7464bbe04e7dcde0", "logical_root_ids": [ - "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b" + "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55" ], "physical_candidate_id": null, "identity_unavailable_reason": null, diff --git a/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json index 3ca6e19fa..d67c27597 100644 --- a/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:f6fd11e41c82b8183f3d94404506a7a44f482242434d23a3ff42afb6b6cd8f71", + "candidate_id": "asap-explain-v1:candidate:cac6fd2d1eb23e36d3d6dea26d91383b5bfb2bde71ff43eeb9b873bffc20008d", "logical_root_ids": [ - "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7" + "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549" ], - "physical_candidate_id": "asap-explain-v1:physical:6c4cb0f2eb8ac0d54fb1f95e57901f190e4b40d89b96b1d08f1f510d85b1090a", + "physical_candidate_id": "asap-explain-v1:physical:4b0cb19a0a9c053291f2d7bb6ed032a80a76f706df42047961b51c490cfb6f1c", "identity_unavailable_reason": null, "status": "bound", "plan_id": 398383639928265061, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8e166101c5b7e3b81d048c3744c9d425a8f358dfa9eae019de62a00da9f88fc5", + "candidate_id": "asap-explain-v1:candidate:6514e86127465662ab44d368ad43c83e682d9cc7fad42da7fc84907094dcdac4", "logical_root_ids": [ - "asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3" + "asap-explain-v1:root:cc3eb5e15d1bcaf981dca5a4450f7a550709d52f0b87d0f68842e61de9f7f4fa" ], - "physical_candidate_id": "asap-explain-v1:physical:4796571e5d404038547011ad55bb6f46da69b10f59a2a3eaf7ce1da37d3452ab", + "physical_candidate_id": "asap-explain-v1:physical:ef727cded34086f495ca0f9930fef6197e967ce7e22a3ad9f7045efe389ae141", "identity_unavailable_reason": null, "status": "bound", "plan_id": 375190931036314940, @@ -24,9 +24,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:8c50c016194b4ec8b868f06cb97c4b22dc9015cca04575a66497b73809702553", + "candidate_id": "asap-explain-v1:candidate:0c7f183a76d8e52946122044e047540dd4340df864d51d9d43e0448226eddaa3", "logical_root_ids": [ - "asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f" + "asap-explain-v1:root:afed30a788e560b32b6a5e3d72e6aca13b8cd09c2fc184e950bc6a6f68ec7e57" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -36,11 +36,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:aa11b64fc0bed7d4b186586f95a450ecce8786bc16025d4badcaa74702c6dbb7", + "candidate_id": "asap-explain-v1:candidate:40dd21fdc165cc2a65b26c4c5a11e3c2da152435497b9e879db9a04015725322", "logical_root_ids": [ - "asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f" + "asap-explain-v1:root:b8c508ddc54d5bc05ce612f20451625866cd9c4c76d97ed47a2bfb87e47db290" ], - "physical_candidate_id": "asap-explain-v1:physical:9c92585937a8293993dd8f50b79fa15c76b40ff754dbe417504d6e9a8a63a185", + "physical_candidate_id": "asap-explain-v1:physical:3e1a1a41993110533f5d64a598f55da19ff8f819b21f9c03dc292d20c3742f07", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3225737927651639557, diff --git a/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json b/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json index e072fbfb5..bb1f6036e 100644 --- a/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json +++ b/docs/evaluation/issue754-human-review/admission/quantile-ratio.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:c08f9149edabd1c321f061675315136e6579e3b47bbc64dd3d499981a0bfef5a", + "candidate_id": "asap-explain-v1:candidate:4fb544af8f312840e962c54cfa2dcffbad5bb3debebf58e8b512acba1a07bee5", "logical_root_ids": [ - "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2" + "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc" ], - "physical_candidate_id": "asap-explain-v1:physical:6b7a0e6306e75f8ce5cc3345ad7bc065f90be002025e618b555765fa79f334ba", + "physical_candidate_id": "asap-explain-v1:physical:bdd60d919a3717a7eac447277bd55d9cb0d2489121c4c275be8535974668df1b", "identity_unavailable_reason": null, "status": "bound", "plan_id": 14871479243635342203, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:0a10a2802dd2a1ba4e225c9ccd4a516371a85cad8986b21ce1b69169ed07acc7", + "candidate_id": "asap-explain-v1:candidate:4a707b1f6e9ac5a5b31643a1eee202400ead6e24f3725eba0804283f1500bb1c", "logical_root_ids": [ - "asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0" + "asap-explain-v1:root:cb06b175d20dbe1f760083d83562229a77ffbf3b4f719dbbc422d48c54880cbf" ], - "physical_candidate_id": "asap-explain-v1:physical:7bc14aea270b4e313ea33ac62e1c248aed293f35dd0642078ff51c08715acb48", + "physical_candidate_id": "asap-explain-v1:physical:3f1e2b58edfa1c0af3cb3180a0632c438f3f68a8219868aa89b4c00b3a06c2d1", "identity_unavailable_reason": null, "status": "bound", "plan_id": 5752356276213301876, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:bf7668c327a794ae092a59a4193fa742387270c081279428090a8afcaf261eb1", + "candidate_id": "asap-explain-v1:candidate:7f9c6332a1d49b67039b33c02a2b4cc324cfca3271fee74cdc8f907e59bb72d2", "logical_root_ids": [ - "asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d" + "asap-explain-v1:root:6341ef0ca36372c08399bd313a99aab646d639ad3f55107c2e038b0339493a50" ], - "physical_candidate_id": "asap-explain-v1:physical:bf4e9fe54a95b98c580e951c3ba57cffc5ee30a6a59fc0b4cd54ef89aba8bbff", + "physical_candidate_id": "asap-explain-v1:physical:f87a97555e148f5d4bbdc8ce2c0c43970ce3e28f1d86d83187a4008447bb55b7", "identity_unavailable_reason": null, "status": "bound", "plan_id": 12971657221408630864, diff --git a/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json index c6a096599..9692c489a 100644 --- a/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json +++ b/docs/evaluation/issue754-human-review/admission/spatial-quantile.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:4354fd26d4956a318fa5456240c0da68a3caa45e4446b8e15f181d0c53783468", + "candidate_id": "asap-explain-v1:candidate:c9aaf94a2015bbb6bc16c6da810771953107d1316817b63788f031334b824f68", "logical_root_ids": [ - "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d" + "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2" ], - "physical_candidate_id": "asap-explain-v1:physical:71de817eaf6fa746062e3795a419ee775e9d31a0d510bc74bb22c81d7c5ec288", + "physical_candidate_id": "asap-explain-v1:physical:bf2ff22c472f8c253909eb82e6e056d3f3a8558176ba2f865dc241fbe3cc314d", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3294188734724225991, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a0788f2335f317159241018e38b349e300d94233d6c2c372e1115a7669eb8098", + "candidate_id": "asap-explain-v1:candidate:54b2218020929f8b0d25267363baaa2c34a9b92b4cd99faa7790593bcb437ded", "logical_root_ids": [ - "asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8" + "asap-explain-v1:root:fd88d52b75a7faf02f8c7b0ec431ba495f22b63e62695a388b313871434ea2e6" ], - "physical_candidate_id": "asap-explain-v1:physical:ba4202b91ce58b3c19e40be364dc5f551ac35862068d5e52ddd6177d0dea74e4", + "physical_candidate_id": "asap-explain-v1:physical:d76fd2149f74284fdd27bed60f1b1d7e0b752f8ec43853271130405e945fb660", "identity_unavailable_reason": null, "status": "bound", "plan_id": 14256379658571227787, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:64858a2c738280483704598eea5dc6c1d6f302f7b7089c09991f308fbf37982d", + "candidate_id": "asap-explain-v1:candidate:dc49674bd5b4a491c1e32421471de94183448a57e2974bf5880f4c1014f6d565", "logical_root_ids": [ - "asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c" + "asap-explain-v1:root:59753aa608478f315510b90d33afe3d3498b424dfbe744dbb595b0d898a16dba" ], - "physical_candidate_id": "asap-explain-v1:physical:e8ab81814c4b32ad300e454b3a80c4946026cf18020174eb6660a3bd98942d23", + "physical_candidate_id": "asap-explain-v1:physical:6eb943c7680d7bc70eb41402fcebd957c600040bec07698011d74789d8b8b0af", "identity_unavailable_reason": null, "status": "bound", "plan_id": 18366075381595067177, @@ -36,11 +36,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:79e9835d8db3988d68f3423675cd87e9773a6609f8147d9878c7debd76e10730", + "candidate_id": "asap-explain-v1:candidate:71ac43494ecab69c9808292bc9b5f44b21cec3ff30a8433774531aff351bff81", "logical_root_ids": [ - "asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae" + "asap-explain-v1:root:ff6c7fa75bd824d15015c7b39434e7b7956caa545dabb6a4b0300d38ce852b13" ], - "physical_candidate_id": "asap-explain-v1:physical:6af3b1dafd992795fc98fc2164bc74cc8c112b69e611605d0a2e16f2f866821a", + "physical_candidate_id": "asap-explain-v1:physical:d4080a0b42161499e7f65aa98f73e07b8093a1b271879644633d465cc50c09e8", "identity_unavailable_reason": null, "status": "bound", "plan_id": 7667691247138405742, diff --git a/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json index 055bea91c..07187c27a 100644 --- a/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:9f815fefaf3981f4626c4f0bbecd6a2ff80ceb9c07c3f31a4fe791a78aeac63f", + "candidate_id": "asap-explain-v1:candidate:3be3a41143a4f294dd86565f1b6bb5799c2a58b91cc3e2ce693933b2ab70a0ec", "logical_root_ids": [ - "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65" + "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7" ], - "physical_candidate_id": "asap-explain-v1:physical:bc367137ad7802cdcb2d9aa085481d742813ccf81cd4af1b9fdf262f2111c1bd", + "physical_candidate_id": "asap-explain-v1:physical:1d8c58c38d15133c78840488619a3327806ef1dacd3bcfb328e7ba437d829c2d", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3688256239081920855, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2e6c1b7b89ff83cf7818176a987df5c3473ae40083b34ae02c576c026048b258", + "candidate_id": "asap-explain-v1:candidate:abf5efc0850b4b6277747e6f1854128d7d317036073049557d7bc8aa5901fe4e", "logical_root_ids": [ - "asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52" + "asap-explain-v1:root:7ff3b3d94ab998a2379b3ece3415130f068445e61bf76faca2580b9745c1a573" ], - "physical_candidate_id": "asap-explain-v1:physical:9738b844b88e5904d4aeb45407b68ca73b3cc8bae476c4cbe949fa1c71a8b214", + "physical_candidate_id": "asap-explain-v1:physical:839f658c5abbda84fa3ff561ec9b91abdcde972208cb67b0bb151aebd56049d1", "identity_unavailable_reason": null, "status": "bound", "plan_id": 17875413431231421451, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:30684f35a6589915d271235aacbb45ab7d63de02b0a84a6d9cb4a7fb74960d3b", + "candidate_id": "asap-explain-v1:candidate:b7db63ce72644bb7114426c030589f6da8b1e031aa40c794b8d1272179443c21", "logical_root_ids": [ - "asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa" + "asap-explain-v1:root:3052368e6a27c889cd28866ab95cd2d31700861582303eeeeca4916ace17d75c" ], - "physical_candidate_id": "asap-explain-v1:physical:30b0e7dc2668e9607661dc69059e5240fade30d21c94ae7f7cce62a7cf3e73a9", + "physical_candidate_id": "asap-explain-v1:physical:7b333a16d4d53d7be8adb6a0c1414c99f31dfd03738ab16958868fd20eb0755d", "identity_unavailable_reason": null, "status": "bound", "plan_id": 8064649510529993241, @@ -36,11 +36,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:2117947b4b3a330ebea6931c1a77e5a85cfb928d4d26c61496ae4d76f29ecf82", + "candidate_id": "asap-explain-v1:candidate:04b75c822a626cb540735532131ced917dd2268098297c88a225f235275466b7", "logical_root_ids": [ - "asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814" + "asap-explain-v1:root:45fc4ceb0dfc3aa52fefb47dd50844411b0ff858390366fef488ab3244f0810e" ], - "physical_candidate_id": "asap-explain-v1:physical:ffba38d6fe0ca3626b208d737d922e9a54dca183e0960d27e1281a8a9c025956", + "physical_candidate_id": "asap-explain-v1:physical:941c854f10c2cb6f50e13c6f540d817009530956e216850f704af41bc6eedef6", "identity_unavailable_reason": null, "status": "bound", "plan_id": 10907830462850005469, diff --git a/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json index 574c0bfc0..a7494cbea 100644 --- a/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json +++ b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json @@ -1,8 +1,8 @@ [ { - "candidate_id": "asap-explain-v1:candidate:58f399bf628c33f5ba9a72648f9ed2f3f2e75b1181b9b86d9e7f08849b29e18a", + "candidate_id": "asap-explain-v1:candidate:7d3e10d14fca58a7ecf3bb41932c6a4e644eca1b9a1ebb18d6a36365c2f16c64", "logical_root_ids": [ - "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92" + "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -12,11 +12,11 @@ "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" }, { - "candidate_id": "asap-explain-v1:candidate:3c32fbddf25395e4edf1a48a31b8a868fedf3e054c229e5fdd72a445ecd42d44", + "candidate_id": "asap-explain-v1:candidate:8750d56b757927cf51befebf02d41ed72de02bc2454d8789f943f6a70fffaedd", "logical_root_ids": [ - "asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1" + "asap-explain-v1:root:d3fb125ea5076ac3e0310f3fefda894380e5160a9a66a6f6cf0385cfe2fce9fb" ], - "physical_candidate_id": "asap-explain-v1:physical:e59f1ec5404fa5bd4069c09b838f0ff74fcc6fde2b974a23ea1f07329d95a506", + "physical_candidate_id": "asap-explain-v1:physical:49338bca64db2ee6610bfc59cb2b7f92c0ff6d0a5b63b58abf431638e2ee6919", "identity_unavailable_reason": null, "status": "bound", "plan_id": 5538412219857372274, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:30835e38582d2361630291255e8e16465befbd5a7f72bfeed329b9cab4370fc7", + "candidate_id": "asap-explain-v1:candidate:f35b353455f28664f5d479b20dfa5d8c7d15bdb38e38c3001760ceea861e427a", "logical_root_ids": [ - "asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a" + "asap-explain-v1:root:3f042e8731583d1bff8e7f8fea235b22aa7b91c197f24377269b9aba882e7293" ], - "physical_candidate_id": "asap-explain-v1:physical:8391c4c488d5971b67801884e3af9bb4fb08c46da45d61904ae12b086847ad02", + "physical_candidate_id": "asap-explain-v1:physical:0ab57dcc6b6f25ddacf1dcde8778b86eb14f1ab19142418d9f4becbc87c853b4", "identity_unavailable_reason": null, "status": "bound", "plan_id": 2697027346875258477, @@ -36,9 +36,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:f970bcdb71bd853b66e897020a61d0e4e822d3a61e818549c903c3974ddc7f78", + "candidate_id": "asap-explain-v1:candidate:fa96fd113280e9693ebe25570e56388d43c994536c3e011fda2a12378ad92cf4", "logical_root_ids": [ - "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29" + "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21" ], "physical_candidate_id": null, "identity_unavailable_reason": null, diff --git a/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json index a93e16d5e..5ce895501 100644 --- a/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json +++ b/docs/evaluation/issue754-human-review/admission/temporal-quantile.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:c0821021fb0f0ede52cc359b062a25b521f59529c0b01d3045450e51f843bde9", + "candidate_id": "asap-explain-v1:candidate:cae8c0dc87b8c9b8a4caf0505c0e6f93331ef8a6a11738891490a699d95e9bec", "logical_root_ids": [ - "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265" + "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12" ], - "physical_candidate_id": "asap-explain-v1:physical:06abad4563c1f00189e8f718354c7bf380a2bf216c2c64e19eeea9dae227fff5", + "physical_candidate_id": "asap-explain-v1:physical:8928adb5cbe3827eac3eb3494c586dccf712858b4db91f92c0a0f9b5c4a39d0a", "identity_unavailable_reason": null, "status": "bound", "plan_id": 11818444224054941250, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:625dc2ecb160daea9220f3c11ad598a06b50664ef7bc9790d442644a1f9a94e6", + "candidate_id": "asap-explain-v1:candidate:f6baac22056351e8ab54eced4b908df054269b9b37cfe712a909d715a843d51c", "logical_root_ids": [ - "asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4" + "asap-explain-v1:root:4c0760500525736640e1f5cfefe23f81975c1986959cfda3a8d81c8e1528780b" ], - "physical_candidate_id": "asap-explain-v1:physical:ae3c88d23a919c5e1c0d2a743822ed3338945c29a827849ada3bd37c3ebc182d", + "physical_candidate_id": "asap-explain-v1:physical:6161dde9c05e443ef70973dc8d4e4de1012c20c7e32fe66f3b14ffe596996146", "identity_unavailable_reason": null, "status": "bound", "plan_id": 4754089690189431057, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:985b7f5c84ddcdf36ce558a4da7e86d7e4511ddcdcb470dba23ae48759cb0317", + "candidate_id": "asap-explain-v1:candidate:685f5f0b8a54645b9149cd418dba5a87b04ed49de58596c1a979e6669b6ccee1", "logical_root_ids": [ - "asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b" + "asap-explain-v1:root:37f71dd62f9a9ba01d93f319ede576bb568eec80f4a14f46b7d3a3907ee344a2" ], - "physical_candidate_id": "asap-explain-v1:physical:d0c2addd51491030e110e2534c0cb0fe7ce47b67a72e0faf17cfdb7edb0371d2", + "physical_candidate_id": "asap-explain-v1:physical:dc7476ab614c0587fbabcff0fe9cf2eabf671ada395f234a308d9bc8c11ca102", "identity_unavailable_reason": null, "status": "bound", "plan_id": 11545774673163874085, diff --git a/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json index d28f5ba23..4021abe64 100644 --- a/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json +++ b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:58095076fcd25aa06dd6b1139c2d666f7f864d1c2cfa8da7a68c4336146dbce0", + "candidate_id": "asap-explain-v1:candidate:e9d29c931bba7e8d5126f86ac1c4c1a591a90fe069ae8fcba809556b1431139a", "logical_root_ids": [ - "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" + "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" ], - "physical_candidate_id": "asap-explain-v1:physical:3abdcddbce0076bb0f960bdbbadb2d764cc1637f37f928dfe344b3606bdc89eb", + "physical_candidate_id": "asap-explain-v1:physical:4621c0eac39587cbeeaf3a65cff8aa3dd9bcf440a3a653156b35ee6f8427ecda", "identity_unavailable_reason": null, "status": "bound", "plan_id": 1350462962080375017, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a807d3c844faa560c71a0ffcc409b8b56f953736f833f12c8ccce423de372bde", + "candidate_id": "asap-explain-v1:candidate:f68f3bbd303d1d8f2211252730af8b5f78e3536ebb17df6f62db9b4f34a8a99a", "logical_root_ids": [ - "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" + "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" ], - "physical_candidate_id": "asap-explain-v1:physical:f10d832145869c1a1691c81c5a14cb67e10fb2c442ee46e9cd19b1915404c570", + "physical_candidate_id": "asap-explain-v1:physical:328414918d487bf96849fcc640d6692f2de285c9ece96da6663010dcd8a9e580", "identity_unavailable_reason": null, "status": "bound", "plan_id": 4863426083951867157, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3dd7c380b3c0085f43c8482bbf72ac2f4b4caa6f1a98c7470acad94b82e2e2d8", + "candidate_id": "asap-explain-v1:candidate:63307678b5ac4b6551b16bbb6ff52a1390043de10997d737ab048e0249d7e101", "logical_root_ids": [ - "asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1" + "asap-explain-v1:root:20edcbe6a7c98400a1ed3d85bf6e50d0bb3815c0588613057b45bfb5d0110c2a" ], - "physical_candidate_id": "asap-explain-v1:physical:f2b4e5a7eb528da59a178559563506669184b715bc73b4ac9ed74a1fc77ff22f", + "physical_candidate_id": "asap-explain-v1:physical:805bb8cc1e5151d09e32d793522a9a824dbb9dc6b5e2727796d658b6de9d69c7", "identity_unavailable_reason": null, "status": "bound", "plan_id": 27061497774794526, @@ -36,11 +36,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:3fdaf973b5b17f03c0026ce43a74a141e46d0a0502365b420b3336eb05ccb1b7", + "candidate_id": "asap-explain-v1:candidate:e43ed052748b0278634e65c01a0faddffe80ef2cb539e1eaaf51b4a89c043fcf", "logical_root_ids": [ - "asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a" + "asap-explain-v1:root:52e399207dc2e8015624fc1167db3a5ee14447eeeef748c4e0a08102e837eeff" ], - "physical_candidate_id": "asap-explain-v1:physical:25e28dfdbf455e1affaccc38531735cba8054b29b8a824ae77c79fdb0ca70e67", + "physical_candidate_id": "asap-explain-v1:physical:1d50d68ea9aa9939fd369e190ac573184ce95b3cc598a1e4cf06dd585cb8d0d1", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3235857638904289352, diff --git a/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json index 938983259..ce9b0b3c3 100644 --- a/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:3bee11ead3773ff58e41f9007d248c7134c04ce29d4a4bdef1f3a9050537560d", + "candidate_id": "asap-explain-v1:candidate:01edf185ad4f84f95cfcc38bdc8171a8d92452d47bf316b408c9c37928bfee7a", "logical_root_ids": [ - "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2" + "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5" ], - "physical_candidate_id": "asap-explain-v1:physical:35be3a29d59d5ffe624cb7776f222b0ca5e6083d12e5c40fd0c1aabe3daa577e", + "physical_candidate_id": "asap-explain-v1:physical:87227440f782d4af181eb18fbadfee77d286df4356a8e8c9fa2d26e16fc4931a", "identity_unavailable_reason": null, "status": "bound", "plan_id": 17891999753521262724, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:a594d656c22382d2710527de66ad2f53f26f0f1b53b31c5979da81a762fc7ebe", + "candidate_id": "asap-explain-v1:candidate:f4ad48202aae7a3e0fd5fbe558b6496b2894f26898a2a739de4aff1188ff9580", "logical_root_ids": [ - "asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163" + "asap-explain-v1:root:68707b744b7e3c770561391fdca5a428e5693343ae6e28935b5f3c90fd2f4c44" ], - "physical_candidate_id": "asap-explain-v1:physical:9c11f7ce82300d270e53a249926c3a924c9225d7a353b048772ba83672eb45d4", + "physical_candidate_id": "asap-explain-v1:physical:00f0ebe97213f5f8ba2977920985819c9602a43e28d9fbe4fce4e29119eb5ee7", "identity_unavailable_reason": null, "status": "bound", "plan_id": 3167846180279825593, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:51a3c044f756b1a55a9a392a05448bc602fe03cc0bb08e739654033903cb2a80", + "candidate_id": "asap-explain-v1:candidate:cdbc5a3b9c4c439cd0cd9346cabf84383f41ba8375965f901bed62fc32664211", "logical_root_ids": [ - "asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173" + "asap-explain-v1:root:f184b3151f9a3094c8969aabc655efc1c2845a30cb2045fc6fa80eb0f0340b5e" ], - "physical_candidate_id": "asap-explain-v1:physical:ebb74e79b04e6981663aac695ef814ebd80b6f5a2345b97b3be43019fa11ce05", + "physical_candidate_id": "asap-explain-v1:physical:7156c54b17a13f028c9d7fd0c5046d0653cbdcf0c06c7477b354e9148ae84893", "identity_unavailable_reason": null, "status": "bound", "plan_id": 17637043547591721229, diff --git a/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json b/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json index ccb2b4144..925207dfe 100644 --- a/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json +++ b/docs/evaluation/issue754-human-review/admission/topk-rate.admission.json @@ -1,10 +1,10 @@ [ { - "candidate_id": "asap-explain-v1:candidate:a327bc875dc0442d14ff542121c4dbae359d13824d2f1e05cf7a14d8d7a6c931", + "candidate_id": "asap-explain-v1:candidate:111c7f89045f3f95d2496526c0e639483e68e7eccd5233b5800217bb48ca75fc", "logical_root_ids": [ - "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b" + "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24" ], - "physical_candidate_id": "asap-explain-v1:physical:37dec2c54420e8acdb1f6b425d0abba0cda66ef485eaa1e7a01b8d7011dd5066", + "physical_candidate_id": "asap-explain-v1:physical:196a6f0d69e6a659db8e260d799c43ef321c987b10f208d765f4905c4f3f00f3", "identity_unavailable_reason": null, "status": "bound", "plan_id": 14733843382488271694, @@ -12,11 +12,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:b9e7353b08881f81af8934010b159498e31e7842ec5a3a2a672c5b1f41837dab", + "candidate_id": "asap-explain-v1:candidate:ce6d33de51ec5ae0d2d7f07881dd3eb7e5b395d9785589d5cdd0837098cf2f85", "logical_root_ids": [ - "asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb" + "asap-explain-v1:root:d56e4eb55b93685203954c7ba13cd63e97364a54b94b7d9296c2d4fd904157b2" ], - "physical_candidate_id": "asap-explain-v1:physical:7d7f051f253b853bd6a092b38e1ea274fda9465ab7540f0bc06a7af618282e8a", + "physical_candidate_id": "asap-explain-v1:physical:39b0b2e7a9f6c2702bafc47a781a7d11573b49c657c947541b15cd60dee3b5c7", "identity_unavailable_reason": null, "status": "bound", "plan_id": 15833270860732361489, @@ -24,11 +24,11 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:60a26ce929f7e27340ebd8555bba5b691e41eb0d57d6a730d69735baa6720476", + "candidate_id": "asap-explain-v1:candidate:e3a772c43298db6d5212f19233f9f799102eea82179768ed1e3485f2494b5cd7", "logical_root_ids": [ - "asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec" + "asap-explain-v1:root:5e56d98a238228c80a8ed1b60bacf60ae8c4cdb37e06fa1aeaa22097c4b4ddd0" ], - "physical_candidate_id": "asap-explain-v1:physical:6ec1a661f1ddc81ab2b7c771ed6ec852332aefc8d3e7827a3551c88dda52598f", + "physical_candidate_id": "asap-explain-v1:physical:50811f37d1645f2d71bf7dfc600357213487c408b6521f5536f5e10218fe915b", "identity_unavailable_reason": null, "status": "bound", "plan_id": 5379663311087285901, @@ -36,9 +36,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:1660105b2e06cd9a9f498679cb2179aab28d2d3a674d3990e76e80cc0450694d", + "candidate_id": "asap-explain-v1:candidate:90197a1355bccfb7e3b4b8223ed1ddd7e1008175605ff1edfe54c6c0741b8de1", "logical_root_ids": [ - "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f" + "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -48,9 +48,9 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:a6ddc5cbfd0d2f2b509df334546e3e21f276ac4a1e1e54ab15d3b919e088bf3c", + "candidate_id": "asap-explain-v1:candidate:c024ce553894a4a530d5a95127501840d547bc8986567f0fa2e686a69da43e5d", "logical_root_ids": [ - "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa" + "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -60,11 +60,11 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:601ebe163e70ba24555540e00da90a72d682308b06cc53215f610dd6412a52c5", + "candidate_id": "asap-explain-v1:candidate:c14415b2ba781f81821bfa69680db6e7704f0aef682d0ba8eb195629bcf1958a", "logical_root_ids": [ - "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65" + "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da" ], - "physical_candidate_id": "asap-explain-v1:physical:c4f2aa987a95e97b99f6f5089af4b78f0f4d4c8d28f121321398c738c3f125ce", + "physical_candidate_id": "asap-explain-v1:physical:a7c59efbbc4961d4a4cc74aa4eebeefec7feb0a7e7e17139697c62af864c8a8d", "identity_unavailable_reason": null, "status": "bound", "plan_id": 11938117179177087264, @@ -72,9 +72,9 @@ "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:17dca7f80f586da96d29b00d6655e70cb4e3a253938d65efd838318e9f425a08", + "candidate_id": "asap-explain-v1:candidate:4e9aa572b654a822240790f00df23c815365abbee13b98a5ad40f12abfd40758", "logical_root_ids": [ - "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374" + "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831" ], "physical_candidate_id": null, "identity_unavailable_reason": null, @@ -84,9 +84,9 @@ "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" }, { - "candidate_id": "asap-explain-v1:candidate:0658ec7508f74f5c5ad81379a01ac60dff7cd5adcd52e589a6c35b51bad75dce", + "candidate_id": "asap-explain-v1:candidate:5bfeb9e2bd2e5cb60386f05cda2aa9d0fc1787d5471f17988b4c42d2ff5da540", "logical_root_ids": [ - "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05" + "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b" ], "physical_candidate_id": null, "identity_unavailable_reason": null, diff --git a/docs/evaluation/issue754-human-review/grouped-rate.dot b/docs/evaluation/issue754-human-review/archive/grouped-rate.dot similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-rate.dot rename to docs/evaluation/issue754-human-review/archive/grouped-rate.dot diff --git a/docs/evaluation/issue754-human-review/grouped-rate.json b/docs/evaluation/issue754-human-review/archive/grouped-rate.json similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-rate.json rename to docs/evaluation/issue754-human-review/archive/grouped-rate.json diff --git a/docs/evaluation/issue754-human-review/grouped-rate.md b/docs/evaluation/issue754-human-review/archive/grouped-rate.md similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-rate.md rename to docs/evaluation/issue754-human-review/archive/grouped-rate.md diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.dot b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-temporal-sum.dot rename to docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-temporal-sum.json rename to docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md similarity index 100% rename from docs/evaluation/issue754-human-review/grouped-temporal-sum.md rename to docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.dot b/docs/evaluation/issue754-human-review/archive/quantile-ratio.dot similarity index 100% rename from docs/evaluation/issue754-human-review/quantile-ratio.dot rename to docs/evaluation/issue754-human-review/archive/quantile-ratio.dot diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.json b/docs/evaluation/issue754-human-review/archive/quantile-ratio.json similarity index 100% rename from docs/evaluation/issue754-human-review/quantile-ratio.json rename to docs/evaluation/issue754-human-review/archive/quantile-ratio.json diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.md b/docs/evaluation/issue754-human-review/archive/quantile-ratio.md similarity index 100% rename from docs/evaluation/issue754-human-review/quantile-ratio.md rename to docs/evaluation/issue754-human-review/archive/quantile-ratio.md diff --git a/docs/evaluation/issue754-human-review/render.py b/docs/evaluation/issue754-human-review/archive/render.py similarity index 100% rename from docs/evaluation/issue754-human-review/render.py rename to docs/evaluation/issue754-human-review/archive/render.py diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.dot b/docs/evaluation/issue754-human-review/archive/spatial-quantile.dot similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-quantile.dot rename to docs/evaluation/issue754-human-review/archive/spatial-quantile.dot diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.json b/docs/evaluation/issue754-human-review/archive/spatial-quantile.json similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-quantile.json rename to docs/evaluation/issue754-human-review/archive/spatial-quantile.json diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.md b/docs/evaluation/issue754-human-review/archive/spatial-quantile.md similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-quantile.md rename to docs/evaluation/issue754-human-review/archive/spatial-quantile.md diff --git a/docs/evaluation/issue754-human-review/spatial-sum.dot b/docs/evaluation/issue754-human-review/archive/spatial-sum.dot similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-sum.dot rename to docs/evaluation/issue754-human-review/archive/spatial-sum.dot diff --git a/docs/evaluation/issue754-human-review/spatial-sum.json b/docs/evaluation/issue754-human-review/archive/spatial-sum.json similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-sum.json rename to docs/evaluation/issue754-human-review/archive/spatial-sum.json diff --git a/docs/evaluation/issue754-human-review/spatial-sum.md b/docs/evaluation/issue754-human-review/archive/spatial-sum.md similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-sum.md rename to docs/evaluation/issue754-human-review/archive/spatial-sum.md diff --git a/docs/evaluation/issue754-human-review/spatial-topk.dot b/docs/evaluation/issue754-human-review/archive/spatial-topk.dot similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-topk.dot rename to docs/evaluation/issue754-human-review/archive/spatial-topk.dot diff --git a/docs/evaluation/issue754-human-review/spatial-topk.json b/docs/evaluation/issue754-human-review/archive/spatial-topk.json similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-topk.json rename to docs/evaluation/issue754-human-review/archive/spatial-topk.json diff --git a/docs/evaluation/issue754-human-review/spatial-topk.md b/docs/evaluation/issue754-human-review/archive/spatial-topk.md similarity index 100% rename from docs/evaluation/issue754-human-review/spatial-topk.md rename to docs/evaluation/issue754-human-review/archive/spatial-topk.md diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.dot b/docs/evaluation/issue754-human-review/archive/temporal-quantile.dot similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-quantile.dot rename to docs/evaluation/issue754-human-review/archive/temporal-quantile.dot diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.json b/docs/evaluation/issue754-human-review/archive/temporal-quantile.json similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-quantile.json rename to docs/evaluation/issue754-human-review/archive/temporal-quantile.json diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.md b/docs/evaluation/issue754-human-review/archive/temporal-quantile.md similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-quantile.md rename to docs/evaluation/issue754-human-review/archive/temporal-quantile.md diff --git a/docs/evaluation/issue754-human-review/temporal-rate.dot b/docs/evaluation/issue754-human-review/archive/temporal-rate.dot similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-rate.dot rename to docs/evaluation/issue754-human-review/archive/temporal-rate.dot diff --git a/docs/evaluation/issue754-human-review/temporal-rate.json b/docs/evaluation/issue754-human-review/archive/temporal-rate.json similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-rate.json rename to docs/evaluation/issue754-human-review/archive/temporal-rate.json diff --git a/docs/evaluation/issue754-human-review/temporal-rate.md b/docs/evaluation/issue754-human-review/archive/temporal-rate.md similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-rate.md rename to docs/evaluation/issue754-human-review/archive/temporal-rate.md diff --git a/docs/evaluation/issue754-human-review/temporal-sum.dot b/docs/evaluation/issue754-human-review/archive/temporal-sum.dot similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-sum.dot rename to docs/evaluation/issue754-human-review/archive/temporal-sum.dot diff --git a/docs/evaluation/issue754-human-review/temporal-sum.json b/docs/evaluation/issue754-human-review/archive/temporal-sum.json similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-sum.json rename to docs/evaluation/issue754-human-review/archive/temporal-sum.json diff --git a/docs/evaluation/issue754-human-review/temporal-sum.md b/docs/evaluation/issue754-human-review/archive/temporal-sum.md similarity index 100% rename from docs/evaluation/issue754-human-review/temporal-sum.md rename to docs/evaluation/issue754-human-review/archive/temporal-sum.md diff --git a/docs/evaluation/issue754-human-review/topk-rate.dot b/docs/evaluation/issue754-human-review/archive/topk-rate.dot similarity index 100% rename from docs/evaluation/issue754-human-review/topk-rate.dot rename to docs/evaluation/issue754-human-review/archive/topk-rate.dot diff --git a/docs/evaluation/issue754-human-review/topk-rate.json b/docs/evaluation/issue754-human-review/archive/topk-rate.json similarity index 100% rename from docs/evaluation/issue754-human-review/topk-rate.json rename to docs/evaluation/issue754-human-review/archive/topk-rate.json diff --git a/docs/evaluation/issue754-human-review/topk-rate.md b/docs/evaluation/issue754-human-review/archive/topk-rate.md similarity index 100% rename from docs/evaluation/issue754-human-review/topk-rate.md rename to docs/evaluation/issue754-human-review/archive/topk-rate.md diff --git a/docs/evaluation/issue754-human-review/candidates/SHA256SUMS b/docs/evaluation/issue754-human-review/candidates/SHA256SUMS deleted file mode 100644 index 56d2b6afe..000000000 --- a/docs/evaluation/issue754-human-review/candidates/SHA256SUMS +++ /dev/null @@ -1,68 +0,0 @@ -a23fa47150b5fc1a15d43df09d88ef35fd107ba088d15134c14e433afc8c7b36 grouped-rate-0.dot -4ba5055087e6afc0dd57a8f5035d72a774d138abefe69c74483fed16448d96a1 grouped-rate-0.json -00bbd0355f8dd41336c6b70f3039aac35a4c82e6a7cae8052697f1039b7fb9d4 grouped-rate-1.dot -ea9d513b36b6ab3d7de5d5ea200bf14721654a7c227491b92eb0a06f12b7b082 grouped-rate-1.json -e5cdd608afb3372a58936dd084ee2f04485a77827b0c0d3c9111ea140af95033 grouped-rate-3.dot -1a357ddce623a5e86a978af379d2aeb8a1c6ff9ae5c3dc1f121d0c01ede0849a grouped-rate-3.json -d915c5f91285b0fa687ac9dc7277136c64c9cce29649314429273a8540264309 grouped-rate-4.dot -bc93971902c28d51a4c4ed53339f034f5d6aca7a5e489779936abffd1e12051f grouped-rate-4.json -9c7d19da2e4b2ad0639debcb6f4e9f827f0cef6004dac5e3ba22c5a304b23756 grouped-temporal-sum-0.dot -1caf844e1229536077ebe796b2459effcaf5b7c61fefbbdef7e9ddb1a888e236 grouped-temporal-sum-0.json -03a9ed7614e92df8f5830ef6d5608b172754b42dde51af00c94308d353a4d2e4 grouped-temporal-sum-1.dot -b57f4fb2f38d773f100ea11e1d0e0d133429a1e2787850b3dbfab1f08dca7bf9 grouped-temporal-sum-1.json -ae875e99e455befa415fb8ed48128cda20e4df8b448347287b908b1418d06b3f grouped-temporal-sum-3.dot -d31deddfb8bb69586c6911ae3ad50756e53b3731c3f6443c3b6e9a7ac40cb6ed grouped-temporal-sum-3.json -1a5445c8ab2dae1c393755ec7fa22c75b88bc377d5ecf04993a24ad489eb3f09 quantile-ratio-0.dot -0d55156e43fcc08e084b62ab50c99b4dbbf9ddbcc9eb00db5aec4115acc79bed quantile-ratio-0.json -80d8f8415e5a3760c5fe3bd3ad14eeb4cf9068987b7f6a2492d8a30a18fd7c7e quantile-ratio-1.dot -8e993c797f4fcd2a4b509dab8335c053dc7a7d519a6f7c5e91a95a8e431bc27e quantile-ratio-1.json -80d8f8415e5a3760c5fe3bd3ad14eeb4cf9068987b7f6a2492d8a30a18fd7c7e quantile-ratio-2.dot -9957c5d53ac1860e46a0ca9b415277064bf6eb6c1205f32abc3f266f55dc48e1 quantile-ratio-2.json -607a40d93e04abd7154abd5cc11a0dcd2ca8e99ec8360e89ed336cf6fb73a151 spatial-quantile-0.dot -87ff92a2b88021370953db8a8dc4446bfe3d656a80f1e005fec83de98020e71d spatial-quantile-0.json -5e553f62a68c7cda482a68184740f0f40bc60b1f02459e3ba1d1b7f30907d072 spatial-quantile-1.dot -97a767fb31af927d0cb2f434c3be47bf3b6aac608925295e204c72dbf441188e spatial-quantile-1.json -17625fcc56a4d98ae78f9b191a59639a54916c6461b6c15502d1d8672751c962 spatial-quantile-2.dot -aeb76fdf656e0d3770eeb917a1985cac8a386decbf893b9bdd351faf0287d37f spatial-quantile-2.json -5e553f62a68c7cda482a68184740f0f40bc60b1f02459e3ba1d1b7f30907d072 spatial-quantile-3.dot -bbc399db388aa58ef279c8e32e5b887955bab039929eb5d05daf9c140502331a spatial-quantile-3.json -1c3987ab0266297396156e3ef58af3f31d7fe29c8244f9461294b6380229e02e spatial-sum-0.dot -d053505ebe8f13237debd1a971372c80ee35ce48cc25cd6f9aee6042fb1e73b0 spatial-sum-0.json -f391d96e85d188e916041614f1af29f43fc2d2c71e2aa0add6cd8c6b21d5c461 spatial-sum-1.dot -4f530a3d5a75b7a7cf5f69775d6ba5c40ceba39ee2634780808615a6a90f8162 spatial-sum-1.json -4a8e06781815e3d4fed1bf4e907a782875ef17f2b80dfada6c5e77b39b6032bb spatial-sum-2.dot -4bf30d2fd891137a431532eece65f45487c52f8273a4ea62589acea766884c4b spatial-sum-2.json -9821ea6299da7c979efb0b50886fbbaafca42fbee2675c5687c5358d6884629b spatial-sum-3.dot -99294796cd0a96515ca107b8f7ff3f0c967874386f9f81156a535790d0b516f9 spatial-sum-3.json -81664a0344b11864a4769f0bb66a2a40df6d977d1a042b331ebd4ac7757a6ded spatial-topk-1.dot -99f0653b5f4ab60de5768cc6b5552f71aa15b6a0f377dfa75b1c04687c43c367 spatial-topk-1.json -2a8e23864aa9dbd9a5b221972e3b44810aee591b2b1c21b093e95dc1355d0742 spatial-topk-2.dot -b12609208b399374de42202c616da39c9b5c3d62acb059f4ae01330673a5209d spatial-topk-2.json -a178b0b3e2c34a496bbfc84b2af9fceca6ada72f21fda1d77f2ef9c97185b725 temporal-quantile-0.dot -2a8b447ee8cf4976f5385bacae557008a38ac7aca28b97e16894eee8ba69579b temporal-quantile-0.json -6929dde319f7934c9200a30527f4947f14dbcf91da6d210bf0f0157add7aba3f temporal-quantile-1.dot -27a8f79baa24de7f58c27425913557765de3968dd69ba67fc0ef4be194c1ce04 temporal-quantile-1.json -6929dde319f7934c9200a30527f4947f14dbcf91da6d210bf0f0157add7aba3f temporal-quantile-2.dot -f06b999b30b18c363ffd7ad822db0815be54b73becde68d4178c3fbf4fb83590 temporal-quantile-2.json -f9c77fba7e66f7ead9fc331187e03dd7f1cebb1c8029754746c513516f6af7a5 temporal-rate-0.dot -fc7e34aa0914ae744026686aed093f0958ac390126c6c769665b21cef415b765 temporal-rate-0.json -c590c9c05e13f1a0c22fb6903431103db8bf24bfbda940746b928ae6bb6f5766 temporal-rate-1.dot -b51eef57f754f4f149c214688cc21e0c9e1fbaaac01756ed8c5aa7ccfbd482f3 temporal-rate-1.json -b871a018cb43c5b05bb147352c63c2dad9c7399c8a425f78ea47b0ff2c3f1c52 temporal-rate-2.dot -bd56b720b77f6c60e038dbea3b92510b4d3a9a68453bcd91d738e38c4082a066 temporal-rate-2.json -c590c9c05e13f1a0c22fb6903431103db8bf24bfbda940746b928ae6bb6f5766 temporal-rate-3.dot -5cbed72ecab59d6ee4d43b29ceb8b9f8fc2c24fcf4efe3d6fa0aa31456f4d697 temporal-rate-3.json -7a7f11a5de77c8ef6204f7675864ff9683d363c3e5ffd4db0e6dc30e08738b8b temporal-sum-0.dot -406feb6afc9d0cd76c09bbfecaa329d520a9181f9c81ac1e9d893346ed7891c5 temporal-sum-0.json -e4ff237701efe51f494297fb6483dc51096ffbfdc36f97b708f31c455a07baa3 temporal-sum-1.dot -936505e3de989979f4da344ca90dd2f6b21731951a93b8783063d150bc2b481d temporal-sum-1.json -b6f86537f68deef541ea7b7678b172c08976b72a6fefe29bb327c0ab8c9a4c36 temporal-sum-2.dot -6729ec0d71d022accaf4eaf0b1daedd5b1c9b2cf97779d64721e50c52b3e829c temporal-sum-2.json -79955b955557087ea0619994c758101d6f1902ea1f1512aed889ea96cdfe1771 topk-rate-0.dot -a342e430d6a3f8b09a0814f567de7971eeb5eb9747a6f177ba5ca1e28980af63 topk-rate-0.json -33253484be175105dc0d9a8ce7b1f49135c41c89b1435f27fa695d66035041b8 topk-rate-1.dot -b3b91eec74c335442a246c28d3d1e6b177f065cfe0105bab629c5fb4fea20819 topk-rate-1.json -2976981633461028bfdb5c3916af6e7a179b76107d02af307904b810f8e26183 topk-rate-2.dot -2e40c9ff72c8b8ff95837ff2e29d3ffbabe20393cf5a59ef128a0efee1d458b0 topk-rate-2.json -f4437ddb2840257c40e12541c79d2a3ebe808f0124261fc05d357c4e3929da68 topk-rate-5.dot -35a7518dac65d4e5dcd73facbb2486b1e78a1e11731e34d5bd44669e6923b61d topk-rate-5.json diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot deleted file mode 100644 index c9fb85791..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.dot +++ /dev/null @@ -1,23 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_0_1 [label="ExactReadout\nRate"]; - query_0_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_2 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - query_0_2 -> query_0_1; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json deleted file mode 100644 index 384b69b0e..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-0.json +++ /dev/null @@ -1,2512 +0,0 @@ -{ - "envelope": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 5849823772717530049, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5849823772717530049, - "plan_version": 1, - "snapshot_sha256": "2ef3fd83d8c43d89e656d4923e5471c0e1516f338f26ff04782e7d76ec2c4ce3" - }, - "envelope": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 3, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5849823772717530049, - "plan_version": 1, - "snapshot_sha256": "2ef3fd83d8c43d89e656d4923e5471c0e1516f338f26ff04782e7d76ec2c4ce3" - }, - "envelope": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 5849823772717530049, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Exact": { - "Aggregate": { - "having": null, - "measures": [ - { - "col": null, - "kind": "sum" - } - ], - "output_names": [ - "" - ], - "reduction": { - "Reduce": [ - 2 - ] - } - } - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 3 - } - }, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "aggregate", - "operation": "sum", - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "exact_readout", - "input": 2, - "readout": "rate" - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot deleted file mode 100644 index a3edc5e20..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json deleted file mode 100644 index b5ba35d4c..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-1.json +++ /dev/null @@ -1,1373 +0,0 @@ -{ - "envelope": { - "plan_id": 741363842036532054, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 741363842036532054, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 741363842036532054, - "plan_version": 1, - "snapshot_sha256": "e4d7e90745a3b4fb0e9e97bacd7df01b197f5ab4a49bc4f633e2e8826ea74845" - }, - "envelope": { - "plan_id": 741363842036532054, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 741363842036532054, - "plan_version": 1, - "snapshot_sha256": "e4d7e90745a3b4fb0e9e97bacd7df01b197f5ab4a49bc4f633e2e8826ea74845" - }, - "envelope": { - "plan_id": 741363842036532054, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 741363842036532054, - "plan_version": 1, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot deleted file mode 100644 index 097ba843a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.dot +++ /dev/null @@ -1,40 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; - precompute_0_2 [label="value #2\nMaintenanceInput"]; - precompute_0_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - precompute_0_1 -> precompute_0_2 [label="Input"]; - precompute_0_2 -> precompute_0_3 [label="Input"]; - subgraph cluster_maintenance_0_3 { - label="Planner maintenance operators"; - maintenance_0_3_1 [label="#1\nBound physical input"]; - maintenance_0_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; - maintenance_0_3_1 -> maintenance_0_3_2; - maintenance_0_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; - maintenance_0_3_2 -> maintenance_0_3_3; - } - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; - materialization_9414a19c98bfc6a8 -> query_0_0 [style=dashed, color=gray40, label="reads"]; - query_0_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; - query_0_0 -> query_0_1; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_3 [label="#3\nBound physical input"]; - native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; - native_query_0_3 -> native_query_0_4; - } - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json deleted file mode 100644 index 4c41f7636..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-3.json +++ /dev/null @@ -1,4096 +0,0 @@ -{ - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 15282866737310247190, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - }, - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2": { - "id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2", - "source": { - "derived": { - "input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - } - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "population_key_encoding": "canonical_labels_v1", - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - }, - "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "population_key_encoding": "canonical_labels_v1", - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "1361847422443465319": { - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - }, - "10670331111097222824": { - "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [] - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" - } - ] - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" - } - ] - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" - } - ] - } - } - } - } - }, - "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 15282866737310247190, - "plan_version": 1, - "snapshot_sha256": "271e472fee4649a5e2d4792afc55a6eaf946b15bb857d405f8d0bf2ebc06786a" - }, - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 1361847422443465319, - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "materialization": 1361847422443465319, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - }, - { - "stored_output_reference": { - "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "materialization": 10670331111097222824, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - }, - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [] - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" - } - ] - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" - } - ] - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "grouped", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "native_programs": { - "3": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - } - }, - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1361847422443465319 - }, - "2": { - "placement": "maintenance_input" - }, - "3": { - "placement": "materialization", - "stored_output": 10670331111097222824 - } - }, - "query_sink": 4, - "query_plan_sink": 1, - "precompute_sinks": [ - 1, - 3 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 15282866737310247190, - "plan_version": 1, - "snapshot_sha256": "271e472fee4649a5e2d4792afc55a6eaf946b15bb857d405f8d0bf2ebc06786a" - }, - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "physical_dag": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 1, - "nodes": { - "0": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:81c8acb7be9e508a4e31fd044b805056f950326561a5a3e4183db37c5286e9f8" - }, - "full_window_slide_ms": 10000, - "materialization": 10670331111097222824, - "output_grouping": { - "mode": "reduce", - "keys": [] - }, - "window_ms": 60000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "1": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 3 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 1361847422443465319, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - }, - { - "materialization": 10670331111097222824, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot deleted file mode 100644 index a6fc1e9dd..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.dot +++ /dev/null @@ -1,31 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="ExactReadout\nRate"]; - query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; - query_0_1 -> query_0_0; - query_0_0 -> query_0_2; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_2 [label="#2\nBound physical input"]; - native_query_0_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; - native_query_0_2 -> native_query_0_3; - native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; - native_query_0_3 -> native_query_0_4; - } - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json b/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json deleted file mode 100644 index 864fa668f..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-rate-4.json +++ /dev/null @@ -1,3009 +0,0 @@ -{ - "envelope": { - "plan_id": 3349874915222028658, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3349874915222028658, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3349874915222028658, - "plan_version": 1, - "snapshot_sha256": "c7402b8eabccec7196971f65608f9d358173429f7c79c285a3cad9775a4e2852" - }, - "envelope": { - "plan_id": 3349874915222028658, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 2, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3349874915222028658, - "plan_version": 1, - "snapshot_sha256": "c7402b8eabccec7196971f65608f9d358173429f7c79c285a3cad9775a4e2852" - }, - "envelope": { - "plan_id": 3349874915222028658, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3349874915222028658, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "query_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "data_state": { - "timing": "query_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 2, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "2": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 2 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:503f496b868bef0d099d14efa64e606d2cf1fb33ed167bf13ba1c0a3d7421436", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:c1f0912bdef9d1028d463e8169f414a745cba0ee72fe21c55c95d680ca9830b2" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot deleted file mode 100644 index 691e8e32e..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json deleted file mode 100644 index 57e622ab0..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-0.json +++ /dev/null @@ -1,1324 +0,0 @@ -{ - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 398383639928265061, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "13322971198486020251": { - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 398383639928265061, - "plan_version": 1, - "snapshot_sha256": "c05491085f9559df2a52fee1653f3cf7082dd2ecf973f2c30d65f309212b41bb" - }, - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "materialization": 13322971198486020251, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 13322971198486020251 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 398383639928265061, - "plan_version": 1, - "snapshot_sha256": "c05491085f9559df2a52fee1653f3cf7082dd2ecf973f2c30d65f309212b41bb" - }, - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 398383639928265061, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum by (label_0) (sum_over_time(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" - }, - "materialization": 13322971198486020251, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 13322971198486020251, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": null, - "provenance": "LogicalRewrite", - "rank": 1, - "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", - "replacement_kind": "rewrite", - "runtime_support_status": "supported", - "selected": false, - "status": "unselected", - "strategy": "SemanticEquivalentRewriteStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 2, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": false, - "status": "unselected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot deleted file mode 100644 index 2696ac2a6..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json deleted file mode 100644 index d6c2103d6..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-1.json +++ /dev/null @@ -1,418 +0,0 @@ -{ - "envelope": { - "plan_id": 375190931036314940, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 375190931036314940, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 375190931036314940, - "plan_version": 1, - "snapshot_sha256": "f256d976daa070a439b37f43c427683bd3ea49004063daf163a5b883dc8177d1" - }, - "envelope": { - "plan_id": 375190931036314940, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 375190931036314940, - "plan_version": 1, - "snapshot_sha256": "f256d976daa070a439b37f43c427683bd3ea49004063daf163a5b883dc8177d1" - }, - "envelope": { - "plan_id": 375190931036314940, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 375190931036314940, - "plan_version": 1, - "entries": { - "sum by (label_0) (sum_over_time(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": null, - "provenance": "LogicalRewrite", - "rank": 1, - "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", - "replacement_kind": "rewrite", - "runtime_support_status": "supported", - "selected": false, - "status": "unselected", - "strategy": "SemanticEquivalentRewriteStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 2, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": false, - "status": "unselected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot deleted file mode 100644 index 474e4b80d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.dot +++ /dev/null @@ -1,23 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a545abfa310f89ae [label="materialization\npolicy_fp:a545abfa310f89ae\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11909113880704420270) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_0_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_0_1 [label="ExactReadout\nSum"]; - query_0_2 [label="ReadMaterialization\npolicy_fp:a545abfa310f89ae\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a545abfa310f89ae -> query_0_2 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - query_0_2 -> query_0_1; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json b/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json deleted file mode 100644 index 2953eb62d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/grouped-temporal-sum-3.json +++ /dev/null @@ -1,1555 +0,0 @@ -{ - "envelope": { - "plan_id": 3225737927651639557, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3225737927651639557, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11909113880704420270": { - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3225737927651639557, - "plan_version": 1, - "snapshot_sha256": "3231bb2a1bd447de3484336c7675af8b0770952c2953ec1a8f741cf55dfea824" - }, - "envelope": { - "plan_id": 3225737927651639557, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11909113880704420270, - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11909113880704420270", - "schema_version": 1, - "materialization": 11909113880704420270, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11909113880704420270 - } - }, - "query_sink": 3, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3225737927651639557, - "plan_version": 1, - "snapshot_sha256": "3231bb2a1bd447de3484336c7675af8b0770952c2953ec1a8f741cf55dfea824" - }, - "envelope": { - "plan_id": 3225737927651639557, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3225737927651639557, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Exact": { - "Aggregate": { - "having": null, - "measures": [ - { - "col": null, - "kind": "sum" - } - ], - "output_names": [ - "" - ], - "reduction": { - "Reduce": [ - 2 - ] - } - } - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 3 - } - }, - "entries": { - "sum by (label_0) (sum_over_time(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "aggregate", - "operation": "sum", - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "exact_readout", - "input": 2, - "readout": "sum" - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11909113880704420270, - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" - }, - "materialization": 11909113880704420270, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11909113880704420270, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:03ff74003439d1c958bc0410d93eed5d1306b968f624abae5a8ee6668e8577ab", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:81669017a5a2369dea4eae5eecd5f23af1af75e6c0000339fcb8f950cb449618", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": null, - "provenance": "LogicalRewrite", - "rank": 1, - "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", - "replacement_kind": "rewrite", - "runtime_support_status": "supported", - "selected": false, - "status": "unselected", - "strategy": "SemanticEquivalentRewriteStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:ed86d27486471c632fbb445d56eaa47a3fc8bb614deb8e0c5edaeb4a175a9ca0", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 2, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": false, - "status": "unselected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:fb851c9817b111a77e0a43d8ee003f1ee4ee7d90dd7e87b350fe4720b68289a9" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:7025813819b3f88f9fdab52ecf0b2621682bb5c92e13b16ccdd538e38f8522dc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:fe079a279662c77b4fd411eee673b8838ae97b0bc780d35ea09dc605ef5b93b0" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot deleted file mode 100644 index 32daac6aa..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.dot +++ /dev/null @@ -1,26 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_0_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_0_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_0_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_0_2 [style=dashed, color=gray40, label="reads"]; - query_0_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_0_1 -> query_0_0; - query_0_3 -> query_0_0; - query_0_2 -> query_0_1; - query_0_2 -> query_0_3; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json deleted file mode 100644 index 89bd177d3..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-0.json +++ /dev/null @@ -1,1942 +0,0 @@ -{ - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 14871479243635342203, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.0049751243781094535 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "2776719732314936823": { - "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14871479243635342203, - "plan_version": 1, - "snapshot_sha256": "e914c18d37f9b2210a35cc813a8ff9fccfff680e44c761191a157d2fe50827c4" - }, - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "materialization": 2776719732314936823, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 2776719732314936823 - } - }, - "query_sink": 4, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14871479243635342203, - "plan_version": 1, - "snapshot_sha256": "e914c18d37f9b2210a35cc813a8ff9fccfff680e44c761191a157d2fe50827c4" - }, - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.5 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "binary", - "operator": { - "checked_finite_division": false, - "checked_relative_division": false, - "kind": { - "Arithmetic": "Div" - }, - "vector_match": null - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 1, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 4, - "role": "Left", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Right", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "binary", - "inputs": [ - 1, - 3 - ], - "operator": "Div" - }, - "1": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:2651c48dd83253a7248987b764bbc631c6a55f531fcd9b946d6cd445998d0198" - }, - "materialization": 2776719732314936823, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "3": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.5 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 2776719732314936823, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "accuracy_evidence_scope": { - "data_snapshot_id": "issue-754-level1", - "hll": null, - "observed_at_unix_ms": 9500, - "query_id": "compat-query-0", - "source": "issue-754-finite-generator" - }, - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 131072.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 131072.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 4, - "rejected": [ - { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 5, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 6, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "schema_version": 1 - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot deleted file mode 100644 index 25de0220f..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json deleted file mode 100644 index d716a7b21..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-1.json +++ /dev/null @@ -1,560 +0,0 @@ -{ - "envelope": { - "plan_id": 5752356276213301876, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 5752356276213301876, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5752356276213301876, - "plan_version": 1, - "snapshot_sha256": "e4ee83d3aacaeed35289d83e7a2e1d58397d7d36ed7440ca3736eaf93cc8c9b2" - }, - "envelope": { - "plan_id": 5752356276213301876, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5752356276213301876, - "plan_version": 1, - "snapshot_sha256": "e4ee83d3aacaeed35289d83e7a2e1d58397d7d36ed7440ca3736eaf93cc8c9b2" - }, - "envelope": { - "plan_id": 5752356276213301876, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 5752356276213301876, - "plan_version": 1, - "entries": { - "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "accuracy_evidence_scope": { - "data_snapshot_id": "issue-754-level1", - "hll": null, - "observed_at_unix_ms": 9500, - "query_id": "compat-query-0", - "source": "issue-754-finite-generator" - }, - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 131072.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 131072.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 4, - "rejected": [ - { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 5, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 6, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "schema_version": 1 - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot deleted file mode 100644 index 25de0220f..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json b/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json deleted file mode 100644 index a5e30916c..000000000 --- a/docs/evaluation/issue754-human-review/candidates/quantile-ratio-2.json +++ /dev/null @@ -1,560 +0,0 @@ -{ - "envelope": { - "plan_id": 12971657221408630864, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 12971657221408630864, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 12971657221408630864, - "plan_version": 1, - "snapshot_sha256": "9e016fda8ee70c5a05293beff41959a15209a9c2c74e92c5a63d62d09e92da81" - }, - "envelope": { - "plan_id": 12971657221408630864, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 12971657221408630864, - "plan_version": 1, - "snapshot_sha256": "9e016fda8ee70c5a05293beff41959a15209a9c2c74e92c5a63d62d09e92da81" - }, - "envelope": { - "plan_id": 12971657221408630864, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 12971657221408630864, - "plan_version": 1, - "entries": { - "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "accuracy_evidence_scope": { - "data_snapshot_id": "issue-754-level1", - "hll": null, - "observed_at_unix_ms": 9500, - "query_id": "compat-query-0", - "source": "issue-754-finite-generator" - }, - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0a651ebc6dc492b6124b1599be580ae1b5208b698dfa871a8493cb4ce7accafe", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 131072.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 131072.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:2bf9975a6134952214ca1ad735f6227cc7e19a7dec1fa87a63bbf95bee73d2fd" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8c94b33e2aa2997ab2c448d0d5fbbc416a72bbd054f64430fafc7f14f54ab492", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 4, - "rejected": [ - { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:27fc4e2851d5c3ac2da79638882566dd4aa5bebfb4fa3bc89773916564a740f4" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 5, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 6, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc", - "query_index": 0 - } - ], - "schema_version": 1 - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot deleted file mode 100644 index 49af74e84..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_15fed25926ac7261 [label="materialization\npolicy_fp:15fed25926ac7261\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1584935399223751265) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:15fed25926ac7261\nwindow=5000ms\nlookback=Some(5000)"]; - materialization_15fed25926ac7261 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json deleted file mode 100644 index 49dbd432e..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-0.json +++ /dev/null @@ -1,1319 +0,0 @@ -{ - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3294188734724225991, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.01 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "1584935399223751265": { - "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3294188734724225991, - "plan_version": 1, - "snapshot_sha256": "f36b2cfadc29a6200678fc11cdfdfebfd3d5a075a8ac94b94e9204b6189a3330" - }, - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "materialization": 1584935399223751265, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 5000, - "slide_ms": 10000, - "pane_origin_ms": 5000 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1584935399223751265 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3294188734724225991, - "plan_version": 1, - "snapshot_sha256": "f36b2cfadc29a6200678fc11cdfdfebfd3d5a075a8ac94b94e9204b6189a3330" - }, - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "quantile by (label_0) (0.9, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:e92e5db043211c3fedc290e2906395cfec5d58cb3c2cf83d0c51d7d4153beb39" - }, - "full_window_slide_ms": 10000, - "materialization": 1584935399223751265, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 1584935399223751265, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot deleted file mode 100644 index 72aef70d0..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json deleted file mode 100644 index 4e3031517..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-1.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "envelope": { - "plan_id": 14256379658571227787, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 14256379658571227787, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14256379658571227787, - "plan_version": 1, - "snapshot_sha256": "c76e379f2cb5077e745db535f0a50bf9a983773457eca70f9321e827311de935" - }, - "envelope": { - "plan_id": 14256379658571227787, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14256379658571227787, - "plan_version": 1, - "snapshot_sha256": "c76e379f2cb5077e745db535f0a50bf9a983773457eca70f9321e827311de935" - }, - "envelope": { - "plan_id": 14256379658571227787, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 14256379658571227787, - "plan_version": 1, - "entries": { - "quantile by (label_0) (0.9, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot deleted file mode 100644 index 907d6c7da..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json deleted file mode 100644 index 6fcc3c548..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-2.json +++ /dev/null @@ -1,585 +0,0 @@ -{ - "envelope": { - "plan_id": 18366075381595067177, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 18366075381595067177, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 18366075381595067177, - "plan_version": 1, - "snapshot_sha256": "983208ce4df04a835d265dedb512c3984495050a4eb712249d40635d0018e880" - }, - "envelope": { - "plan_id": 18366075381595067177, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 18366075381595067177, - "plan_version": 1, - "snapshot_sha256": "983208ce4df04a835d265dedb512c3984495050a4eb712249d40635d0018e880" - }, - "envelope": { - "plan_id": 18366075381595067177, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 18366075381595067177, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "source samples" - } - ] - } - }, - { - "id": 1, - "payload": { - "kind": "value", - "operation": { - "MaintainPopulation": { - "population": { - "input": { - "CurrentSeries": { - "grouping": [ - "label_0" - ], - "lookback_ms": 5000, - "matchers": [], - "metric": "data", - "without": false - } - }, - "max_k": 0, - "quantiles": true - } - } - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact members under the declared population semantics" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": { - "ReadPopulation": { - "readout": { - "Quantile": { - "q": 0.9 - } - } - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact current-population readout" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "quantile by (label_0) (0.9, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "metric": "data", - "matchers": [], - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "lookback_ms": 5000, - "max_input_lag_ms": 5000, - "history_retention_ms": 0, - "max_series": 100000, - "max_bytes": 1073741824, - "max_k": 0, - "quantiles": true - }, - "readout": { - "kind": "quantile", - "q": 0.9 - } - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot deleted file mode 100644 index 72aef70d0..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json deleted file mode 100644 index 9a4d9633c..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-quantile-3.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "envelope": { - "plan_id": 7667691247138405742, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 7667691247138405742, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 7667691247138405742, - "plan_version": 1, - "snapshot_sha256": "a4ff872dc12ddc682d2bedf0f8ea262bd6430a948613050f8c047b2a4d52f198" - }, - "envelope": { - "plan_id": 7667691247138405742, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 7667691247138405742, - "plan_version": 1, - "snapshot_sha256": "a4ff872dc12ddc682d2bedf0f8ea262bd6430a948613050f8c047b2a4d52f198" - }, - "envelope": { - "plan_id": 7667691247138405742, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 7667691247138405742, - "plan_version": 1, - "entries": { - "quantile by (label_0) (0.9, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:122cfb7e3e2eb3d60d56c371ef6e839a686fae7faf97c4d474cc6a4a8e9e060b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:4844da9d65037d6139def9a84de7b9a85161a6c6bb052ba96b091d28575cae9c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot deleted file mode 100644 index 3d279f0b9..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_903fe84f27dd8a04 [label="materialization\npolicy_fp:903fe84f27dd8a04\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(10394281891663284740) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (data)"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:903fe84f27dd8a04\nwindow=5000ms\nlookback=Some(5000)"]; - materialization_903fe84f27dd8a04 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json deleted file mode 100644 index 250599ebf..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-0.json +++ /dev/null @@ -1,1135 +0,0 @@ -{ - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3688256239081920855, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "10394281891663284740": { - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3688256239081920855, - "plan_version": 1, - "snapshot_sha256": "cd5b03e4820085ba6cc7d3b74252615655dfb7e720b017df4923dfe3f7ab19e2" - }, - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "materialization": 10394281891663284740, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 5000, - "slide_ms": 10000, - "pane_origin_ms": 5000 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 10394281891663284740 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3688256239081920855, - "plan_version": 1, - "snapshot_sha256": "cd5b03e4820085ba6cc7d3b74252615655dfb7e720b017df4923dfe3f7ab19e2" - }, - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum by (label_0) (data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:32958e0dc5d84844cd4119f9805c3f69ca019fe2a050d778c94e5a7add5899bf" - }, - "full_window_slide_ms": 10000, - "materialization": 10394281891663284740, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 10394281891663284740, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot deleted file mode 100644 index ebd59a548..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (data)"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json deleted file mode 100644 index 923eb20c7..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-1.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "envelope": { - "plan_id": 17875413431231421451, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 17875413431231421451, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17875413431231421451, - "plan_version": 1, - "snapshot_sha256": "f37a1a4040f6c785dac789437f25da5425e36f6b4b1459d1a7d8f5f70ad7b4a0" - }, - "envelope": { - "plan_id": 17875413431231421451, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17875413431231421451, - "plan_version": 1, - "snapshot_sha256": "f37a1a4040f6c785dac789437f25da5425e36f6b4b1459d1a7d8f5f70ad7b4a0" - }, - "envelope": { - "plan_id": 17875413431231421451, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 17875413431231421451, - "plan_version": 1, - "entries": { - "sum by (label_0) (data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot deleted file mode 100644 index 9962ac0e7..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json deleted file mode 100644 index 84297653d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-2.json +++ /dev/null @@ -1,550 +0,0 @@ -{ - "envelope": { - "plan_id": 8064649510529993241, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 8064649510529993241, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 8064649510529993241, - "plan_version": 1, - "snapshot_sha256": "2e565a19f9cfa46fcab6fe2c5c55814fac08b38ee52c7cb0d95fa7f74e9b914a" - }, - "envelope": { - "plan_id": 8064649510529993241, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 8064649510529993241, - "plan_version": 1, - "snapshot_sha256": "2e565a19f9cfa46fcab6fe2c5c55814fac08b38ee52c7cb0d95fa7f74e9b914a" - }, - "envelope": { - "plan_id": 8064649510529993241, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 8064649510529993241, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "source samples" - } - ] - } - }, - { - "id": 1, - "payload": { - "kind": "value", - "operation": { - "MaintainPopulation": { - "population": { - "input": { - "CurrentSeries": { - "grouping": [ - "label_0" - ], - "lookback_ms": 5000, - "matchers": [], - "metric": "data", - "without": false - } - }, - "max_k": 0, - "quantiles": false - } - } - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact members under the declared population semantics" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": { - "ReadPopulation": { - "readout": "Sum" - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact current-population readout" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "sum by (label_0) (data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "metric": "data", - "matchers": [], - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "lookback_ms": 5000, - "max_input_lag_ms": 5000, - "history_retention_ms": 0, - "max_series": 100000, - "max_bytes": 1073741824, - "max_k": 0, - "quantiles": false - }, - "readout": { - "kind": "sum" - } - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot deleted file mode 100644 index e7f3fb88d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (data)"; - query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json b/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json deleted file mode 100644 index 7f636b318..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-sum-3.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "envelope": { - "plan_id": 10907830462850005469, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 10907830462850005469, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 10907830462850005469, - "plan_version": 1, - "snapshot_sha256": "703eeaa21765a7be0718f988b44ab57325135dec4454826afdc628dde3c10048" - }, - "envelope": { - "plan_id": 10907830462850005469, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 10907830462850005469, - "plan_version": 1, - "snapshot_sha256": "703eeaa21765a7be0718f988b44ab57325135dec4454826afdc628dde3c10048" - }, - "envelope": { - "plan_id": 10907830462850005469, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 10907830462850005469, - "plan_version": 1, - "entries": { - "sum by (label_0) (data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "exact_subquery", - "query": "sum by (label_0) (data)" - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:bb2357982892da1cbcc04bb4371e3f77e32e74119adbdbac95a8223b761b06c5", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:61c5c890710caa9e1597813fed5e0598f5595a30fb8b85707f7b2e02db7ad6b8" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot deleted file mode 100644 index e0cf0ab2e..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json deleted file mode 100644 index 265852809..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-1.json +++ /dev/null @@ -1,929 +0,0 @@ -{ - "envelope": { - "plan_id": 5538412219857372274, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 5538412219857372274, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5538412219857372274, - "plan_version": 1, - "snapshot_sha256": "f2f9c79f1945c4731e483fffe77b54abda50b4886f81390f7564578731087ad8" - }, - "envelope": { - "plan_id": 5538412219857372274, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5538412219857372274, - "plan_version": 1, - "snapshot_sha256": "f2f9c79f1945c4731e483fffe77b54abda50b4886f81390f7564578731087ad8" - }, - "envelope": { - "plan_id": 5538412219857372274, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 5538412219857372274, - "plan_version": 1, - "entries": { - "topk by (label_0) (3, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:a975d8480168ad2f477897f4128dc3d9f3bb53fb05b9fe87057f9f221243f1f5" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:21d490ed5a1a5ce1cab55b6ba6c7c656963e4c4555a0646a45e4c16c7b06196d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21", - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 6 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot deleted file mode 100644 index c24a11708..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.dot +++ /dev/null @@ -1,19 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_1 [label="#1\nBound physical input"]; - native_query_0_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_0_1 -> native_query_0_18446744073709551615; - native_query_0_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_0_18446744073709551615 -> native_query_0_2; - } - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json b/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json deleted file mode 100644 index 31344f67a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/spatial-topk-2.json +++ /dev/null @@ -1,1487 +0,0 @@ -{ - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 2697027346875258477, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 2697027346875258477, - "plan_version": 1, - "snapshot_sha256": "4e75782c646622c601f1943733c8173e8d8a26191336bf23f5ce0e4a74127027" - }, - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 2697027346875258477, - "plan_version": 1, - "snapshot_sha256": "4e75782c646622c601f1943733c8173e8d8a26191336bf23f5ce0e4a74127027" - }, - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "source samples" - } - ] - } - }, - { - "id": 1, - "payload": { - "kind": "value", - "operation": { - "MaintainPopulation": { - "population": { - "input": { - "CurrentSeries": { - "grouping": [ - "label_0" - ], - "lookback_ms": 5000, - "matchers": [], - "metric": "data", - "without": false - } - }, - "max_k": 3, - "quantiles": false - } - } - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact members under the declared population semantics" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": { - "ReadPopulation": { - "readout": { - "TopK": { - "k": 3 - } - } - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact current-population readout" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "topk by (label_0) (3, data)": { - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "18446744073709551615": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "2": { - "Operator": { - "inputs": [ - 18446744073709551615 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 2 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "metric": "data", - "matchers": [], - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "lookback_ms": 5000, - "max_input_lag_ms": 5000, - "history_retention_ms": 0, - "max_series": 100000, - "max_bytes": 1073741824, - "max_k": 3, - "quantiles": false - }, - "readout": { - "kind": "snapshot" - } - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:a975d8480168ad2f477897f4128dc3d9f3bb53fb05b9fe87057f9f221243f1f5" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:21d490ed5a1a5ce1cab55b6ba6c7c656963e4c4555a0646a45e4c16c7b06196d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:3d74d9659f040a654a0e0cc82d6a83c407d04819cd0dea04112ae0c4e9dbdf34" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21", - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 6 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot deleted file mode 100644 index cf6b48735..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json deleted file mode 100644 index a98ca82aa..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-0.json +++ /dev/null @@ -1,1228 +0,0 @@ -{ - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 11818444224054941250, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.01 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "3752266711358116078": { - "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11818444224054941250, - "plan_version": 1, - "snapshot_sha256": "c24c449f65b7e00c664355443d1b20a5d81934f63aa921a0a647a0c8de004ee8" - }, - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "materialization": 3752266711358116078, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 3752266711358116078 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11818444224054941250, - "plan_version": 1, - "snapshot_sha256": "c24c449f65b7e00c664355443d1b20a5d81934f63aa921a0a647a0c8de004ee8" - }, - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "quantile_over_time(0.9, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:7c30e471eb1629c6b11d903135968e8db7660f83bc7479d22f7931121d7b768d" - }, - "materialization": 3752266711358116078, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 3752266711358116078, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot deleted file mode 100644 index cf6bbb474..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json deleted file mode 100644 index d9492ab6d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-1.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "envelope": { - "plan_id": 4754089690189431057, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 4754089690189431057, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 4754089690189431057, - "plan_version": 1, - "snapshot_sha256": "428ac6da3ba0567a7ff84bd1766c7b799384099837ff8895aead7989744c9930" - }, - "envelope": { - "plan_id": 4754089690189431057, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 4754089690189431057, - "plan_version": 1, - "snapshot_sha256": "428ac6da3ba0567a7ff84bd1766c7b799384099837ff8895aead7989744c9930" - }, - "envelope": { - "plan_id": 4754089690189431057, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 4754089690189431057, - "plan_version": 1, - "entries": { - "quantile_over_time(0.9, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot deleted file mode 100644 index cf6bbb474..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json deleted file mode 100644 index 2ca4611f3..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-quantile-2.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "envelope": { - "plan_id": 11545774673163874085, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 11545774673163874085, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11545774673163874085, - "plan_version": 1, - "snapshot_sha256": "264e732aa882ebbb085990dc45427d8672f90690ae04392d6806ebd6a9211caa" - }, - "envelope": { - "plan_id": 11545774673163874085, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11545774673163874085, - "plan_version": 1, - "snapshot_sha256": "264e732aa882ebbb085990dc45427d8672f90690ae04392d6806ebd6a9211caa" - }, - "envelope": { - "plan_id": 11545774673163874085, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11545774673163874085, - "plan_version": 1, - "entries": { - "quantile_over_time(0.9, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:4aba9f393b47ee380e72570e4e36fa2a9331487d9b5b38208ee943b8743b54cc", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:d4c8ae852bace907e379d5d53b68b4cb3c5ef88812f3836e47866d0ca1e837e1" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot deleted file mode 100644 index 8f64bbfe6..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json deleted file mode 100644 index 864df4391..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-0.json +++ /dev/null @@ -1,1046 +0,0 @@ -{ - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 1350462962080375017, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "14425999489689100447": { - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 1350462962080375017, - "plan_version": 1, - "snapshot_sha256": "9816c890ff5995d34df441c81a7f76c165b49867e2835ba985420cad0b40a88d" - }, - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "materialization": 14425999489689100447, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 14425999489689100447 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 1350462962080375017, - "plan_version": 1, - "snapshot_sha256": "9816c890ff5995d34df441c81a7f76c165b49867e2835ba985420cad0b40a88d" - }, - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "rate(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "materialization": 14425999489689100447, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 14425999489689100447, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot deleted file mode 100644 index cba155e28..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json deleted file mode 100644 index 148a5129a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-1.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "envelope": { - "plan_id": 4863426083951867157, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 4863426083951867157, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 4863426083951867157, - "plan_version": 1, - "snapshot_sha256": "522880ca2c669d989602b8b2b1beb7018adc40bc29170a6dc3cf3515d7c3d500" - }, - "envelope": { - "plan_id": 4863426083951867157, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 4863426083951867157, - "plan_version": 1, - "snapshot_sha256": "522880ca2c669d989602b8b2b1beb7018adc40bc29170a6dc3cf3515d7c3d500" - }, - "envelope": { - "plan_id": 4863426083951867157, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 4863426083951867157, - "plan_version": 1, - "entries": { - "rate(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "exact_subquery", - "query": "rate(data[1m])" - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot deleted file mode 100644 index ea166db93..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json deleted file mode 100644 index 402bcdebe..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-2.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "envelope": { - "plan_id": 27061497774794526, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 27061497774794526, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 27061497774794526, - "plan_version": 1, - "snapshot_sha256": "74c6c294542f7b212779761d347e4c58cb4892d2c43523a2161e70052a8376c2" - }, - "envelope": { - "plan_id": 27061497774794526, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 27061497774794526, - "plan_version": 1, - "snapshot_sha256": "74c6c294542f7b212779761d347e4c58cb4892d2c43523a2161e70052a8376c2" - }, - "envelope": { - "plan_id": 27061497774794526, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 27061497774794526, - "plan_version": 1, - "entries": { - "rate(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot deleted file mode 100644 index cba155e28..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json b/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json deleted file mode 100644 index f086f597c..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-rate-3.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "envelope": { - "plan_id": 3235857638904289352, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3235857638904289352, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3235857638904289352, - "plan_version": 1, - "snapshot_sha256": "d12eb2ffe6c3c3e26c26ee725cd7562abc41e48bf0e453ab56da1ce0ee843fc7" - }, - "envelope": { - "plan_id": 3235857638904289352, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3235857638904289352, - "plan_version": 1, - "snapshot_sha256": "d12eb2ffe6c3c3e26c26ee725cd7562abc41e48bf0e453ab56da1ce0ee843fc7" - }, - "envelope": { - "plan_id": 3235857638904289352, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3235857638904289352, - "plan_version": 1, - "entries": { - "rate(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "exact_subquery", - "query": "rate(data[1m])" - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8e7124a29cf614b8aec51ed4ca9de8ebbbbc8a1a83494ab7062ce9b22e56b060", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74d5f0bf31a75d229316be91defb53cc219d1deb66ae4af4b3e5057eb68d140c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot deleted file mode 100644 index 1b04bcd1a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum_over_time(data[1m])"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json deleted file mode 100644 index 6a0a6995d..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-0.json +++ /dev/null @@ -1,1044 +0,0 @@ -{ - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 17891999753521262724, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "12984500598014581905": { - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17891999753521262724, - "plan_version": 1, - "snapshot_sha256": "0893fb182e4b35b83326d88d313a3b9a7687035559b51330095208e290ede771" - }, - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "materialization": 12984500598014581905, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 12984500598014581905 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17891999753521262724, - "plan_version": 1, - "snapshot_sha256": "0893fb182e4b35b83326d88d313a3b9a7687035559b51330095208e290ede771" - }, - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum_over_time(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum_over_time(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:17d897558722219d36e020755dbec9e58c6b0c6f9fc6f0651ca9bd46624b3fa6" - }, - "materialization": 12984500598014581905, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 12984500598014581905, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot deleted file mode 100644 index 1086253fd..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum_over_time(data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json deleted file mode 100644 index 7c4082269..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-1.json +++ /dev/null @@ -1,229 +0,0 @@ -{ - "envelope": { - "plan_id": 3167846180279825593, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 3167846180279825593, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3167846180279825593, - "plan_version": 1, - "snapshot_sha256": "792ef34c12265f97d1e85764bf09d07f554cc0899757e98606ff5f291ff80912" - }, - "envelope": { - "plan_id": 3167846180279825593, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 3167846180279825593, - "plan_version": 1, - "snapshot_sha256": "792ef34c12265f97d1e85764bf09d07f554cc0899757e98606ff5f291ff80912" - }, - "envelope": { - "plan_id": 3167846180279825593, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3167846180279825593, - "plan_version": 1, - "entries": { - "sum_over_time(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum_over_time(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot deleted file mode 100644 index fa9d6bdbb..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: sum_over_time(data[1m])"; - query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json b/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json deleted file mode 100644 index 861f34b5e..000000000 --- a/docs/evaluation/issue754-human-review/candidates/temporal-sum-2.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "envelope": { - "plan_id": 17637043547591721229, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 17637043547591721229, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17637043547591721229, - "plan_version": 1, - "snapshot_sha256": "bd838c688bde485d5db53b9750b62e58ded5f87aa655ec6d9ef518aa6a74887b" - }, - "envelope": { - "plan_id": 17637043547591721229, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 17637043547591721229, - "plan_version": 1, - "snapshot_sha256": "bd838c688bde485d5db53b9750b62e58ded5f87aa655ec6d9ef518aa6a74887b" - }, - "envelope": { - "plan_id": 17637043547591721229, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 17637043547591721229, - "plan_version": 1, - "entries": { - "sum_over_time(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum_over_time(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "exact_subquery", - "query": "sum_over_time(data[1m])" - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:0690cdd103782ecc0ab7f33d7081de68de2cd929cc6cf02092fd34d34c360000", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:ee30c8254abb639ea8435d95f02a00c27acad9110cff17d9beb7eda63c723491" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:24f10f8a117139f49f1d88104abbb3fd8111bda9d9d6c01ea99d8dfb6058f102" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:f87f93f2c73c0bd1c3227837d69f47742f89966b5b43fa63eceeba9f20da8bca" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot deleted file mode 100644 index 7e569e6bf..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.dot +++ /dev/null @@ -1,25 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_0_1 [label="Logical\nSort"]; - query_0_2 [label="ExactReadout\nRate"]; - query_0_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_3 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - query_0_2 -> query_0_1; - query_0_3 -> query_0_2; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json deleted file mode 100644 index d64b4b83a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-0.json +++ /dev/null @@ -1,5266 +0,0 @@ -{ - "envelope": { - "plan_id": 14733843382488271694, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 14733843382488271694, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14733843382488271694, - "plan_version": 1, - "snapshot_sha256": "1db96e399ee7d088567817e560420ca24f1f6b923ed6cd141a9b5192d4339c03" - }, - "envelope": { - "plan_id": 14733843382488271694, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 14733843382488271694, - "plan_version": 1, - "snapshot_sha256": "1db96e399ee7d088567817e560420ca24f1f6b923ed6cd141a9b5192d4339c03" - }, - "envelope": { - "plan_id": 14733843382488271694, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 14733843382488271694, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Sort": { - "keys": [ - { - "ascending": false, - "expr": { - "Column": 1 - }, - "nulls_first": false - } - ], - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": { - "Limit": { - "n": 3, - "offset": 0, - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "limit", - "n": 3, - "offset": 0, - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 1 - ] - }, - "1": { - "op": "logical", - "operator": { - "kind": "sort", - "descending": true, - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 2 - ] - }, - "2": { - "op": "exact_readout", - "input": 3, - "readout": "rate" - }, - "3": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:f1a11c04b9d06bb96c298d782589a8c09c250121696895a00a9396c27afce754" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot deleted file mode 100644 index 87545f9fd..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json deleted file mode 100644 index 5f55bbb31..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-1.json +++ /dev/null @@ -1,3985 +0,0 @@ -{ - "envelope": { - "plan_id": 15833270860732361489, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 15833270860732361489, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 15833270860732361489, - "plan_version": 1, - "snapshot_sha256": "d303d04ea52f3faafe576f3bb7a6ca9b3a40b2aa278cd9d36928056896347571" - }, - "envelope": { - "plan_id": 15833270860732361489, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 15833270860732361489, - "plan_version": 1, - "snapshot_sha256": "d303d04ea52f3faafe576f3bb7a6ca9b3a40b2aa278cd9d36928056896347571" - }, - "envelope": { - "plan_id": 15833270860732361489, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 15833270860732361489, - "plan_version": 1, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_fallback", - "reason": "post-ASAP node requires exact execution" - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot deleted file mode 100644 index f185c5b2a..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.dot +++ /dev/null @@ -1,15 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_0_2 [label="Logical\nExactSubquery"]; - query_0_3 [label="Logical\nSort"]; - query_0_3 -> query_0_0; - query_0_2 -> query_0_3; - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json deleted file mode 100644 index 4b913b1b1..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-2.json +++ /dev/null @@ -1,4022 +0,0 @@ -{ - "envelope": { - "plan_id": 5379663311087285901, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 5379663311087285901, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5379663311087285901, - "plan_version": 1, - "snapshot_sha256": "92b433ace25b8150a5617cc6d26f6992540059bde5649800d79c58d58e7e5b7d" - }, - "envelope": { - "plan_id": 5379663311087285901, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 5379663311087285901, - "plan_version": 1, - "snapshot_sha256": "92b433ace25b8150a5617cc6d26f6992540059bde5649800d79c58d58e7e5b7d" - }, - "envelope": { - "plan_id": 5379663311087285901, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 5379663311087285901, - "plan_version": 1, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "limit", - "n": 3, - "offset": 0, - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 3 - ] - }, - "2": { - "op": "logical", - "operator": { - "kind": "exact_subquery", - "query": "rate(data[1m])" - }, - "inputs": [] - }, - "3": { - "op": "logical", - "operator": { - "kind": "sort", - "descending": true, - "grouping": { - "labels": [ - "label_0" - ], - "without": false - } - }, - "inputs": [ - 2 - ] - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot deleted file mode 100644 index 85fd647a8..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.dot +++ /dev/null @@ -1,31 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="ExactReadout\nRate"]; - query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; - query_0_1 -> query_0_0; - query_0_0 -> query_0_2; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_2 [label="#2\nBound physical input"]; - native_query_0_3 [label="#3\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_0_2 -> native_query_0_3; - native_query_0_4 [label="#4\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_0_3 -> native_query_0_4; - } - } -} diff --git a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json b/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json deleted file mode 100644 index ec596ef85..000000000 --- a/docs/evaluation/issue754-human-review/candidates/topk-rate-5.json +++ /dev/null @@ -1,5645 +0,0 @@ -{ - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 6, - "plan_id": 11938117179177087264, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "3c83044a5a74315b8f3323e30df2e9ff4d0a37d78ebdb93fcecff8eba0d59498" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 2, - "dataset_identity": { - "namespace": "example", - "dataset": "metrics" - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 2, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 6, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "3c83044a5a74315b8f3323e30df2e9ff4d0a37d78ebdb93fcecff8eba0d59498" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "bccc837f5caf21c888b2cce73c64a1be283b679a", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Sort": { - "keys": [ - { - "ascending": false, - "expr": { - "Column": 1 - }, - "nulls_first": false - } - ], - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": { - "Limit": { - "n": 3, - "offset": 0, - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 2, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:d9a668c5cb7ea5fee0d45058f83d88bec3408a89f487244c67f202358c4757d1" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "2": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 2 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": null, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a4810e12342d67e4af9ab93f82eb4827280ed9845b21fd0a6e4435863ded2d14", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:27c1614a2e91b1d65d7ea95b0ab04ca703ee7b9dcf7c65d66cd05a67d1279acb" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f9b44e78b7340626419166c8258b4682cfb133a066dfa37fc323cbbd96508f39", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:9ef1a1acef238e414d1a34c451c5345d9b868e03dfb05a88ea327818726c107b" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:96e8b60ec2b74c59b12bae74d4b25aa5262f0f3b47b749471b59bcf4dc2d5831" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:0c42bcc68a8d6451addd107da092a90b6c8db34d5418d5494e4ecf1a0b9163f0" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/ensembles/README.md b/docs/evaluation/issue754-human-review/ensembles/README.md deleted file mode 100644 index c4b95d0bc..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Query ensemble candidate exports - -Generated from Backend `af507e08` and Planner -`bccc837f5caf21c888b2cce73c64a1be283b679a`, including explicit logical dataset -identity, using the Level 1 fixture contracts. -All three Level 1 tests passed. These are structural exports, not cost selections -or human approval. JSON files are gzip-compressed; DOT files show each bound DAG. -Admission reports retain rejected candidates and reasons. - -- `shared-rate`: temporal-rate, grouped-rate, topk-rate. -- `shared-quantiles`: temporal-quantile, quantile-ratio. -- `all-ten`: the complete issue-754 workload. - -Review query roots, dependencies, window contracts and shared stored-output -identity in each candidate. Level 2 separately prices whole workload candidates; -#775 installs each admitted candidate and checks all its query results. diff --git a/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS b/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS deleted file mode 100644 index 3adcef7dc..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/SHA256SUMS +++ /dev/null @@ -1,41 +0,0 @@ -6573fb335aa2e61734bacc78b6af307f1600217e49d9d22956f729ade8e26baa all-ten/admission.json.gz -e1c3fbfa2d50fc51cefb5c01f00f025edc334a42020b0785b8703f07e9d9cf7f all-ten/candidate-1.dot -02a45f809d9da3b6cadc0b3e9e571a7fa3946d36939e4cc8b599885824511feb all-ten/candidate-1.json.gz -3b8ab574c085f96a71710fd37166051b6f9f0333d93a3077586c41a72e15d823 all-ten/candidate-11.dot -8f6944d4b20517d10c0ef6a3e561a04cf1fe51e6f80271f0d18bba7ca623e5e0 all-ten/candidate-11.json.gz -7c14f3b7e09854f16aa190abd6764158608bcf6d23211c40d013c4a778514555 all-ten/candidate-17.dot -bf949405d1b59e872c84f1cc8a67c182aa1e2ce495925c17afc43da7f439d562 all-ten/candidate-17.json.gz -64c31a619c7b75d395eaae7970671b498cb5f95fe4c48e7c3784f28de2240b16 all-ten/candidate-19.dot -5d34fb3d8f186731f19702c48d6712bf70988387a2f7a9a2bbffc0c40c247004 all-ten/candidate-19.json.gz -2ec5dc123c8bb73aca63a835de5aa432f4d6f30ec5f35ee828bf783607acd05e all-ten/candidate-2.dot -6adca4025e78eb903e389299db3446c8d0fffb3c703fb505575625194ac7d7c8 all-ten/candidate-2.json.gz -cbb5191360767a7d674dac969a4439fca93c932cf8ffa8d284285d3bdc9514db all-ten/candidate-21.dot -492b7e2559be5f860ba3ec67963e9e1dde30220f239bfe04774ab9ddf4505cfc all-ten/candidate-21.json.gz -40cf38b48b6839a76e7f5b8a3aedd05b35abe9b792a702f749c3257fdeb6ba43 all-ten/candidate-25.dot -d743ce25e1fcfeabfbcc31c3350abfcd93016964b1c4c232326692e5258160ef all-ten/candidate-25.json.gz -580d29a8e10d9674d20e793def94ebadacd493ab7ac683e6150c2e2600ed5c24 all-ten/candidate-3.dot -fa9c26cbc3e58bcce10ead9478ef16b21ca1846ebe2647997dfcec34ac0b948f all-ten/candidate-3.json.gz -d89d81b944ec7e8f67172868ff31cc85e774512466aab0ac786943bb7b6136c7 all-ten/candidate-7.dot -8a3d5442ba242dbeef024cb00bfa9062c031b6b1b589fb4147c3616aaf64380a all-ten/candidate-7.json.gz -7461b63f21a39804d09bb9f7fca85a11e9793c2bea339a7ed0a7303b5350f768 all-ten/candidate-9.dot -cbeee5d2086540342e267def53cb91654af88268843c3ee03aacaaee25a8dace all-ten/candidate-9.json.gz -1d179ee048cdfe6eaae51cf9dee7f68a04780355e30a0af218e87681df78d828 shared-quantiles/admission.json.gz -2607e6ff164a51e7dffae44677c91d5ab4c6fab0da096f5f105f6df55dd6df62 shared-quantiles/candidate-0.dot -6c7b80bca096b4993def4bfcf8e78e5feafa5b02de39c4fa8c45775d839cbde3 shared-quantiles/candidate-0.json.gz -b0c3c4dd6d91e02b2d8b32b07596b3ef92ace3334dd4bb7b39beeeb587529c47 shared-quantiles/candidate-1.dot -681c18ee8c1d7c629834970430d0564cfaa0f13a1f6ed2e31bc84f311a779750 shared-quantiles/candidate-1.json.gz -fd56bbdabea3e6d4ab97358a3332fce3349eabf32c6e8401fcd99a813190441a shared-quantiles/candidate-2.dot -2d5dce66b1e5aabbeb609258aabf587b3d9bf1afc34e9e32b75bd83497f6e5cd shared-quantiles/candidate-2.json.gz -265f2c26cc1959271a98427eb152909dceb8978164a3ff7c02f5b575e3cbe75b shared-quantiles/candidate-3.dot -7077e37591a6c34cf700d5d7b85fdebc5f8f8846fef3745b8e94cff013664ce2 shared-quantiles/candidate-3.json.gz -b1a664e65e5fd032d386ed6cac8193ca22492059c920bc23c3b3d34bf860ef17 shared-rate/admission.json.gz -ac30b1c50cb86b54761679a50229b0ad3955c2c31089dabd918e095e6cc55ae6 shared-rate/candidate-0.dot -5508aa8c83e18a38b5cb590e774559e6a9f804b466c90f069294f90abed71bdc shared-rate/candidate-0.json.gz -6e15ed465f915ede3349a128b824104c0363de529279ae4b20f1e13416c5145d shared-rate/candidate-1.dot -6d0ff24f65e48e8d567450b5d73059181f138496e09fbb8a14654924ceda970d shared-rate/candidate-1.json.gz -b6c2835d50b5ffcb20611aa5cea186aa5d9fe7c0e6411d43f78f4a88efe616c1 shared-rate/candidate-2.dot -c1e1b3af0ac2f935cb4fe4a073642d1ae130f8a96cac9b7a1d1fcf4e731e7926 shared-rate/candidate-2.json.gz -5b7d5462a2054c3f147070a06f82f6779990fd014311763da20d66b6075a7264 shared-rate/candidate-4.dot -4e89b07495cab155fa33aad92a9c053523bae45ea1019d586bc64dcb683e47f0 shared-rate/candidate-4.json.gz -f78c9e6e8775ca9efb9d4b876b5569fb1920cdae1da322f9bfc246c4669355cb shared-rate/candidate-5.dot -3c59450e29a13fc571b325a72794efae84800d99375255f1254c00ad861b3d14 shared-rate/candidate-5.json.gz diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/admission.json.gz deleted file mode 100644 index 2bfcd027afea984b4140553952403a93765b609f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4909 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot deleted file mode 100644 index 20c1b4474..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.dot +++ /dev/null @@ -1,47 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-1.json.gz deleted file mode 100644 index 55257c1131aeb3eb99d3f9600ce41ab910b046ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13991 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.dot deleted file mode 100644 index 17eaa891c..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.dot +++ /dev/null @@ -1,125 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-3"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-6"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-7"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-8"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-9"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-11.json.gz deleted file mode 100644 index 7c3fd4504724bf58b2b9dba5563ad7f439360b0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23669 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 RZ+mX<12r8zID~P~{tt}aJP`l@ diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot deleted file mode 100644 index 5cdffc2ce..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.dot +++ /dev/null @@ -1,137 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a545abfa310f89ae [label="materialization\npolicy_fp:a545abfa310f89ae\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-3"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-5"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-6"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-7"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11909113880704420270) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-8"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - subgraph cluster_precompute_dag_6 { - label="compat-query-9"; - precompute_6_0 [label="fallback #0\nMaintenanceInput"]; - precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_6_0 -> precompute_6_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_6_1 [label="ExactReadout\nSum"]; - query_6_2 [label="ReadMaterialization\npolicy_fp:a545abfa310f89ae\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a545abfa310f89ae -> query_6_2 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - query_6_2 -> query_6_1; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-17.json.gz deleted file mode 100644 index 364af03f35ba028945ac61cce6549a9e82962a38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23564 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 F@?VGRDCPhF diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot deleted file mode 100644 index cdea36ee5..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.dot +++ /dev/null @@ -1,126 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-3"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-5"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-6"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-7"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-9"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_2 [label="Logical\nExactSubquery"]; - query_9_3 [label="Logical\nSort"]; - query_9_3 -> query_9_0; - query_9_2 -> query_9_3; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-19.json.gz deleted file mode 100644 index 0560f1c98187501ccafed25fa0ebed816dc1b8b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23576 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.dot deleted file mode 100644 index d394a666f..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.dot +++ /dev/null @@ -1,135 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-3"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-5"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-6"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-7"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-8"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - subgraph cluster_precompute_dag_6 { - label="compat-query-9"; - precompute_6_0 [label="fallback #0\nMaintenanceInput"]; - precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_6_0 -> precompute_6_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-2.json.gz deleted file mode 100644 index 78fb9f5f6d74fe6d90f9d731d87c9230ec3b8065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24164 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 O(%eQ`0VN+qsQ&>~U>OSl diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot deleted file mode 100644 index 292bf43e3..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.dot +++ /dev/null @@ -1,120 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-3"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-5"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-6"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-7"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-8"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-21.json.gz deleted file mode 100644 index d87847a84cfaea012ed971bab31f380f37ddcf81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22435 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 precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-4"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-5"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-6"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; - precompute_3_2 [label="value #2\nMaintenanceInput"]; - precompute_3_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - precompute_3_1 -> precompute_3_2 [label="Input"]; - precompute_3_2 -> precompute_3_3 [label="Input"]; - subgraph cluster_maintenance_3_3 { - label="Planner maintenance operators"; - maintenance_3_3_1 [label="#1\nBound physical input"]; - maintenance_3_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; - maintenance_3_3_1 -> maintenance_3_3_2; - maintenance_3_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; - maintenance_3_3_2 -> maintenance_3_3_3; - } - } - subgraph cluster_precompute_dag_4 { - label="compat-query-7"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-8"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - subgraph cluster_precompute_dag_6 { - label="compat-query-9"; - precompute_6_0 [label="fallback #0\nMaintenanceInput"]; - precompute_6_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_6_0 -> precompute_6_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; - materialization_9414a19c98bfc6a8 -> query_5_0 [style=dashed, color=gray40, label="reads"]; - query_5_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; - query_5_0 -> query_5_1; - subgraph cluster_native_query_5 { - label="Planner query operators"; - native_query_5_3 [label="#3\nBound physical input"]; - native_query_5_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; - native_query_5_3 -> native_query_5_4; - } - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-25.json.gz deleted file mode 100644 index 1e816ac218013f4378e12dcef0b53945d4f203a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27513 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 native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-3.json.gz deleted file mode 100644 index d2b4ff1c51762dd6b2e1bad27530ab3c652f5cff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15649 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 l_M$ precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-5"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-6"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-7"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-8"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-9"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_1_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_1_1 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-7.json.gz deleted file mode 100644 index c51d0cbeaa80c5f97bf2737bb32364dd57b0a877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23258 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 precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-5"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-6"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - subgraph cluster_precompute_dag_3 { - label="compat-query-7"; - precompute_3_0 [label="fallback #0\nMaintenanceInput"]; - precompute_3_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_3_0 -> precompute_3_1 [label="Input"]; - } - subgraph cluster_precompute_dag_4 { - label="compat-query-8"; - precompute_4_0 [label="fallback #0\nMaintenanceInput"]; - precompute_4_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_4_0 -> precompute_4_1 [label="Input"]; - } - subgraph cluster_precompute_dag_5 { - label="compat-query-9"; - precompute_5_0 [label="fallback #0\nMaintenanceInput"]; - precompute_5_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_5_0 -> precompute_5_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_2 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_2_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_2_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_2_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_2_2 [style=dashed, color=gray40, label="reads"]; - query_2_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_2_1 -> query_2_0; - query_2_3 -> query_2_0; - query_2_2 -> query_2_1; - query_2_2 -> query_2_3; - } - subgraph cluster_query_3 { - label="QueryPlan: rate(data[1m])"; - query_3_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_3_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_3_1 [style=dashed, color=gray40, label="reads"]; - query_3_1 -> query_3_0; - } - subgraph cluster_query_4 { - label="QueryPlan: sum by (label_0) (data)"; - query_4_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - } - subgraph cluster_query_5 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_5_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_5_1 [label="ExactReadout\nRate"]; - query_5_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_5_2 [style=dashed, color=gray40, label="reads"]; - query_5_1 -> query_5_0; - query_5_2 -> query_5_1; - } - subgraph cluster_query_6 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_6_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_6_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_6_1 [style=dashed, color=gray40, label="reads"]; - query_6_1 -> query_6_0; - } - subgraph cluster_query_7 { - label="QueryPlan: sum_over_time(data[1m])"; - query_7_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_7_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_7_1 [style=dashed, color=gray40, label="reads"]; - query_7_1 -> query_7_0; - } - subgraph cluster_query_8 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_8_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_8 { - label="Planner query operators"; - native_query_8_1 [label="#1\nBound physical input"]; - native_query_8_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_8_1 -> native_query_8_18446744073709551615; - native_query_8_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_8_18446744073709551615 -> native_query_8_2; - } - } - subgraph cluster_query_9 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_9_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_9_1 [label="Logical\nSort"]; - query_9_2 [label="ExactReadout\nRate"]; - query_9_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_9_3 [style=dashed, color=gray40, label="reads"]; - query_9_1 -> query_9_0; - query_9_2 -> query_9_1; - query_9_3 -> query_9_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz b/docs/evaluation/issue754-human-review/ensembles/all-ten/candidate-9.json.gz deleted file mode 100644 index 2fddf22d9b15e2fa2881dc0e916e1b55e5d3fb28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22900 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 z

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 I1rg5w04@rX^Z)<= diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/admission.json.gz deleted file mode 100644 index 9a1aaf0a152ae2174550e2aae3222d4dd509dae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 zcmV-41Izp$iwFP!00002|IL-%iW@i#h41?m!(6u@TR)cPRZ1CTOWF;Dq;xW+W!ZOM zrJY$=mQv`@(u-Uqb}Z@W)6v^kH#dLP=jP^i+sO}Zm$*Op?cL3-J=ps<@#+214yQLC z+ugtCcd8j%c@567iCb4TT?n#p3yx6LwYRQ5`-YtgBNDu6@5FuexPARK;_>{)VcYTk z!})xvpbr)G?U$3A|3|;xxkK@UsXhd)547B426YILn3>xqazbUm)@;mOU%QOebr=oU z`zi3Zo=+LJSeFlr@a9WsLP8n>6HxB%y-NkNoRfV5;%>~E+C8%M+b^%bd#djJpPwJT zl=nShpD*62?c~L6v&x##e6TykgpOW8tIlrWMBwBrs0!j{3`26XIdDAddhj@14wujO zk0<+Rhoh}y+G61cy7+Lh%i~q{+jV|C`SbrPv(wjHo3_#rsh7x1G8r2_ zUAmkv*V@hxm;b)`&6suk_v;_QZH}Z--5n57AlX>7hs;&-yL($q0i(FmIlAw#Yp*l8 zweaBV?T2xrUD^TzaOZ&{1ksXrMn=ahX$J2$wPcw)-O$vvZH>l7oWlAJZhO_lwCZt( zYG=!e1&Xf7(tDpas_2!t=-OUiYg6w|x|vjAuY4(P97`M=+m>0=308@ZbX1r{9d-d) zl|w7oi$HTROW;bhv<7PVGjQvS0)r=sN@E(VzZ^GRy3x!U2ZnT27MXo|vNvcojWY^~ z1WxBw3>*S;NtAmU#yf z*^AxHspbd^D8X=EZTH?b_!e89uDUyC2=?3^{{-9+CzX?wiskDf zW##b8af5QKOl6w8-%Tm#)zY=qYaQ&4%f;=UxM4KcmDuP$9pxt2><{h53X(i diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot deleted file mode 100644 index a401ecc7c..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.dot +++ /dev/null @@ -1,40 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-1"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_1_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_1_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_1_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_1_2 [style=dashed, color=gray40, label="reads"]; - query_1_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_1_1 -> query_1_0; - query_1_3 -> query_1_0; - query_1_2 -> query_1_1; - query_1_2 -> query_1_3; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-0.json.gz deleted file mode 100644 index 0a3fb10284c8233af2124e50d15bdbf10ab01258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7604 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 WPxI>L!^S^r0)fM2 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 HWM}{Y precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_1_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_1_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_1_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_1_2 [style=dashed, color=gray40, label="reads"]; - query_1_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_1_1 -> query_1_0; - query_1_3 -> query_1_0; - query_1_2 -> query_1_1; - query_1_2 -> query_1_3; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-2.json.gz deleted file mode 100644 index 08f58bcc584b98ae8c1fa7f74a6a0202df13231b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6845 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.dot b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.dot deleted file mode 100644 index 2ec45f960..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.dot +++ /dev/null @@ -1,25 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } - subgraph cluster_query_1 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_1_0 [label="ExactFallback\npost-ASAP node requires exact execution", shape=doubleoctagon]; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-quantiles/candidate-3.json.gz deleted file mode 100644 index c6d95015b97e08d87c329f9bebcb6876ba0bd0ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6294 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 M1L8kz6Yk#t0LTGjn*aa+ diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/admission.json.gz deleted file mode 100644 index cc98eb1185a3498632b69597b3019b347a0fabcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2028 zcmVB*xBjnp6>ekufJx0_-?oR8~%2?83ZDR;lsVAk|$oZmJWD& z%ETYrT#lD*YRB{CU%UL-A#wWe-#-Rs8cmXd;sIQRyHBi5Yu2WXZheW&+@lB$>d|uUKX#Wy0cN(<-la9cRLX^Kg%>s0=GFn;1GHyu2OXO_W&5JALBpD*tRGZ1(>Z|J%jF6b&A$ZsU{?2;>Ecd6@+d8w*F|EfA3D< zm%DE!xGai-qbin==5sI8S|1e5-cpmr-n{|in8+A|$gHlF zR+PFRC>e>l28`N*J?kup79-KM4zf2hP#V|#Ono#vquG#LM$SVA$#6@n(Gm@4;+Fmt zy4|6nAxT`|foOKct}-)vs#vE$7A>p8h9PMr2vSa2(y|epa3hSHNJDh3ymTSJ3rYn~ zS71m&bN@nOJ<6yZCTx@mx6{A6SQi*+tEMx-aSnz1XaQAD69*bl7c!_(8uV{Z8#)_)?7fOd|F(NF+D9H?_3^&3&!Fkje=E-ev1m1Zeb z8|ska*>q%{fvsLJk8E4117BEb%O36xML+C(<^sJy>Zo}Q@h?DgLf08~tZY9hQ_IX> zo#qNrL9|h`6i=YGW}Q&#TzaM<6&?g)h&aQBOo0kTXBx%})~qMghR>8{c<5o9Uz`R| zqE^(K!yrc}L^p>4-PW~rJJ@R!xm&ZGc7Ly9FA*3H31}#RN zFGyPhPP$5$ur_24P6bU!;PI@Sbd zsIf*eQBGPXHV~XV9)k*FF^cn5+c>f@mJ$lE%hWqifJNfx~ z2gLO?Ab$eXTSBBc`i$Zeu_nl~P8F1fF};r((P|?gP%I42Ls#tq0~lkakY{R_vDIvB zS)GjC2nMwEpoI%H9Iu`Y5QDK@(ABFztlKg?l7w->V9UVK8i?xkB>Ham>MAFwv-_Vm+TUP;fcf}urjwN`rX#{96A7gDYiY@udv&Lq2o)p3d+C1{#(EvOQ*pT zP_|at;0rc4vVC_kTlA47e3JIzD5K#de5v+Xx)junLrI@0?2fu^)r1k?>?S(FNMJd^ zt;_<`mkA@q_CO#EKG0J_5?EL~sW@Zu&20ZFW_xw#1xOQb-=12Ex_TY8^cAgdkL_pH z1WC3S__$&D5n#=(Xdqk7^E~ObELNp%-_ap=wO+&tw?$h)P|Io*3YkvPt7Dm1ZM9rc zGZ5B!4b&*#r203IYT9zC62WJe3Dk4TBTy`XefSXvBC|wl+q0~Nh+5(aU7AiYS8ZON zDeMhy1Qu?=oHSD!GtuHyhsvC5P|m)6InGR5Z9MX*C|SkN*IG K$?SORBme;AR{3-Q diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot deleted file mode 100644 index 4857bca8f..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.dot +++ /dev/null @@ -1,54 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-1"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - subgraph cluster_precompute_dag_2 { - label="compat-query-2"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } - subgraph cluster_query_1 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_1_1 [label="ExactReadout\nRate"]; - query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - query_1_2 -> query_1_1; - } - subgraph cluster_query_2 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_2_1 [label="Logical\nSort"]; - query_2_2 [label="ExactReadout\nRate"]; - query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; - query_2_1 -> query_2_0; - query_2_2 -> query_2_1; - query_2_3 -> query_2_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-0.json.gz deleted file mode 100644 index e91cec9a526adc0eabdabe6574b3d1c3d7a44f04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12758 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 precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-2"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="Logical\nExactSubquery", shape=doubleoctagon]; - } - subgraph cluster_query_1 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_1_1 [label="ExactReadout\nRate"]; - query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - query_1_2 -> query_1_1; - } - subgraph cluster_query_2 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_2_1 [label="Logical\nSort"]; - query_2_2 [label="ExactReadout\nRate"]; - query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; - query_2_1 -> query_2_0; - query_2_2 -> query_2_1; - query_2_3 -> query_2_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-2.json.gz deleted file mode 100644 index ac38f9b42834daf88980a76642a024741433d49e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12156 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 diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot deleted file mode 100644 index 503b4e6b7..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.dot +++ /dev/null @@ -1,45 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-1"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } - subgraph cluster_query_1 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_1_0 [label="Logical\nAggregate", shape=doubleoctagon]; - query_1_1 [label="ExactReadout\nRate"]; - query_1_2 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_1_2 [style=dashed, color=gray40, label="reads"]; - query_1_1 -> query_1_0; - query_1_2 -> query_1_1; - } - subgraph cluster_query_2 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_2_2 [label="Logical\nExactSubquery"]; - query_2_3 [label="Logical\nSort"]; - query_2_3 -> query_2_0; - query_2_2 -> query_2_3; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-4.json.gz deleted file mode 100644 index 940ca9f5b673fa136e4482f8de25373377e51d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11924 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 H6zKl}S?4x` diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.dot b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.dot deleted file mode 100644 index ea156bd0e..000000000 --- a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.dot +++ /dev/null @@ -1,72 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - subgraph cluster_precompute_dag_1 { - label="compat-query-1"; - precompute_1_0 [label="fallback #0\nMaintenanceInput"]; - precompute_1_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; - precompute_1_2 [label="value #2\nMaintenanceInput"]; - precompute_1_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; - precompute_1_0 -> precompute_1_1 [label="Input"]; - precompute_1_1 -> precompute_1_2 [label="Input"]; - precompute_1_2 -> precompute_1_3 [label="Input"]; - subgraph cluster_maintenance_1_3 { - label="Planner maintenance operators"; - maintenance_1_3_1 [label="#1\nBound physical input"]; - maintenance_1_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; - maintenance_1_3_1 -> maintenance_1_3_2; - maintenance_1_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; - maintenance_1_3_2 -> maintenance_1_3_3; - } - } - subgraph cluster_precompute_dag_2 { - label="compat-query-2"; - precompute_2_0 [label="fallback #0\nMaintenanceInput"]; - precompute_2_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_2_0 -> precompute_2_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } - subgraph cluster_query_1 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_1_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; - materialization_9414a19c98bfc6a8 -> query_1_0 [style=dashed, color=gray40, label="reads"]; - query_1_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; - query_1_0 -> query_1_1; - subgraph cluster_native_query_1 { - label="Planner query operators"; - native_query_1_3 [label="#3\nBound physical input"]; - native_query_1_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; - native_query_1_3 -> native_query_1_4; - } - } - subgraph cluster_query_2 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_2_0 [label="Logical\nLimit", shape=doubleoctagon]; - query_2_1 [label="Logical\nSort"]; - query_2_2 [label="ExactReadout\nRate"]; - query_2_3 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_2_3 [style=dashed, color=gray40, label="reads"]; - query_2_1 -> query_2_0; - query_2_2 -> query_2_1; - query_2_3 -> query_2_2; - } -} diff --git a/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz b/docs/evaluation/issue754-human-review/ensembles/shared-rate/candidate-5.json.gz deleted file mode 100644 index bacb66bec4ab5713d07acce70f269e3efa082c03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15570 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 diff --git a/docs/evaluation/issue754-human-review/grouped-rate.admission.json b/docs/evaluation/issue754-human-review/grouped-rate.admission.json deleted file mode 100644 index 1d2156cd9..000000000 --- a/docs/evaluation/issue754-human-review/grouped-rate.admission.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:111f0952136afd6e948171d6e16b8c676d34b55547bdf99843205593a97ef47f", - "logical_root_ids": [ - "asap-explain-v1:root:011978ff0d3f5eb2719aa1fb05c25431e30bce7ce501a9ee95a58f95e1e77984" - ], - "physical_candidate_id": "asap-explain-v1:physical:47825c1d8d1596ca28581a9c3911012f43f2e69e5375fed4703a123d48ac3e51", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 5849823772717530049, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:5720ec70a85747b7ed172ed0dea5e64452c43638184ffce632bdc0b547cb945f", - "logical_root_ids": [ - "asap-explain-v1:root:4c88a5e7a225f5a46dbf69d5abfd7df6277d8adbb6d3e6d551b2773fff417860" - ], - "physical_candidate_id": "asap-explain-v1:physical:4300a782bb2a5d4045f46fb57d992a8834c6069a5f735549f0507caa98252eb8", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 741363842036532054, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:9a6da4a496cd79bb65f8e11a6d3a14a1f8d25bc1198298df6f2a2b56fa20b225", - "logical_root_ids": [ - "asap-explain-v1:root:6daba5f3c9b44ad12632739d6780f55e616a9653fbd1525b02168d0e453a4845" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:f1d848dd9b94a31003252e3e67de1fc831e8cd65e6816ac62bf5f0e1153924a6", - "logical_root_ids": [ - "asap-explain-v1:root:7d4dc0a7304f936ee0d09795aa2989c5d0580dd075f7d5d006bacfb95eea6105" - ], - "physical_candidate_id": "asap-explain-v1:physical:405478c7249bbf80125586a7fffa2568d84b797d0b354692be3fde55dad7a3f8", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 15282866737310247190, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:ec910d95d9d6da4f5d07f294f742290d18ab508bdafc9f350322591dc453d664", - "logical_root_ids": [ - "asap-explain-v1:root:9208d81129d425f445ab8d757e7ad0e4d98cb582785eaf654560a7c6df5bdf35" - ], - "physical_candidate_id": "asap-explain-v1:physical:7ee64b28e1a319d45bfa1b89940e164be12e84c751323db4b70ce5923f2eed60", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3349874915222028658, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:6be4fb9f425339017648a016bdcf3d4191d067ea32bea01c7464bbe04e7dcde0", - "logical_root_ids": [ - "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema" - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/grouped-temporal-sum.admission.json b/docs/evaluation/issue754-human-review/grouped-temporal-sum.admission.json deleted file mode 100644 index d67c27597..000000000 --- a/docs/evaluation/issue754-human-review/grouped-temporal-sum.admission.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:cac6fd2d1eb23e36d3d6dea26d91383b5bfb2bde71ff43eeb9b873bffc20008d", - "logical_root_ids": [ - "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549" - ], - "physical_candidate_id": "asap-explain-v1:physical:4b0cb19a0a9c053291f2d7bb6ed032a80a76f706df42047961b51c490cfb6f1c", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 398383639928265061, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:6514e86127465662ab44d368ad43c83e682d9cc7fad42da7fc84907094dcdac4", - "logical_root_ids": [ - "asap-explain-v1:root:cc3eb5e15d1bcaf981dca5a4450f7a550709d52f0b87d0f68842e61de9f7f4fa" - ], - "physical_candidate_id": "asap-explain-v1:physical:ef727cded34086f495ca0f9930fef6197e967ce7e22a3ad9f7045efe389ae141", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 375190931036314940, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:0c7f183a76d8e52946122044e047540dd4340df864d51d9d43e0448226eddaa3", - "logical_root_ids": [ - "asap-explain-v1:root:afed30a788e560b32b6a5e3d72e6aca13b8cd09c2fc184e950bc6a6f68ec7e57" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:40dd21fdc165cc2a65b26c4c5a11e3c2da152435497b9e879db9a04015725322", - "logical_root_ids": [ - "asap-explain-v1:root:b8c508ddc54d5bc05ce612f20451625866cd9c4c76d97ed47a2bfb87e47db290" - ], - "physical_candidate_id": "asap-explain-v1:physical:3e1a1a41993110533f5d64a598f55da19ff8f819b21f9c03dc292d20c3742f07", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3225737927651639557, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/quantile-ratio.admission.json b/docs/evaluation/issue754-human-review/quantile-ratio.admission.json deleted file mode 100644 index bb1f6036e..000000000 --- a/docs/evaluation/issue754-human-review/quantile-ratio.admission.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:4fb544af8f312840e962c54cfa2dcffbad5bb3debebf58e8b512acba1a07bee5", - "logical_root_ids": [ - "asap-explain-v1:root:36df098d763a273afc79e420e66e9ffca935f037e5a1a79c935267b287a470cc" - ], - "physical_candidate_id": "asap-explain-v1:physical:bdd60d919a3717a7eac447277bd55d9cb0d2489121c4c275be8535974668df1b", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 14871479243635342203, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:4a707b1f6e9ac5a5b31643a1eee202400ead6e24f3725eba0804283f1500bb1c", - "logical_root_ids": [ - "asap-explain-v1:root:cb06b175d20dbe1f760083d83562229a77ffbf3b4f719dbbc422d48c54880cbf" - ], - "physical_candidate_id": "asap-explain-v1:physical:3f1e2b58edfa1c0af3cb3180a0632c438f3f68a8219868aa89b4c00b3a06c2d1", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 5752356276213301876, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:7f9c6332a1d49b67039b33c02a2b4cc324cfca3271fee74cdc8f907e59bb72d2", - "logical_root_ids": [ - "asap-explain-v1:root:6341ef0ca36372c08399bd313a99aab646d639ad3f55107c2e038b0339493a50" - ], - "physical_candidate_id": "asap-explain-v1:physical:f87a97555e148f5d4bbdc8ce2c0c43970ce3e28f1d86d83187a4008447bb55b7", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 12971657221408630864, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-quantile.admission.json b/docs/evaluation/issue754-human-review/spatial-quantile.admission.json deleted file mode 100644 index 9692c489a..000000000 --- a/docs/evaluation/issue754-human-review/spatial-quantile.admission.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:c9aaf94a2015bbb6bc16c6da810771953107d1316817b63788f031334b824f68", - "logical_root_ids": [ - "asap-explain-v1:root:6aa3eb79ee2f717bb3be85517dfece4cef935a48534b2bf08ad7b82beb0c48a2" - ], - "physical_candidate_id": "asap-explain-v1:physical:bf2ff22c472f8c253909eb82e6e056d3f3a8558176ba2f865dc241fbe3cc314d", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3294188734724225991, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:54b2218020929f8b0d25267363baaa2c34a9b92b4cd99faa7790593bcb437ded", - "logical_root_ids": [ - "asap-explain-v1:root:fd88d52b75a7faf02f8c7b0ec431ba495f22b63e62695a388b313871434ea2e6" - ], - "physical_candidate_id": "asap-explain-v1:physical:d76fd2149f74284fdd27bed60f1b1d7e0b752f8ec43853271130405e945fb660", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 14256379658571227787, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:dc49674bd5b4a491c1e32421471de94183448a57e2974bf5880f4c1014f6d565", - "logical_root_ids": [ - "asap-explain-v1:root:59753aa608478f315510b90d33afe3d3498b424dfbe744dbb595b0d898a16dba" - ], - "physical_candidate_id": "asap-explain-v1:physical:6eb943c7680d7bc70eb41402fcebd957c600040bec07698011d74789d8b8b0af", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 18366075381595067177, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:71ac43494ecab69c9808292bc9b5f44b21cec3ff30a8433774531aff351bff81", - "logical_root_ids": [ - "asap-explain-v1:root:ff6c7fa75bd824d15015c7b39434e7b7956caa545dabb6a4b0300d38ce852b13" - ], - "physical_candidate_id": "asap-explain-v1:physical:d4080a0b42161499e7f65aa98f73e07b8093a1b271879644633d465cc50c09e8", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 7667691247138405742, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-sum.admission.json b/docs/evaluation/issue754-human-review/spatial-sum.admission.json deleted file mode 100644 index 07187c27a..000000000 --- a/docs/evaluation/issue754-human-review/spatial-sum.admission.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:3be3a41143a4f294dd86565f1b6bb5799c2a58b91cc3e2ce693933b2ab70a0ec", - "logical_root_ids": [ - "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7" - ], - "physical_candidate_id": "asap-explain-v1:physical:1d8c58c38d15133c78840488619a3327806ef1dacd3bcfb328e7ba437d829c2d", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3688256239081920855, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:abf5efc0850b4b6277747e6f1854128d7d317036073049557d7bc8aa5901fe4e", - "logical_root_ids": [ - "asap-explain-v1:root:7ff3b3d94ab998a2379b3ece3415130f068445e61bf76faca2580b9745c1a573" - ], - "physical_candidate_id": "asap-explain-v1:physical:839f658c5abbda84fa3ff561ec9b91abdcde972208cb67b0bb151aebd56049d1", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 17875413431231421451, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:b7db63ce72644bb7114426c030589f6da8b1e031aa40c794b8d1272179443c21", - "logical_root_ids": [ - "asap-explain-v1:root:3052368e6a27c889cd28866ab95cd2d31700861582303eeeeca4916ace17d75c" - ], - "physical_candidate_id": "asap-explain-v1:physical:7b333a16d4d53d7be8adb6a0c1414c99f31dfd03738ab16958868fd20eb0755d", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 8064649510529993241, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:04b75c822a626cb540735532131ced917dd2268098297c88a225f235275466b7", - "logical_root_ids": [ - "asap-explain-v1:root:45fc4ceb0dfc3aa52fefb47dd50844411b0ff858390366fef488ab3244f0810e" - ], - "physical_candidate_id": "asap-explain-v1:physical:941c854f10c2cb6f50e13c6f540d817009530956e216850f704af41bc6eedef6", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 10907830462850005469, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/spatial-topk.admission.json b/docs/evaluation/issue754-human-review/spatial-topk.admission.json deleted file mode 100644 index a7494cbea..000000000 --- a/docs/evaluation/issue754-human-review/spatial-topk.admission.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:7d3e10d14fca58a7ecf3bb41932c6a4e644eca1b9a1ebb18d6a36365c2f16c64", - "logical_root_ids": [ - "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:8750d56b757927cf51befebf02d41ed72de02bc2454d8789f943f6a70fffaedd", - "logical_root_ids": [ - "asap-explain-v1:root:d3fb125ea5076ac3e0310f3fefda894380e5160a9a66a6f6cf0385cfe2fce9fb" - ], - "physical_candidate_id": "asap-explain-v1:physical:49338bca64db2ee6610bfc59cb2b7f92c0ff6d0a5b63b58abf431638e2ee6919", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 5538412219857372274, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:f35b353455f28664f5d479b20dfa5d8c7d15bdb38e38c3001760ceea861e427a", - "logical_root_ids": [ - "asap-explain-v1:root:3f042e8731583d1bff8e7f8fea235b22aa7b91c197f24377269b9aba882e7293" - ], - "physical_candidate_id": "asap-explain-v1:physical:0ab57dcc6b6f25ddacf1dcde8778b86eb14f1ab19142418d9f4becbc87c853b4", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 2697027346875258477, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:fa96fd113280e9693ebe25570e56388d43c994536c3e011fda2a12378ad92cf4", - "logical_root_ids": [ - "asap-explain-v1:root:37837d0f71bf4f773d9158fa9240f3476c7be0ac5797fb00368e60c152740a21" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-quantile.admission.json b/docs/evaluation/issue754-human-review/temporal-quantile.admission.json deleted file mode 100644 index 5ce895501..000000000 --- a/docs/evaluation/issue754-human-review/temporal-quantile.admission.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:cae8c0dc87b8c9b8a4caf0505c0e6f93331ef8a6a11738891490a699d95e9bec", - "logical_root_ids": [ - "asap-explain-v1:root:f67ab58bd7aeed1db6490f0fa305404fc2d226e66af995d9033c1558f82def12" - ], - "physical_candidate_id": "asap-explain-v1:physical:8928adb5cbe3827eac3eb3494c586dccf712858b4db91f92c0a0f9b5c4a39d0a", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 11818444224054941250, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:f6baac22056351e8ab54eced4b908df054269b9b37cfe712a909d715a843d51c", - "logical_root_ids": [ - "asap-explain-v1:root:4c0760500525736640e1f5cfefe23f81975c1986959cfda3a8d81c8e1528780b" - ], - "physical_candidate_id": "asap-explain-v1:physical:6161dde9c05e443ef70973dc8d4e4de1012c20c7e32fe66f3b14ffe596996146", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 4754089690189431057, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:685f5f0b8a54645b9149cd418dba5a87b04ed49de58596c1a979e6669b6ccee1", - "logical_root_ids": [ - "asap-explain-v1:root:37f71dd62f9a9ba01d93f319ede576bb568eec80f4a14f46b7d3a3907ee344a2" - ], - "physical_candidate_id": "asap-explain-v1:physical:dc7476ab614c0587fbabcff0fe9cf2eabf671ada395f234a308d9bc8c11ca102", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 11545774673163874085, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-rate.admission.json b/docs/evaluation/issue754-human-review/temporal-rate.admission.json deleted file mode 100644 index 4021abe64..000000000 --- a/docs/evaluation/issue754-human-review/temporal-rate.admission.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:e9d29c931bba7e8d5126f86ac1c4c1a591a90fe069ae8fcba809556b1431139a", - "logical_root_ids": [ - "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" - ], - "physical_candidate_id": "asap-explain-v1:physical:4621c0eac39587cbeeaf3a65cff8aa3dd9bcf440a3a653156b35ee6f8427ecda", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 1350462962080375017, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:f68f3bbd303d1d8f2211252730af8b5f78e3536ebb17df6f62db9b4f34a8a99a", - "logical_root_ids": [ - "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" - ], - "physical_candidate_id": "asap-explain-v1:physical:328414918d487bf96849fcc640d6692f2de285c9ece96da6663010dcd8a9e580", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 4863426083951867157, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:63307678b5ac4b6551b16bbb6ff52a1390043de10997d737ab048e0249d7e101", - "logical_root_ids": [ - "asap-explain-v1:root:20edcbe6a7c98400a1ed3d85bf6e50d0bb3815c0588613057b45bfb5d0110c2a" - ], - "physical_candidate_id": "asap-explain-v1:physical:805bb8cc1e5151d09e32d793522a9a824dbb9dc6b5e2727796d658b6de9d69c7", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 27061497774794526, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:e43ed052748b0278634e65c01a0faddffe80ef2cb539e1eaaf51b4a89c043fcf", - "logical_root_ids": [ - "asap-explain-v1:root:52e399207dc2e8015624fc1167db3a5ee14447eeeef748c4e0a08102e837eeff" - ], - "physical_candidate_id": "asap-explain-v1:physical:1d50d68ea9aa9939fd369e190ac573184ce95b3cc598a1e4cf06dd585cb8d0d1", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3235857638904289352, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/temporal-sum.admission.json b/docs/evaluation/issue754-human-review/temporal-sum.admission.json deleted file mode 100644 index ce9b0b3c3..000000000 --- a/docs/evaluation/issue754-human-review/temporal-sum.admission.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:01edf185ad4f84f95cfcc38bdc8171a8d92452d47bf316b408c9c37928bfee7a", - "logical_root_ids": [ - "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5" - ], - "physical_candidate_id": "asap-explain-v1:physical:87227440f782d4af181eb18fbadfee77d286df4356a8e8c9fa2d26e16fc4931a", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 17891999753521262724, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:f4ad48202aae7a3e0fd5fbe558b6496b2894f26898a2a739de4aff1188ff9580", - "logical_root_ids": [ - "asap-explain-v1:root:68707b744b7e3c770561391fdca5a428e5693343ae6e28935b5f3c90fd2f4c44" - ], - "physical_candidate_id": "asap-explain-v1:physical:00f0ebe97213f5f8ba2977920985819c9602a43e28d9fbe4fce4e29119eb5ee7", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 3167846180279825593, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:cdbc5a3b9c4c439cd0cd9346cabf84383f41ba8375965f901bed62fc32664211", - "logical_root_ids": [ - "asap-explain-v1:root:f184b3151f9a3094c8969aabc655efc1c2845a30cb2045fc6fa80eb0f0340b5e" - ], - "physical_candidate_id": "asap-explain-v1:physical:7156c54b17a13f028c9d7fd0c5046d0653cbdcf0c06c7477b354e9148ae84893", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 17637043547591721229, - "total_cost": null, - "unavailable_reason": null - } -] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/topk-rate.admission.json b/docs/evaluation/issue754-human-review/topk-rate.admission.json deleted file mode 100644 index 925207dfe..000000000 --- a/docs/evaluation/issue754-human-review/topk-rate.admission.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "candidate_id": "asap-explain-v1:candidate:111c7f89045f3f95d2496526c0e639483e68e7eccd5233b5800217bb48ca75fc", - "logical_root_ids": [ - "asap-explain-v1:root:49fecd6076c1f86c5d6d741f3d36823254b4063876fba5827c6230d16919ce24" - ], - "physical_candidate_id": "asap-explain-v1:physical:196a6f0d69e6a659db8e260d799c43ef321c987b10f208d765f4905c4f3f00f3", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 14733843382488271694, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:ce6d33de51ec5ae0d2d7f07881dd3eb7e5b395d9785589d5cdd0837098cf2f85", - "logical_root_ids": [ - "asap-explain-v1:root:d56e4eb55b93685203954c7ba13cd63e97364a54b94b7d9296c2d4fd904157b2" - ], - "physical_candidate_id": "asap-explain-v1:physical:39b0b2e7a9f6c2702bafc47a781a7d11573b49c657c947541b15cd60dee3b5c7", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 15833270860732361489, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:e3a772c43298db6d5212f19233f9f799102eea82179768ed1e3485f2494b5cd7", - "logical_root_ids": [ - "asap-explain-v1:root:5e56d98a238228c80a8ed1b60bacf60ae8c4cdb37e06fa1aeaa22097c4b4ddd0" - ], - "physical_candidate_id": "asap-explain-v1:physical:50811f37d1645f2d71bf7dfc600357213487c408b6521f5536f5e10218fe915b", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 5379663311087285901, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:90197a1355bccfb7e3b4b8223ed1ddd7e1008175605ff1edfe54c6c0741b8de1", - "logical_root_ids": [ - "asap-explain-v1:root:801d89f580d5ed0c2767f0b4c5e89e82fd56a5d4522b174f6b079df4a2237830" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:c024ce553894a4a530d5a95127501840d547bc8986567f0fa2e686a69da43e5d", - "logical_root_ids": [ - "asap-explain-v1:root:af33ea0fea85318f5a3fe68d396d697db96c2fe8933dbaa94e0d857c6bc8683e" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:c14415b2ba781f81821bfa69680db6e7704f0aef682d0ba8eb195629bcf1958a", - "logical_root_ids": [ - "asap-explain-v1:root:e6cbb418ec21a9245c8357c1d3693dd220377f4839fd2f5e11580bbcca4037da" - ], - "physical_candidate_id": "asap-explain-v1:physical:a7c59efbbc4961d4a4cc74aa4eebeefec7feb0a7e7e17139697c62af864c8a8d", - "identity_unavailable_reason": null, - "status": "bound", - "plan_id": 11938117179177087264, - "total_cost": null, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:4e9aa572b654a822240790f00df23c815365abbee13b98a5ad40f12abfd40758", - "logical_root_ids": [ - "asap-explain-v1:root:d2ad4a4b530bc3673ae07790c49943b60fc8931f74efaf5cdb6241da0154b831" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:5bfeb9e2bd2e5cb60386f05cda2aa9d0fc1787d5471f17988b4c42d2ff5da540", - "logical_root_ids": [ - "asap-explain-v1:root:6531189b3ea6dc08910b5148ca99b8022ed4fd5508238828419cc7457af1537b" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - } -] \ No newline at end of file From 3ca7d4126eb2f6ec64177e8cb418c4d7641ddbfe Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 17:27:21 +0000 Subject: [PATCH 53/80] fix(control-plane): supply dataset_identity in the API test fixtures CompileAndPublishPhysicalPlanRequest gained a required `dataset_identity` field in this branch, but two api_tests fixtures build their request body as JSON by hand and were never updated, so both failed deserialization with `missing field dataset_identity` before reaching the handler. Take the value from the planning snapshot's own `environment.dataset_identity` rather than inventing one, so the fixture keeps describing the same dataset the rest of the snapshot describes. Co-Authored-By: Claude Opus 5 (1M context) (cherry picked from commit e627dbb329dabcff5a8d18e8796da2b0111efc01) --- control_plane/src/main.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index a6f66ac38..ad12ed794 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -898,6 +898,7 @@ mod api_tests { "metric": "m", "window_secs": 60, "accuracy": query.accuracy_target, "lifecycle": query.summary_lifecycle_inputs, "evaluation_phase_ms": 0, "window_cost_model": snapshot.physical_inputs.window_cost_model }], + "dataset_identity": snapshot.environment.dataset_identity, "collector_ids": ["test"], "capability_snapshot_id": "test", "planner_revision": physical::compiler::PLANNER_REVISION, "max_evidence_age_ms": 60000, "plan_version": 1, @@ -975,6 +976,7 @@ mod api_tests { "metric": metric, "window_secs": query.query_lookback_ms / 1_000, "accuracy": query.accuracy_target, "lifecycle": query.summary_lifecycle_inputs, "evaluation_phase_ms": 0, "window_cost_model": { "implementation_id": "test", "cost": query.window_realization_candidates[0].cost } }], + "dataset_identity": snapshot.environment.dataset_identity, "collector_ids": [], "capability_snapshot_id": "test", "planner_revision": physical::compiler::PLANNER_REVISION, "max_evidence_age_ms": 60000, "plan_version": 1, From be6e540c599407437dcd4d8b97db4ab5c2da3d8c Mon Sep 17 00:00:00 2001 From: zz_y Date: Mon, 28 Sep 2026 17:27:21 +0000 Subject: [PATCH 54/80] fix(control-plane): supply dataset_identity in the API test fixtures CompileAndPublishPhysicalPlanRequest gained a required `dataset_identity` field in this branch, but two api_tests fixtures build their request body as JSON by hand and were never updated, so both failed deserialization with `missing field dataset_identity` before reaching the handler. Take the value from the planning snapshot's own `environment.dataset_identity` rather than inventing one, so the fixture keeps describing the same dataset the rest of the snapshot describes. Co-Authored-By: Claude Opus 5 (1M context) (cherry picked from commit e627dbb329dabcff5a8d18e8796da2b0111efc01) --- control_plane/src/main.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/control_plane/src/main.rs b/control_plane/src/main.rs index a6f66ac38..ad12ed794 100644 --- a/control_plane/src/main.rs +++ b/control_plane/src/main.rs @@ -898,6 +898,7 @@ mod api_tests { "metric": "m", "window_secs": 60, "accuracy": query.accuracy_target, "lifecycle": query.summary_lifecycle_inputs, "evaluation_phase_ms": 0, "window_cost_model": snapshot.physical_inputs.window_cost_model }], + "dataset_identity": snapshot.environment.dataset_identity, "collector_ids": ["test"], "capability_snapshot_id": "test", "planner_revision": physical::compiler::PLANNER_REVISION, "max_evidence_age_ms": 60000, "plan_version": 1, @@ -975,6 +976,7 @@ mod api_tests { "metric": metric, "window_secs": query.query_lookback_ms / 1_000, "accuracy": query.accuracy_target, "lifecycle": query.summary_lifecycle_inputs, "evaluation_phase_ms": 0, "window_cost_model": { "implementation_id": "test", "cost": query.window_realization_candidates[0].cost } }], + "dataset_identity": snapshot.environment.dataset_identity, "collector_ids": [], "capability_snapshot_id": "test", "planner_revision": physical::compiler::PLANNER_REVISION, "max_evidence_age_ms": 60000, "plan_version": 1, From f930b9b7379d0ec09fd18fcd96a6343a369471e1 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 17:49:20 +0000 Subject: [PATCH 55/80] test(level1): certify the heap shapes the strict fixture refuses MustReject(NoCertifiedGuarantee) asserted alone is a weak contract: a heap candidate that quietly left the inventory, or one refused for an unrelated reason, would still satisfy it. Assert both directions instead. issue-754 cannot supply the evidence. Scoped evidence needs topk_selected_lower_bound > topk_excluded_upper_bound, and under the generator's own per-series domain the third- and fourth-ranked series overlap in both groups (a: selects to 40, excludes up to 130; b: selects to 360, excludes up to 850). The pointwise ordering never changes, but these queries evaluate in real_time scope, so the bound must hold across the whole validity window rather than at one instant. Add issue-754-certified-topk, where each series occupies a decade of its own with modulo 1, so the domains are disjoint by construction. The bounds are derived from the dataset rather than chosen -- selected down to 100, excluded up to 21, across both groups, 8 distinct items -- and the fixture asserts the separation it computes, so a dataset that stops separating fails instead of certifying something false. required_summary_shapes now takes the fixture and maps the same families to MustBind or MustReject accordingly, so both tests share one dispatch and MustBind is genuinely exercised rather than carried as dead code. Also delete the archived synthetic-price exports. They named candidates from an older Planner revision that no longer resolve, so they could not be compared against anything current; admission/ is the contract and CI carries the rest. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/issue754_level1.rs | 142 +- .../tests/support/issue754_workload.rs | 73 + docs/design_docs/planning-test-layers.md | 5 + .../issue754-human-review/README.md | 40 +- .../archive/grouped-rate.dot | 40 - .../archive/grouped-rate.json | 8228 ----------- .../archive/grouped-rate.md | 411 - .../archive/grouped-temporal-sum.dot | 21 - .../archive/grouped-temporal-sum.json | 2613 ---- .../archive/grouped-temporal-sum.md | 179 - .../archive/quantile-ratio.dot | 26 - .../archive/quantile-ratio.json | 3409 ----- .../archive/quantile-ratio.md | 185 - .../issue754-human-review/archive/render.py | 242 - .../archive/spatial-quantile.dot | 21 - .../archive/spatial-quantile.json | 2537 ---- .../archive/spatial-quantile.md | 187 - .../archive/spatial-sum.dot | 21 - .../archive/spatial-sum.json | 2232 --- .../archive/spatial-sum.md | 169 - .../archive/spatial-topk.dot | 19 - .../archive/spatial-topk.json | 2781 ---- .../archive/spatial-topk.md | 380 - .../archive/temporal-quantile.dot | 21 - .../archive/temporal-quantile.json | 2350 ---- .../archive/temporal-quantile.md | 181 - .../archive/temporal-rate.dot | 21 - .../archive/temporal-rate.json | 2064 --- .../archive/temporal-rate.md | 164 - .../archive/temporal-sum.dot | 21 - .../archive/temporal-sum.json | 2045 --- .../archive/temporal-sum.md | 163 - .../archive/topk-rate.dot | 31 - .../archive/topk-rate.json | 11337 ---------------- .../archive/topk-rate.md | 552 - .../datasets/issue-754-certified-topk.yaml | 41 + 36 files changed, 247 insertions(+), 42705 deletions(-) delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-rate.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-rate.json delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-rate.md delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json delete mode 100644 docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md delete mode 100644 docs/evaluation/issue754-human-review/archive/quantile-ratio.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/quantile-ratio.json delete mode 100644 docs/evaluation/issue754-human-review/archive/quantile-ratio.md delete mode 100644 docs/evaluation/issue754-human-review/archive/render.py delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-quantile.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-quantile.json delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-quantile.md delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-sum.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-sum.json delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-sum.md delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-topk.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-topk.json delete mode 100644 docs/evaluation/issue754-human-review/archive/spatial-topk.md delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-quantile.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-quantile.json delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-quantile.md delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-rate.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-rate.json delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-rate.md delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-sum.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-sum.json delete mode 100644 docs/evaluation/issue754-human-review/archive/temporal-sum.md delete mode 100644 docs/evaluation/issue754-human-review/archive/topk-rate.dot delete mode 100644 docs/evaluation/issue754-human-review/archive/topk-rate.json delete mode 100644 docs/evaluation/issue754-human-review/archive/topk-rate.md create mode 100644 promql-compliance/datasets/issue-754-certified-topk.yaml diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index e52a8d7ca..40597cc93 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -27,15 +27,18 @@ use workload::Suite; /// one, so the fixture, not a second test path, carries the difference. #[derive(Clone, Copy, PartialEq, Eq, Debug)] enum Resolution { - // No fixture constructs this yet: the issue-754 generator cannot certify a - // heap (see `required_summary_shapes`), so every required shape here is a - // rejection. The variant is the half of the contract a certified fixture - // fills in, and deleting it would delete that contract. - #[allow(dead_code)] MustBind, MustReject(PolicyReason), } +/// Which fixture a query is being planned under. The strict issue-754 generator +/// certifies nothing; its certified companion separates the top-k boundary. +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Fixture { + Strict, + Certified, +} + /// Reasons a fixture may legitimately refuse an otherwise well-formed /// candidate. Anything outside this set is a defect, not a policy decision. #[derive(Clone, Copy, PartialEq, Eq, Debug)] @@ -57,40 +60,31 @@ impl PolicyReason { const ALL: &'static [Self] = &[Self::NoCertifiedGuarantee, Self::AccuracyTargetUnmet]; } -/// Sketch/heap families each query must expose, with how this fixture resolves -/// them. The strict issue-754 fixture certifies no heap, so every heap family -/// is required to be present *and* rejected; that is a positive assertion about -/// the inventory, not silence about it. +/// Sketch/heap families each query must expose, and how the given fixture is +/// required to resolve them. /// -/// A certified companion fixture cannot be derived from this generator. Scoped -/// evidence needs `topk_selected_lower_bound > topk_excluded_upper_bound`, and -/// under the generator's own per-series domain (`multiplier * base` to -/// `multiplier * (base + modulo)`, as `issue754_workload` reads it for the -/// quantile operands) the third- and fourth-ranked series overlap in both -/// groups: group `a` selects down to 40 while excluding a series reaching 130, -/// and group `b` selects down to 360 while excluding one reaching 850. The -/// pointwise ordering never actually changes, but the queries evaluate in -/// `real_time` scope, so the contract must hold across the whole validity -/// window, not at one instant. Certifying a heap needs a generator with -/// non-overlapping per-series domains. -fn required_summary_shapes(name: &str) -> &'static [(&'static str, Resolution)] { - match name { - "spatial-topk" => &[( - "CountSketchWithHeap", - Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), - )], - "topk-rate" => &[ - ( - "CmsWithHeap", - Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), - ), - ( - "CountSketchWithHeap", - Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), - ), - ], +/// The inventory is the same either way -- Planner exposes the heap candidates +/// regardless. What changes is the evidence: under `Strict` the fixture +/// certifies nothing, so every heap family must be present *and* refused; under +/// `Certified` the same families must bind. Asserting both directions is what +/// keeps the refusal meaningful, since a heap that quietly left the inventory +/// would otherwise satisfy the strict fixture on its own. +fn required_summary_shapes(name: &str, fixture: Fixture) -> Vec<(&'static str, Resolution)> { + let families: &[&str] = match name { + "spatial-topk" => &["CountSketchWithHeap"], + "topk-rate" => &["CmsWithHeap", "CountSketchWithHeap"], _ => &[], - } + }; + families + .iter() + .map(|family| { + let resolution = match fixture { + Fixture::Strict => Resolution::MustReject(PolicyReason::NoCertifiedGuarantee), + Fixture::Certified => Resolution::MustBind, + }; + (*family, resolution) + }) + .collect() } /// Binding defects this fixture reaches today. Level 1 records them rather than @@ -847,7 +841,7 @@ fn issue754_queries_have_valid_physical_plans() { "root substitutions must not be reported as exhaustive joint search" ); } - let heap_families = required_summary_shapes(&case.name); + let heap_families = required_summary_shapes(&case.name, Fixture::Strict); let mut heap_roots = heap_families .iter() @@ -886,7 +880,7 @@ fn issue754_queries_have_valid_physical_plans() { }) .collect::>(); if case.name == "topk-rate" { - for (family, resolution) in heap_families { + for (family, resolution) in &heap_families { let trace = request .planner_selection_trace .iter() @@ -1097,6 +1091,76 @@ fn issue754_queries_have_valid_physical_plans() { } } +/// The other half of the membership contract: under a fixture that *can* +/// certify a heap, the shapes the strict fixture must refuse have to bind. +/// +/// This is what keeps `MustReject(NoCertifiedGuarantee)` honest. Without it, +/// a heap candidate that vanished from the inventory, or one refused for some +/// unrelated reason, would still satisfy the strict fixture. +#[test] +fn certified_fixture_admits_the_heaps_the_strict_fixture_refuses() { + for name in ["spatial-topk", "topk-rate"] { + let case = workload::suite() + .queries + .into_iter() + .find(|case| case.name == name) + .unwrap_or_else(|| panic!("{name} left the issue-754 suite")); + let (request, environment) = workload::certified_topk_input(&case) + .into_physical_compilation_request() + .unwrap(); + let shapes = required_summary_shapes(name, Fixture::Certified); + let heap_roots: Vec<(String, Resolution)> = shapes + .iter() + .map(|(family, resolution)| { + let trace = request + .planner_selection_trace + .iter() + .find(|trace| { + trace["stage"] == "planner.physical_candidate" + && trace["physical_dag"].to_string().contains(family) + }) + .unwrap_or_else(|| panic!("{name}: Planner must expose native {family}")); + ( + trace["logical_root_id"].as_str().unwrap().to_owned(), + *resolution, + ) + }) + .collect(); + let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); + let (_, admission) = + compile_candidates_for_pricing(candidates, environment, QueryFrontend::PromQl); + assert!( + !admission.iter().any(|candidate| candidate + .unavailable_reason + .as_deref() + .is_some_and(|reason| PolicyReason::NoCertifiedGuarantee.matches(reason))), + "{name}: certified evidence must remove every uncertified-readout refusal" + ); + for (root_id, resolution) in heap_roots { + let heap: Vec<_> = admission + .iter() + .filter(|candidate| candidate.logical_root_ids.contains(&root_id)) + .collect(); + assert!( + !heap.is_empty(), + "{name}: heap candidate left the inventory" + ); + assert_eq!( + resolution, + Resolution::MustBind, + "the certified fixture declares binding shapes" + ); + assert!( + heap.iter().any(|candidate| candidate.status + == CandidateEvaluationStatus::AwaitingQuote + && candidate.plan_id.is_some() + && candidate.total_cost.is_none()), + "{name}: certified heap must reach pricing, unpriced: {heap:?}" + ); + } + } +} + /// Ensembles retain every query and coherent shared producer bindings in each /// exposed workload candidate. This does not claim exhaustive joint search. #[test] diff --git a/control_plane/tests/support/issue754_workload.rs b/control_plane/tests/support/issue754_workload.rs index 935b51e9f..78db37c89 100644 --- a/control_plane/tests/support/issue754_workload.rs +++ b/control_plane/tests/support/issue754_workload.rs @@ -71,6 +71,79 @@ pub fn input(case: &Case) -> BackendLocalPlanningInput { serde_json::from_value(snapshot).unwrap() } +/// Certified companion fixture for the two top-k queries. +/// +/// The issue-754 generator cannot certify a heap: its per-series value domains +/// overlap, so no scalar `topk_selected_lower_bound > topk_excluded_upper_bound` +/// holds across the validity window, and these queries evaluate in `real_time` +/// scope rather than at one instant. `issue-754-certified-topk` gives each +/// series a decade of its own so the domains are disjoint by construction. +/// +/// Every number below is derived from that dataset, never chosen: the bounds +/// come from the same `multiplier * base` .. `multiplier * (base + modulo)` +/// domain this file already uses for the quantile operands, and the distinct +/// item count is the series count. The assertion at the end is what makes this +/// a contract rather than a guess -- if the dataset stops separating, the +/// fixture fails instead of certifying something false. +pub fn certified_topk_input(case: &Case) -> BackendLocalPlanningInput { + const K: usize = 3; + let mut snapshot: Value = serde_json::from_str(include_str!( + "../../../docs/examples/asapquery-planning-snapshot.json" + )) + .unwrap(); + snapshot["query_workload"]["repeating_queries"][0]["query"] = case.expr.clone().into(); + let fixture: Value = serde_yaml::from_str(include_str!( + "../../../promql-compliance/datasets/issue-754-certified-topk.yaml" + )) + .unwrap(); + let series = fixture["series"].as_array().unwrap(); + let mut groups: std::collections::BTreeMap> = Default::default(); + for entry in series { + let g = &entry["generated_samples"]; + let n = |k: &str| g[k].as_f64().unwrap(); + assert!(n("multiplier") > 0.0 && n("modulo") > 0.0 && n("base") > 0.0); + groups + .entry(entry["labels"]["label_0"].as_str().unwrap().to_owned()) + .or_default() + .push(( + n("multiplier") * n("base"), + n("multiplier") * (n("base") + n("modulo")), + )); + } + let mut selected_lower = f64::INFINITY; + let mut excluded_upper = f64::NEG_INFINITY; + for domains in groups.values_mut() { + domains.sort_by(|a, b| b.0.total_cmp(&a.0)); + for (rank, (lower, upper)) in domains.iter().enumerate() { + if rank < K { + selected_lower = selected_lower.min(*lower); + } else { + excluded_upper = excluded_upper.max(*upper); + } + } + } + assert!( + selected_lower > excluded_upper, + "certified fixture does not separate the top-{K} boundary: \ + selected down to {selected_lower}, excluded up to {excluded_upper}" + ); + let data_workload = snapshot["data_workload"].clone(); + snapshot["implementation"]["data_snapshot_id"] = json!("issue-754-certified-topk"); + snapshot["implementation"]["accuracy_evidence"][&case.expr] = json!({ + "query_string": case.expr, + "data_snapshot_id": "issue-754-certified-topk", + "data_workload": data_workload, + "source": "issue-754-certified-topk-generator", + "observed_at_unix_ms": 9500, + "valid_for_ms": 60000, + "topk_max_distinct_items": series.len() as u64, + "topk_selected_lower_bound": selected_lower, + "topk_excluded_upper_bound": excluded_upper, + "topk_interval_failure_probability": 0.0, + }); + serde_json::from_value(snapshot).unwrap() +} + pub fn ensembles() -> Vec<(String, Vec)> { let groups: [(&str, &[&str]); 3] = [ ( diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md index f1dd3ec53..5258bffeb 100644 --- a/docs/design_docs/planning-test-layers.md +++ b/docs/design_docs/planning-test-layers.md @@ -37,6 +37,11 @@ once, ingests its fixture once, and checks every query in that workload. under the fixture's contracts, not an exhaustive Cartesian product of hypothetical query plans. Binding rejections remain visible; prices cannot override them. +Required shapes are asserted in both directions: the strict fixture must refuse +the heap candidates for a named policy reason, and a certified companion fixture +must admit the same shapes to pricing. A refusal asserted alone would also pass +if the candidate had vanished. + A rejection is not self-justifying. Level 1 separates *policy* refusals — the fixture declining to certify a candidate, which are asserted as required outcomes — from *defects*, which are bugs recorded with exact occurrence counts diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 97e2a1f87..b18ac6698 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -11,7 +11,7 @@ selection quality is Level 3. | Path | Contents | Regenerated by | | --- | --- | --- | | `admission/*.admission.json` | The contract. One report per query: every candidate's id, status and, where it failed, the exact reason. `total_cost` is `null` throughout. | The Level-1 test | -| `archive/` | Historical selected-plan pages, DOT and `render.py`, exported with synthetic fixture prices from an earlier revision. Kept for comparison only. | Nothing | +| `source-commit.txt` | The Backend revision the reports were produced from. | By hand, on regeneration | Enumerated candidate plans (`candidates/`) and workload ensembles (`ensembles/`) are **no longer committed**. They ran to roughly 94,000 lines, they are fully @@ -25,8 +25,9 @@ explaining; its `admission/` directory drops straight onto this one. Candidate, physical-candidate and logical-root ids are content-addressed over the Planner build. They are **not** stable across a Planner bump: changing the pin rewrites every id here while leaving every status, reason and `plan_id` -untouched. Do not cite an id from `archive/` — those were produced by a -different Planner revision and no longer resolve. +untouched. Always regenerate before citing an id; an id from an older revision +does not resolve. The historical synthetic-price exports were removed for this +reason — they named candidates that no longer exist. Backend source revision is in [source-commit.txt](source-commit.txt). The Planner revision is whatever `planner-types` pins in the workspace `Cargo.toml`; @@ -58,17 +59,26 @@ Rate readout. This fixture supplies no distinct-item bound and no score separation, so each one is refused before pricing. That refusal is the assertion — the shapes must be present *and* rejected. -A certified companion fixture cannot be derived from the issue-754 generator. -Scoped evidence requires `topk_selected_lower_bound > -topk_excluded_upper_bound`, and under the generator's own per-series value -domain the third- and fourth-ranked series overlap in both groups (group `a` -selects down to 40 while excluding a series reaching 130; group `b` selects down -to 360 while excluding one reaching 850). The pointwise ordering never changes, -but these queries evaluate in `real_time` scope, so the contract must hold -across the whole validity window rather than at one instant. Certifying a heap -needs a generator with non-overlapping per-series domains. The inherited -`native_snapshot_topk` and `native_rate_topk` tests cover certified heap -admission against fixtures built for it. +The refusal is only meaningful if the same shapes bind when the evidence +exists, so Level 1 asserts both directions. `issue-754` itself cannot supply +that evidence: scoped evidence requires `topk_selected_lower_bound > +topk_excluded_upper_bound`, and under its own per-series value domain the third- +and fourth-ranked series overlap in both groups (group `a` selects down to 40 +while excluding a series reaching 130; group `b` selects down to 360 while +excluding one reaching 850). The pointwise ordering never changes, but these +queries evaluate in `real_time` scope, so the bound must hold across the whole +validity window rather than at one instant. + +`promql-compliance/datasets/issue-754-certified-topk.yaml` is the companion +that can. Each series occupies a decade of its own with `modulo: 1`, so the +domains are disjoint by construction and the separation is *derived* from the +dataset rather than chosen: selected down to 100, excluded up to 21, across +both groups at once, with 8 distinct items. +`certified_fixture_admits_the_heaps_the_strict_fixture_refuses` plans the two +top-k queries against it and requires every heap family to reach pricing, and +requires no uncertified-readout refusal to remain. Without that test, a heap +candidate that silently left the inventory would still satisfy the strict +fixture. **Binding defects** are bugs. Three candidates fail with `Planner logical fragment does not match any original query subtree` and one with a schema @@ -113,7 +123,7 @@ ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \ ``` This writes `admission/` plus the uncommitted `candidates/` and `ensembles/` -trees. It does not regenerate `archive/`. +trees. Actual execution and recovery evidence is maintained in the downstream [bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). diff --git a/docs/evaluation/issue754-human-review/archive/grouped-rate.dot b/docs/evaluation/issue754-human-review/archive/grouped-rate.dot deleted file mode 100644 index 097ba843a..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-rate.dot +++ /dev/null @@ -1,40 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_12e64103ed062a67 [label="materialization\npolicy_fp:12e64103ed062a67\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - materialization_9414a19c98bfc6a8 [label="materialization\npolicy_fp:9414a19c98bfc6a8\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1361847422443465319) }"]; - precompute_0_2 [label="value #2\nMaintenanceInput"]; - precompute_0_3 [label="summary_agg #3\nMaterialization { stored_output: StoredOutputId(10670331111097222824) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - precompute_0_1 -> precompute_0_2 [label="Input"]; - precompute_0_2 -> precompute_0_3 [label="Input"]; - subgraph cluster_maintenance_0_3 { - label="Planner maintenance operators"; - maintenance_0_3_1 [label="#1\nBound physical input"]; - maintenance_0_3_2 [label="#2\n{\"Readout\":{\"parameters\":{\"logical_lookback_ms\":\"60000\"},\"state\":1,\"statistic\":\"Rate\"}}"]; - maintenance_0_3_1 -> maintenance_0_3_2; - maintenance_0_3_3 [label="#3\n{\"SummaryBuild\":{\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"groups\":[2],\"time\":0,\"value\":1}}"]; - maintenance_0_3_2 -> maintenance_0_3_3; - } - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (rate(data[1m]))"; - query_0_0 [label="ReadMaterialization\npolicy_fp:9414a19c98bfc6a8\nwindow=60000ms\nlookback=Some(60000)"]; - materialization_9414a19c98bfc6a8 -> query_0_0 [style=dashed, color=gray40, label="reads"]; - query_0_1 [label="Planner Physical DAG\nbound sources [3]", shape=doubleoctagon]; - query_0_0 -> query_0_1; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_3 [label="#3\nBound physical input"]; - native_query_0_4 [label="#4\n{\"Readout\":{\"parameters\":{},\"state\":1,\"statistic\":\"Sum\"}}"]; - native_query_0_3 -> native_query_0_4; - } - } -} diff --git a/docs/evaluation/issue754-human-review/archive/grouped-rate.json b/docs/evaluation/issue754-human-review/archive/grouped-rate.json deleted file mode 100644 index 7ee8325a1..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-rate.json +++ /dev/null @@ -1,8228 +0,0 @@ -{ - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 15282866737310247190, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - }, - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2": { - "id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2", - "source": { - "derived": { - "input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - } - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "population_key_encoding": "canonical_labels_v1", - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - }, - "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "population_key_encoding": "canonical_labels_v1", - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "1361847422443465319": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - }, - "10670331111097222824": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:population-key:canonical-labels-v1|data:v2|138:{\"derived\":{\"input\":{\"inputs\":[1361847422443465319],\"program_sha256\":\"c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943\"}}}|14:\"sample_value\"|0:|partition:Grouped|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - }, - "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [] - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" - } - ] - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" - } - ] - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 15282866737310247190, - "plan_version": 1, - "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" - }, - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 1361847422443465319, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "materialization": 1361847422443465319, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - }, - { - "stored_output_reference": { - "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "materialization": 10670331111097222824, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - }, - { - "semantic_fragment": { - "format_version": 1, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415", - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [] - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e" - } - ] - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a" - } - ] - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "grouped", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "native_programs": { - "3": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - } - }, - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1361847422443465319 - }, - "2": { - "placement": "maintenance_input" - }, - "3": { - "placement": "materialization", - "stored_output": 10670331111097222824 - } - }, - "query_sink": 4, - "query_plan_sink": 1, - "precompute_sinks": [ - 1, - 3 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 15282866737310247190, - "plan_version": 1, - "snapshot_sha256": "d6707a8c4d8f69179d4c4d63ea523ccab7242dd297c72015d6b11d168737ede3" - }, - "envelope": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "sum by (label_0) (rate(data[1m]))": { - "physical_dag": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 1, - "nodes": { - "0": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" - }, - "full_window_slide_ms": 10000, - "materialization": 10670331111097222824, - "output_grouping": { - "mode": "reduce", - "keys": [] - }, - "window_ms": 60000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "1": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 3 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 1361847422443465319, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - }, - { - "materialization": 10670331111097222824, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 15282866737310247190, - "selected_manifest": { - "plan_id": 15282866737310247190, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "sum by (label_0) (rate(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "maintenance:10670331111097222824": { - "implementation": { - "interval_ms": 10000, - "physical_program": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "stored_output": 10670331111097222824, - "window_ms": 60000 - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "full_window_slide_ms": 10000, - "materialization": 10670331111097222824, - "output_grouping": { - "keys": [], - "mode": "reduce" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "stored_output_id": 10670331111097222824 - }, - "window_ms": 60000 - }, - "op": "read_materialization" - }, - "physical_dag": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "sum by (label_0) (rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 0 - ], - "max_bytes": 2147483648, - "op": "physical", - "source_nodes": [ - 3 - ] - }, - "physical_dag": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "sum by (label_0) (rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 1 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10670331111097222824:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "inputs": [], - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "inputs": [ - { - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "inputs": [ - { - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "inputs": [ - { - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", - "role": "Input" - } - ], - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 10670331111097222824, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "stored_output_id": 10670331111097222824 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10670331111097222824:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "inputs": [], - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "inputs": [ - { - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "inputs": [ - { - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "inputs": [ - { - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", - "role": "Input" - } - ], - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 10670331111097222824, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "stored_output_id": 10670331111097222824 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10670331111097222824:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "inputs": [], - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "inputs": [ - { - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "inputs": [ - { - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "inputs": [ - { - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", - "role": "Input" - } - ], - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 10670331111097222824, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "stored_output_id": 10670331111097222824 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10670331111097222824:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e": { - "inputs": [], - "operation": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e": { - "inputs": [ - { - "node": "281705916d10b96697ec101cce419c992c1279c600891b5e56d4a1adcb64296e", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - }, - "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415": { - "inputs": [ - { - "node": "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - }, - "ef813a13a2e89ef201b24560ee5d55de6211e2992dbb6b818b4ecdc868db177a": { - "inputs": [ - { - "node": "8735f54b85f5f70347523592cf6c2c0b8c6a2ca75c72533b6e29c7a6e7d1a26e", - "role": "Input" - } - ], - "operation": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "c6f1c5b1a9050a409467620f57b822c6b6e27af27a4df577b3b389a24fe9e415" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 10670331111097222824, - "schema_id": "asap-query-backend.v1:summary-state:v1:10670331111097222824", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56", - "stored_output_id": 10670331111097222824 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1361847422443465319:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 1361847422443465319, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 1361847422443465319 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1361847422443465319:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 1361847422443465319, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 1361847422443465319 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1361847422443465319:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 1361847422443465319, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 1361847422443465319 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1361847422443465319:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "population_key_encoding": "canonical_labels_v1", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 1361847422443465319, - "schema_id": "asap-query-backend.v1:summary-state:v1:1361847422443465319", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 1361847422443465319 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-full-window" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "maintenance:10670331111097222824": 1.0, - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:10670331111097222824:build": 1.0, - "state:backend:10670331111097222824:residency": 1.0, - "state:backend:10670331111097222824:retire": 1.0, - "state:backend:10670331111097222824:update": 1.0, - "state:backend:1361847422443465319:build": 1.0, - "state:backend:1361847422443465319:residency": 1.0, - "state:backend:1361847422443465319:retire": 1.0, - "state:backend:1361847422443465319:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:87b839e53f17c6edb9300442353164b2be820b3935786213063526cb53a6c96c", - "logical_root_ids": [ - "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b" - ], - "physical_candidate_id": "asap-explain-v1:physical:7ccc3bc27c1b96ada6ee6ba3fc13d6086f238bdd76a5b789ef1264884ebce6ae", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5849823772717530049, - "total_cost": 125.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:26e523685f44afb79b6cf56e61e83103bad15f18eae703e32f89edc23f76bbfe", - "logical_root_ids": [ - "asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba" - ], - "physical_candidate_id": "asap-explain-v1:physical:8cfce96a5da0445c91268f4b08c0ef73e4f3f5c24f75a05b9272203f5281f3d8", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 741363842036532054, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:75549c88c5ef740087b6227e4a296e618acebb67efb1db5837b568e3100444e6", - "logical_root_ids": [ - "asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:e55145861b536c12ea805c740f9c620c26a962496cdb1ab6474a99a98e599f4c", - "logical_root_ids": [ - "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5" - ], - "physical_candidate_id": "asap-explain-v1:physical:26c63bfb557453a9a1e144baaaa1156de7f8b1e0cab4afd4f241d392fcab9111", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 15282866737310247190, - "total_cost": 100.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:b39e34722ce28083cbad29620719a38093563e34cf6e69431ff395315d960f8e", - "logical_root_ids": [ - "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac" - ], - "physical_candidate_id": "asap-explain-v1:physical:cb63c4da47a097c41d7d40bbc9c6da3506003e36fd4d4d69464dab773fc261dc", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 3349874915222028658, - "total_cost": 125.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:04b3d3fc23a69590e3c24eeed8d01d045fadab84a403128ce95321d162e38a28", - "logical_root_ids": [ - "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema" - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:f69d2001f003ef7380f63757f25817ea464c3840a1b94d02bd82b6f352a17bb7", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:f165a46344b6e5fdd84672a4e68e4c89e42f8af679b6f92f7d406a2f33613048" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "query-time grouped Sum over complete per-series Rate readouts", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "SummaryBuild": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "groups": [ - 2 - ], - "time": 0, - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/grouped-rate.md b/docs/evaluation/issue754-human-review/archive/grouped-rate.md deleted file mode 100644 index 5a5c3a1be..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-rate.md +++ /dev/null @@ -1,411 +0,0 @@ -# grouped-rate - -`sum by (label_0) (rate(data[1m]))` - -[Raw selected plan](grouped-rate.json) · [DAG DOT](grouped-rate.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `4`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] - N2["2: FinalizeExactAccumulator"] - N3["3: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] - N4["4: FinalizeExactAccumulator"] - N0 --> N1 - N1 --> N2 - N2 --> N3 - N3 --> N4 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 3 | `[[2,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | -| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: label_0/utf8","1: sum/float64"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Installed native physical program - -This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. - -Roots: `[4]`. - -| Node | Dependencies | Operator / input contract | Output fields | -| --- | --- | --- | --- | -| 3 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | -| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | `["0: label_0/utf8","1: sum/float64"]` | - -```mermaid -flowchart LR - P3["3: Bound physical input"] - P4["4: Readout"] - P3 --> P4 -``` - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5"`. - -Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies); fixed-window precompute over complete per-series counter states - -Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` - -Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` - -#### Maintenance physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | -| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | - -Roots: `[3]`. - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` | -| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | - -Roots: `[4]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac"`. - -query-time grouped Sum over complete per-series Rate readouts - -Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | -| 4 | `[3]` | `{"Readout":{"parameters":{},"state":1,"statistic":"Sum"}}` | - -Roots: `[4]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b"`. - -Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies) - -Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Sum)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"exact_sum"},"rule":"exact_input"}]}` - -Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` - -#### Maintenance physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | -| 3 | `[2]` | `{"SummaryBuild":{"family":{"ExactAggregate":["Sum","Sum"]},"groups":[2],"time":0,"value":1}}` | - -Roots: `[3]`. - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"ExactAggregate":["Sum","Sum"]},"name":"sum","nullable":false}],"time_index":null}}}` | - -Roots: `[3]`. - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:722d82f36b4a40ae201580a132c020160361c2f6674ecb8707f26c66fef7910b"]` | `"unselected"` | `125.0` | `null` | -| 1 | `["asap-explain-v1:root:bfe1534e19d4c41e363e9af20952622ea2960305068dd68d4fa88c5cfaf804ba"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:ae2e8fab57dab7591871f33088a65256d32ad03a2f7ca53c9344c2ddbcbc8456"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:67e3c968a91024e30d7278dfb416fc18d9822357bae63d3b81e179b0dc8c4ec5"]` | `"selected"` | `100.0` | `null` | -| 4 | `["asap-explain-v1:root:29e9de57b8636d3b794b4a3432b9763bf038f01c8250ef3c87fd88f6eacd8cac"]` | `"unselected"` | `125.0` | `null` | -| 5 | `["asap-explain-v1:root:14a2e361942e5e4c66d4f4da83a5fe4c6962aafb4f38a6c9fa12e1a9e544229b"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema"` | - -Successfully compiled candidate plans: [grouped-rate-0](candidates/grouped-rate-0.json), [grouped-rate-1](candidates/grouped-rate-1.json), [grouped-rate-3](candidates/grouped-rate-3.json), [grouped-rate-4](candidates/grouped-rate-4.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1361847422443465319 - }, - "2": { - "placement": "maintenance_input" - }, - "3": { - "placement": "materialization", - "stored_output": 10670331111097222824 - } - }, - "query_sink": 4, - "query_plan_sink": 1, - "precompute_sinks": [ - 1, - 3 - ] -} -``` - -Stored output `1361847422443465319` → semantic definition `sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24`. - -Stored output `10670331111097222824` → semantic definition `sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - }, - { - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "population_key_encoding": "canonical_labels_v1", - "partitioning": "grouped", - "derived_input": { - "inputs": [ - 1361847422443465319 - ], - "program_sha256": "c694daee1fcf9eab3978dc99f6a533ce14d6702756961eb698048e0a9d1c0943" - }, - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "physical_dag": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Readout": { - "parameters": {}, - "state": 1, - "statistic": "Sum" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (rate(data[1m]))", - "root": 1, - "nodes": { - "0": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10670331111097222824, - "definition_id": "sds-v1:cec39af44f35c5eb916217878331b0aa67063c150457f529ee8fb2a0fd025f56" - }, - "full_window_slide_ms": 10000, - "materialization": 10670331111097222824, - "output_grouping": { - "mode": "reduce", - "keys": [] - }, - "window_ms": 60000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "1": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 3 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot deleted file mode 100644 index 691e8e32e..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_b8e4b3b78685009b [label="materialization\npolicy_fp:b8e4b3b78685009b\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(13322971198486020251) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (sum_over_time(data[1m]))"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:b8e4b3b78685009b\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b8e4b3b78685009b -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json deleted file mode 100644 index df3bc44a0..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.json +++ /dev/null @@ -1,2613 +0,0 @@ -{ - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 398383639928265061, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "13322971198486020251": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 398383639928265061, - "plan_version": 1, - "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" - }, - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "materialization": 13322971198486020251, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 13322971198486020251 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 398383639928265061, - "plan_version": 1, - "snapshot_sha256": "cef5c131512488478562c92a88095008c6f2552e785f08709d30adaa656855a9" - }, - "envelope": { - "plan_id": 398383639928265061, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 398383639928265061, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum by (label_0) (sum_over_time(data[1m]))": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "materialization": 13322971198486020251, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 13322971198486020251, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": null, - "provenance": "LogicalRewrite", - "rank": 1, - "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", - "replacement_kind": "rewrite", - "runtime_support_status": "supported", - "selected": false, - "status": "unselected", - "strategy": "SemanticEquivalentRewriteStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 2, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": false, - "status": "unselected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 398383639928265061, - "selected_manifest": { - "plan_id": 398383639928265061, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "sum by (label_0) (sum_over_time(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "sum" - }, - "physical_dag": null, - "query": "sum by (label_0) (sum_over_time(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 13322971198486020251, - "output_grouping": { - "keys": [ - "label_0" - ], - "mode": "reduce" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 13322971198486020251 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "sum by (label_0) (sum_over_time(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:13322971198486020251:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 13322971198486020251, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 13322971198486020251 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:13322971198486020251:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 13322971198486020251, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 13322971198486020251 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:13322971198486020251:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 13322971198486020251, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 13322971198486020251 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:13322971198486020251:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 13322971198486020251, - "schema_id": "asap-query-backend.v1:summary-state:v1:13322971198486020251", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 13322971198486020251 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:13322971198486020251:build": 1.0, - "state:backend:13322971198486020251:residency": 1.0, - "state:backend:13322971198486020251:retire": 1.0, - "state:backend:13322971198486020251:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:f6fd11e41c82b8183f3d94404506a7a44f482242434d23a3ff42afb6b6cd8f71", - "logical_root_ids": [ - "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7" - ], - "physical_candidate_id": "asap-explain-v1:physical:6c4cb0f2eb8ac0d54fb1f95e57901f190e4b40d89b96b1d08f1f510d85b1090a", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 398383639928265061, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:8e166101c5b7e3b81d048c3744c9d425a8f358dfa9eae019de62a00da9f88fc5", - "logical_root_ids": [ - "asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3" - ], - "physical_candidate_id": "asap-explain-v1:physical:4796571e5d404038547011ad55bb6f46da69b10f59a2a3eaf7ce1da37d3452ab", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 375190931036314940, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:8c50c016194b4ec8b868f06cb97c4b22dc9015cca04575a66497b73809702553", - "logical_root_ids": [ - "asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:aa11b64fc0bed7d4b186586f95a450ecce8786bc16025d4badcaa74702c6dbb7", - "logical_root_ids": [ - "asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f" - ], - "physical_candidate_id": "asap-explain-v1:physical:9c92585937a8293993dd8f50b79fa15c76b40ff754dbe417504d6e9a8a63a185", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 3225737927651639557, - "total_cost": 125.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8a8a5d6e8f359b2047b311c5f9bbbd0e31522c3c410c6fc48c20683b59acf79c", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "realize a schema-preserving composition of temporal and grouped accumulators", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:8f1e3b8704fb285fd48ebc7df176028942a2cffef93a7e4e3079a2e8424e25b6", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": null, - "provenance": "LogicalRewrite", - "rank": 1, - "rationale": "compose compatible per-entity and cross-entity accumulators using their algebraic intent while preserving the original output schema", - "replacement_kind": "rewrite", - "runtime_support_status": "supported", - "selected": false, - "status": "unselected", - "strategy": "SemanticEquivalentRewriteStrategy" - }, - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:20b94b403d0179d7bd1041c0ee58a0b0ea4e8b5a5a21c5d8674f5ff7221e4a2f", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 512.0 - }, - "decision_reason": "not_selected_by_planner", - "estimated_cost": 512.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 2, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": false, - "status": "unselected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:0cc71806062b53b77ce17d328630c655a26f8f95f4609b74f773b9946d8637e9" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:01d27d3315b4446641d745d859007403bd50df4e8ddc97864728a920cde3ee20", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:05f6d11e0155b61597fa09ac9afc45f893f9e607a862b433771868cb55087e22" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md b/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md deleted file mode 100644 index b19ff8315..000000000 --- a/docs/evaluation/issue754-human-review/archive/grouped-temporal-sum.md +++ /dev/null @@ -1,179 +0,0 @@ -# grouped-temporal-sum - -`sum by (label_0) (sum_over_time(data[1m]))` - -[Raw selected plan](grouped-temporal-sum.json) · [DAG DOT](grouped-temporal-sum.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `1`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] - N0 --> N1 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:f4b0c8f80adb3c494bb265f177a54d5c6f0d43ac0bda500d584fc811a5a55de7"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:a7236b76e2dcccdfc04343b61e8b57ccd143f130ff43dbdeaf66721a761977b3"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:c6bc08e60c82d462da8d1a62f177adfb730b27c354bd2c5308084786c59a2a4f"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | -| 3 | `["asap-explain-v1:root:4b3dacefdf88e4276febb5fff9d6012ce31da0391d6d89b53cd5f83b3e06f35f"]` | `"unselected"` | `125.0` | `null` | - -Successfully compiled candidate plans: [grouped-temporal-sum-0](candidates/grouped-temporal-sum-0.json), [grouped-temporal-sum-1](candidates/grouped-temporal-sum-1.json), [grouped-temporal-sum-3](candidates/grouped-temporal-sum-3.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 13322971198486020251 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `13322971198486020251` → semantic definition `sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (sum_over_time(data[1m]))", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 13322971198486020251, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "materialization": 13322971198486020251, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/quantile-ratio.dot b/docs/evaluation/issue754-human-review/archive/quantile-ratio.dot deleted file mode 100644 index 32daac6aa..000000000 --- a/docs/evaluation/issue754-human-review/archive/quantile-ratio.dot +++ /dev/null @@ -1,26 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_2688e3e2857315f7 [label="materialization\npolicy_fp:2688e3e2857315f7\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(2776719732314936823) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])"; - query_0_0 [label="Binary\nDiv", shape=doubleoctagon]; - query_0_1 [label="SummaryEstimate\nQuantile { q: 0.9 }"]; - query_0_2 [label="ReadMaterialization\npolicy_fp:2688e3e2857315f7\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_2688e3e2857315f7 -> query_0_2 [style=dashed, color=gray40, label="reads"]; - query_0_3 [label="SummaryEstimate\nQuantile { q: 0.5 }"]; - query_0_1 -> query_0_0; - query_0_3 -> query_0_0; - query_0_2 -> query_0_1; - query_0_2 -> query_0_3; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/quantile-ratio.json b/docs/evaluation/issue754-human-review/archive/quantile-ratio.json deleted file mode 100644 index a32289daf..000000000 --- a/docs/evaluation/issue754-human-review/archive/quantile-ratio.json +++ /dev/null @@ -1,3409 +0,0 @@ -{ - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 14871479243635342203, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.0049751243781094535 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "2776719732314936823": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.0049751243781094535,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.0049751243781094535,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 14871479243635342203, - "plan_version": 1, - "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" - }, - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "materialization": 2776719732314936823, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 2776719732314936823 - } - }, - "query_sink": 4, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 14871479243635342203, - "plan_version": 1, - "snapshot_sha256": "3d8fa2fbb6da37ac39d10ba6067e349e03926d30855d59b1e40f1e81fa6ee83e" - }, - "envelope": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.5 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "binary", - "operator": { - "checked_finite_division": false, - "checked_relative_division": false, - "kind": { - "Arithmetic": "Div" - }, - "vector_match": null - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 1, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 4, - "role": "Left", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Right", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "binary", - "inputs": [ - 1, - 3 - ], - "operator": "Div" - }, - "1": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" - }, - "materialization": 2776719732314936823, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "3": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.5 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 2776719732314936823, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "accuracy_evidence_scope": { - "data_snapshot_id": "issue-754-level1", - "hll": null, - "observed_at_unix_ms": 9500, - "query_id": "compat-query-0", - "source": "issue-754-finite-generator" - }, - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 131072.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 131072.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 4, - "rejected": [ - { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 5, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 6, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", - "query_index": 0 - } - ], - "schema_version": 1 - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 14871479243635342203, - "selected_manifest": { - "plan_id": 14871479243635342203, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 1, - 3 - ], - "op": "binary", - "operator": "Div" - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 2, - "op": "summary_estimate", - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:2": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 2776719732314936823, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "stored_output_id": 2776719732314936823 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:3": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 2, - "op": "summary_estimate", - "query": { - "kind": "quantile", - "q": 0.5 - } - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:2776719732314936823:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "group_by": [], - "materialization": 2776719732314936823, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "stored_output_id": 2776719732314936823 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:2776719732314936823:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "group_by": [], - "materialization": 2776719732314936823, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "stored_output_id": 2776719732314936823 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:2776719732314936823:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "group_by": [], - "materialization": 2776719732314936823, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "stored_output_id": 2776719732314936823 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:2776719732314936823:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "95e9ce0bc81d6b435731c7bb97168c14dfda24cbe6e7a8e3049b205f0bbfb681" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - } - }, - "group_by": [], - "materialization": 2776719732314936823, - "schema_id": "asap-query-backend.v1:summary-state:v1:2776719732314936823", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744", - "stored_output_id": 2776719732314936823 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "query:compat-query-0:2": 30.0, - "query:compat-query-0:3": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:2776719732314936823:build": 1.0, - "state:backend:2776719732314936823:residency": 1.0, - "state:backend:2776719732314936823:retire": 1.0, - "state:backend:2776719732314936823:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:c08f9149edabd1c321f061675315136e6579e3b47bbc64dd3d499981a0bfef5a", - "logical_root_ids": [ - "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2" - ], - "physical_candidate_id": "asap-explain-v1:physical:6b7a0e6306e75f8ce5cc3345ad7bc065f90be002025e618b555765fa79f334ba", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 14871479243635342203, - "total_cost": 155.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:0a10a2802dd2a1ba4e225c9ccd4a516371a85cad8986b21ce1b69169ed07acc7", - "logical_root_ids": [ - "asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0" - ], - "physical_candidate_id": "asap-explain-v1:physical:7bc14aea270b4e313ea33ac62e1c248aed293f35dd0642078ff51c08715acb48", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5752356276213301876, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:bf7668c327a794ae092a59a4193fa742387270c081279428090a8afcaf261eb1", - "logical_root_ids": [ - "asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d" - ], - "physical_candidate_id": "asap-explain-v1:physical:bf4e9fe54a95b98c580e951c3ba57cffc5ee30a6a59fc0b4cd54ef89aba8bbff", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 12971657221408630864, - "total_cost": 61000000000000.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "accuracy_evidence_scope": { - "data_snapshot_id": "issue-754-level1", - "hll": null, - "observed_at_unix_ms": 9500, - "query_id": "compat-query-0", - "source": "issue-754-finite-generator" - }, - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:c46201d9bd79a7d00b01e970fb3e982562466b206e8e281eb8b3dcf7cf4c5d2f", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 131072.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 131072.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.010000000000000002 - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "zero" - }, - { - "op": "zero" - } - ] - }, - "metric": "relative_value", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.0049751243781094535 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.0049751243781094535 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.0049751243781094535 - } - } - } - ] - }, - "input_index": 1, - "kind": "child_guarantee" - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 0, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "contract": "complete finite issue-754 generator population", - "input_index": 1, - "kind": "input_value_domain", - "lower": 10.0, - "max_samples": 14408, - "upper": 1600.0 - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_division" - }, - "rule": "relative_division" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "preserve exact PromQL arithmetic over independently realized summary operands", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:9abc799eecd110c8a9d1837280d30185735480fbef347cc9932a8292857df41e" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:1dc3f6dea07361c906eca5e5821a310a2226614d73b63f20f986e658f9c19852", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.5 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.5) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 4, - "rejected": [ - { - "description": "quantile(q=0.5) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:64cda9b91f996bac79336715422ae2fa8fdedabcaec99903ac9f77a13527130d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 5, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 6, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2", - "query_index": 0 - } - ], - "schema_version": 1 - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/quantile-ratio.md b/docs/evaluation/issue754-human-review/archive/quantile-ratio.md deleted file mode 100644 index b33cd155e..000000000 --- a/docs/evaluation/issue754-human-review/archive/quantile-ratio.md +++ /dev/null @@ -1,185 +0,0 @@ -# quantile-ratio - -`quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])` - -[Raw selected plan](quantile-ratio.json) · [DAG DOT](quantile-ratio.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `4`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.0049751243781094535}}},"PerSubpopulationInstance"]}"] - N2["2: summary_estimate"] - N3["3: summary_estimate"] - N4["4: binary"] - N0 --> N1 - N1 --> N2 - N1 --> N3 - N2 --> N4 - N3 --> N4 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.0049751243781094535}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.0049751243781094535}}},\"PerSubpopulationInstance\"]}"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: ts/timestamp","1: value/float64"]` | -| 3 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.5}}}` | `["0: ts/timestamp","1: value/float64"]` | -| 4 | `[[2,"Left"],[3,"Right"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"binary","operator":{"checked_finite_division":false,"checked_relative_division":false,"kind":{"Arithmetic":"Div"},"vector_match":null}}` | `["0: ts/timestamp","1: value/float64"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -- quantile(q=0.5) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:8fcad76c8faf47f60741d4888d55323486f842f5086dc3ecd39b493b6a9e12e2"]` | `"selected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:994e1b491dc33fab7e19c7b0b7eb8080bfd17bd1e7af0222eefd190b7eef0ac0"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:94bf296517fa559b33eefab876aa1b77c4bae34b93477b567541571979fa006d"]` | `"unselected"` | `61000000000000.0` | `null` | - -Successfully compiled candidate plans: [quantile-ratio-0](candidates/quantile-ratio-0.json), [quantile-ratio-1](candidates/quantile-ratio-1.json), [quantile-ratio-2](candidates/quantile-ratio-2.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 2776719732314936823 - } - }, - "query_sink": 4, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `2776719732314936823` → semantic definition `sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.0049751243781094535, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m]) / quantile_over_time(0.5, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "binary", - "inputs": [ - 1, - 3 - ], - "operator": "Div" - }, - "1": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "2": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 2776719732314936823, - "definition_id": "sds-v1:f20a6a984012173d96b103e5ca9cc19db0140c191f7f40b1f323f2d48c1a5744" - }, - "materialization": 2776719732314936823, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "3": { - "op": "summary_estimate", - "input": 2, - "query": { - "kind": "quantile", - "q": 0.5 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/render.py b/docs/evaluation/issue754-human-review/archive/render.py deleted file mode 100644 index ccb0e6767..000000000 --- a/docs/evaluation/issue754-human-review/archive/render.py +++ /dev/null @@ -1,242 +0,0 @@ -"""Render checked-in Level 1 exports without changing plans or assertions.""" -import json -from pathlib import Path - -BASE = Path(__file__).parent - -def compact(value): - return json.dumps(value, separators=(',', ':'), ensure_ascii=False) - -def cell(value): - return '`' + compact(value).replace('|', '\\|') + '`' - -def operation(payload): - if payload['kind'] == 'fallback': - expr = payload['expression'] - time = expr.get('TimeRange', {}) - scan = time.get('child', expr).get('Scan') - if scan is not None: - return {'source': scan['source'], 'predicates': scan['predicates'], - 'range': time.get('range')} - return payload - -def label(node): - payload = node['payload'] - kind = payload['kind'] - if kind == 'fallback': - return 'Source / time range' - if kind == 'summary_agg': - return 'SummaryAgg ' + compact(payload['family']) - if kind == 'value': - op = payload['operation'] - return next(iter(op)) if isinstance(op, dict) else op - return kind - -def dtype(value): - if isinstance(value, dict) and 'Plain' in value: - return value['Plain'] - return compact(value) - -def block(value): - return '```json\n' + json.dumps(value, indent=2) + '\n```\n' - -rows = [] -planner_revisions = set() -for path in sorted(BASE.glob('*.json')): - plan = json.loads(path.read_text()) - planner_revisions.add(plan['envelope']['planner_revision']) - entry = next(iter(plan['query_plan']['entries'].values())) - lines = ['# ' + path.stem, '', '`' + entry['canonical_query'] + '`', '', - f'[Raw selected plan]({path.name}) · [DAG DOT]({path.stem}.dot)', '', - '## Selected computation: logical provenance', '', - 'IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately.', ''] - for dag in plan['query_plan']['selected_dags'].values(): - lines += [f"Root: `{dag['root']}`.", '', '| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) |', '| --- | --- | --- | --- | --- |'] - diagram = ['```mermaid', 'flowchart LR'] - for node in dag['nodes']: - text = f"{node['id']}: {label(node)}" - text = text.replace('&', '&').replace('"', '"').replace('<', '<').replace('>', '>') - diagram.append(f' N{node["id"]}["{text}"]') - for edge in dag['edges']: - diagram.append(f" N{edge['producer']} --> N{edge['consumer']}") - diagram += ['```', ''] - lines[-2:-2] = diagram - for node in dag['nodes']: - deps = [[e['producer'], e['role']] for e in dag['edges'] if e['consumer'] == node['id']] - fields = [f"{i}: {f['name']}/{dtype(f['dtype'])}" for i, f in enumerate(node['output_schema']['fields'])] - lines.append(f"| {node['id']} | {cell(deps)} | {cell(node['output_state'])} | {cell(operation(node['payload']))} | {cell(fields)} |") - lines += ['', '### Sort expressions', ''] - found = False - for node in dag['nodes']: - sort_operation = node['payload'].get('operation', {}) - if not isinstance(sort_operation, dict) or 'Sort' not in sort_operation: - continue - found = True - lines += [f"Node `{node['id']}`: {cell(sort_operation['Sort'])}", ''] - for edge in dag['edges']: - if edge['consumer'] == node['id']: - producer = next(n for n in dag['nodes'] if n['id'] == edge['producer']) - lines += [f"Its input is node `{producer['id']}`: {cell(producer['payload'])}. Column indices refer to that producer's output schema above.", ''] - if not found: - lines += ['No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table.', ''] - physical = entry.get('physical_dag') - if physical: - lines += ['## Installed native physical program', '', - 'This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs.', '', - f"Roots: {cell(physical['roots'])}.", '', - '| Node | Dependencies | Operator / input contract | Output fields |', - '| --- | --- | --- | --- |'] - diagram = ['```mermaid', 'flowchart LR'] - for node_id, node in physical['nodes'].items(): - if 'Input' in node: - dependencies = [] - payload = {'Input': node['Input']['properties']} - fields = node['Input']['schema']['fields'] - name = 'Bound physical input' - else: - operator = node['Operator'] - dependencies = operator['inputs'] - payload = operator['operator']['kind'] - fields = operator['operator']['output']['fields'] - name = next(iter(payload)) if isinstance(payload, dict) else payload - names = [f"{i}: {field['name']}/{dtype(field['dtype'])}" for i, field in enumerate(fields)] - lines.append(f"| {node_id} | {cell(dependencies)} | {cell(payload)} | {cell(names)} |") - diagram.append(f' P{node_id}["{node_id}: {name}"]') - for parent in dependencies: - diagram.append(f' P{parent} --> P{node_id}') - diagram += ['```', ''] - lines += ['', *diagram] - report = plan.get('cost_comparison') or {} - lines += ['## Candidate admission and costing', '', - 'Costs below come from the controlled Level 1 fixture, not production measurements.', ''] - traces = report.get('logical_selection', []) - for trace in traces: - if trace.get('stage') == 'planner.physical_candidate': - lines += ['### Planner physical candidate', '', - f"Logical root: {cell(trace.get('logical_root_id'))}.", '', - trace.get('rationale', '').replace('alternatives', 'candidates'), '', - 'Guarantee: ' + cell(trace.get('guarantee')), ''] - programs = [('Query physical DAG', trace.get('physical_dag'))] - split = trace.get('physical_candidate') - if split: - lines += ['Materialized boundaries: ' + cell(split['materialized_outputs']), ''] - programs = [('Maintenance physical DAG', split.get('precompute')), ('Query physical DAG', split['query'])] - for title, program in programs: - if not program: - continue - lines += [f'#### {title}', '', '| Node | Dependencies | Native operator / input |', '| --- | --- | --- |'] - for node_id, node in program['nodes'].items(): - op = node.get('Operator') - lines.append(f"| {node_id} | {cell(op['inputs'] if op else [])} | {cell(op['operator']['kind'] if op else {'Input': node['Input']})} |") - lines += ['', f"Roots: {cell(program['roots'])}.", ''] - if trace.get('reason'): - lines += [trace['reason'], ''] - if trace.get('computation_search_scope'): - lines += [block(trace['computation_search_scope'])] - for group in trace.get('groups', []): - for rejected in group.get('rejected', []): - description = rejected.get('description', '').split(' — ', 1)[0] - lines += [f"- {description}: {rejected.get('reason', '')}"] - lines += ['', '| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason |', - '| --- | --- | --- | --- | --- |'] - for index, candidate in enumerate(report.get('candidates', [])): - lines.append(f"| {index} | {cell(candidate.get('logical_root_ids'))} | {cell(candidate.get('status'))} | {cell(candidate.get('total_cost'))} | {cell(candidate.get('unavailable_reason'))} |") - exported = sorted((BASE / 'candidates').glob(path.stem + '-*.json')) - if exported: - lines += ['', 'Successfully compiled candidate plans: ' + ', '.join( - f'[{candidate.stem}](candidates/{candidate.name})' for candidate in exported), ''] - lines += ['## Persisted boundaries', ''] - if not plan['precompute_plan'].get('executable_dags', {}): - lines += ['No precompute executable DAG is installed for this selected candidate.', ''] - for qid, installed in plan['precompute_plan'].get('executable_dags', {}).items(): - lines += [f'Binding for `{qid}`:', '', block(installed['binding'])] - for output_id, output in plan['summary_catalog']['outputs'].items(): - lines += [f"Stored output `{output_id}` → semantic definition `{output['definition_id']}`.", ''] - if not plan['summary_catalog']['outputs']: - lines += ['No summary stored-output binding. Maintained current-series input, when present, is visible in the DAG and QueryPlan.', ''] - lines += ['### Maintenance configuration', '', block([{k:v for k,v in m.items() if k not in ('semantic_fragment','original_yaml')} for m in plan['precompute_plan']['materializations']]), - '## Bound query execution', '', - 'This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable.', '', block(entry)] - (BASE / (path.stem + '.md')).write_text('\n'.join(lines)) - rows.append(f"| [{path.stem}]({path.stem}.md) | `{entry['canonical_query']}` |") - -intro = """# Issue #754 plans for human review - -These are actual plans exported by the Level 1 fixture. No human approval is -recorded. Selected plans and successfully compiled candidate plans are retained -as JSON/DOT; each page shows accuracy rejections and deployment cost decisions. - -Backend source revision is in [source-commit.txt](source-commit.txt). Planner: -. - -## Current implementation boundary - -These exports describe the current Backend implementation. They do **not** prove -completion of the Planner physical-candidate installation/execution handoff. -Logical provenance and installed native physical programs are shown separately. -Spatial TopK binds a complete current-series snapshot and runs a persisted native -Sort → Limit program. Planner also exposes a CountSketch-with-heap physical -candidate over the same snapshot. This fixture has no enforced distinct-item -bound or score-separation proof, so its heap candidate is explicitly rejected -before pricing. The inherited `native_snapshot_topk` tests cover certified heap -admission, cost-dependent selection and analytical workspace costing; a separate -real-process test covers Remote Write and heap HTTP results. Signed samples do -not authorize CMS. Rate TopK also exposes native exact ranking, CMS and -CountSketch heaps above its bound per-series Rate readout. This fixture lacks -heap proof and records the rejection. Separate controlled tests select each -program through Backend costs; process E2E tests verify both heap families over -durable counter SDS, including reset, window changes and process restart. -Planner also exposes fixed-window candidates that finalize Rate and build the -heap during precompute. Their typed stored boundary and both physical DAGs are -listed below. Certified process E2E tests cover CMS and CountSketch heap SDS, -multiple groups, resets, missing windows and restart. This placement requires -the finite complete-input barrier; it does not claim continuous completeness. -Grouped Rate exposes both query-time and precomputed Sum as native physical -candidates. In both, each series is finalized with PromQL Rate semantics before -Sum groups the values. The precomputed candidate retains independent complete -60-second windows at this fixture's 10-second query cadence; it does not merge finalized -rates across windows. Process E2E tests compare both placements, including a -five-second cadence with a 65-second evaluation, missing grouping labels and durable restart. -Other PromQL paths retain the documented Backend adapter representation. - -Candidate discovery preserves each root's admitted computations. Deployment -currently evaluates single-root substitutions in a preferred workload context; -it does not exhaustively enumerate joint workload combinations. Fixture costs -are not evidence of production-optimal placement. - -## Review order - -1. Check source, value transformations, grouping, windows and readouts. -2. Compare candidate rejection reasons with the query's accuracy requirement. -3. Check persisted boundaries, definition IDs and requested pane coverage. -4. For topk-rate, check the actual rate-value sort expression and partition keys. -5. Compare costs and rejected candidates before reviewing the selected adapter. - -The strict spatial-quantile fixture rejects the default KLL guarantee. A separate -assertion with relaxed accuracy verifies that both KLL and DDSketch reach costing -when admitted. The grouped-temporal-sum test checks cost-dependent placement; -it does not establish this for every query. Sort-key mutation tests reject ranking -by timestamp or label instead of the finalized rate value. - -| Query | PromQL | -| --- | --- | -""" -intro = intro.replace('', ', '.join(f'`{revision}`' for revision in sorted(planner_revisions))) -ending = ''' - -## Reproduce - -From the #728 worktree: - -```sh -ASAP_LEVEL1_ARTIFACT_DIR=/tmp/issue754-plans \\ - cargo test -p control_plane --test issue754_level1 --locked -- --test-threads=1 -``` - -The test also exports enumerated candidates into `candidates/`; the ten selected -plans are at the top level. Copy those `.json` and `.dot` files here and run -`python3 docs/evaluation/issue754-human-review/render.py` to regenerate the pages. -Actual execution and recovery evidence is maintained in the downstream -[bound SDS validation report](https://github.com/ProjectASAP/ASAPQuery-backend/blob/test/issue754-level3/docs/evaluation/bound-sds-2026-09-26/README.md). -''' -(BASE / 'README.md').write_text(intro + '\n'.join(rows) + ending) diff --git a/docs/evaluation/issue754-human-review/archive/spatial-quantile.dot b/docs/evaluation/issue754-human-review/archive/spatial-quantile.dot deleted file mode 100644 index 49af74e84..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-quantile.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_15fed25926ac7261 [label="materialization\npolicy_fp:15fed25926ac7261\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(1584935399223751265) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile by (label_0) (0.9, data)"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:15fed25926ac7261\nwindow=5000ms\nlookback=Some(5000)"]; - materialization_15fed25926ac7261 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/spatial-quantile.json b/docs/evaluation/issue754-human-review/archive/spatial-quantile.json deleted file mode 100644 index d780989ec..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-quantile.json +++ /dev/null @@ -1,2537 +0,0 @@ -{ - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 3294188734724225991, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.01 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "1584935399223751265": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 3294188734724225991, - "plan_version": 1, - "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" - }, - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "materialization": 1584935399223751265, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 5000, - "slide_ms": 10000, - "pane_origin_ms": 5000 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe", - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1584935399223751265 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 3294188734724225991, - "plan_version": 1, - "snapshot_sha256": "17da4fafbebadafa567b8a76f1f5418d758d23a61b6cf2f7e5f87a57f2d45fc9" - }, - "envelope": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "quantile by (label_0) (0.9, data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" - }, - "full_window_slide_ms": 10000, - "materialization": 1584935399223751265, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 1584935399223751265, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 3294188734724225991, - "selected_manifest": { - "plan_id": 3294188734724225991, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "quantile by (label_0) (0.9, data)", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "input": 1, - "op": "summary_estimate", - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "physical_dag": null, - "query": "quantile by (label_0) (0.9, data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "binding": { - "full_window_slide_ms": 10000, - "materialization": 1584935399223751265, - "output_grouping": { - "keys": [ - "label_0" - ], - "mode": "reduce" - }, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000, - "stored_output_reference": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "stored_output_id": 1584935399223751265 - }, - "window_ms": 5000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "quantile by (label_0) (0.9, data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1584935399223751265:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - } - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - } - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [ - "label_0" - ], - "materialization": 1584935399223751265, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "stored_output_id": 1584935399223751265 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1584935399223751265:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - } - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - } - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [ - "label_0" - ], - "materialization": 1584935399223751265, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "stored_output_id": 1584935399223751265 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1584935399223751265:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - } - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - } - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [ - "label_0" - ], - "materialization": 1584935399223751265, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "stored_output_id": 1584935399223751265 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:1584935399223751265:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "quantile_0_9", - "nullable": false - } - ], - "time_index": null - } - }, - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - } - }, - "output": "07d0345a9617efbcd11ff3ad3662856c45c0fad6b0ec735adc9cbe3cb62d2efe" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [ - "label_0" - ], - "materialization": 1584935399223751265, - "schema_id": "asap-query-backend.v1:summary-state:v1:1584935399223751265", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502", - "stored_output_id": 1584935399223751265 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:1584935399223751265:build": 1.0, - "state:backend:1584935399223751265:residency": 1.0, - "state:backend:1584935399223751265:retire": 1.0, - "state:backend:1584935399223751265:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:4354fd26d4956a318fa5456240c0da68a3caa45e4446b8e15f181d0c53783468", - "logical_root_ids": [ - "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d" - ], - "physical_candidate_id": "asap-explain-v1:physical:71de817eaf6fa746062e3795a419ee775e9d31a0d510bc74bb22c81d7c5ec288", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 3294188734724225991, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:a0788f2335f317159241018e38b349e300d94233d6c2c372e1115a7669eb8098", - "logical_root_ids": [ - "asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8" - ], - "physical_candidate_id": "asap-explain-v1:physical:ba4202b91ce58b3c19e40be364dc5f551ac35862068d5e52ddd6177d0dea74e4", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 14256379658571227787, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:64858a2c738280483704598eea5dc6c1d6f302f7b7089c09991f308fbf37982d", - "logical_root_ids": [ - "asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c" - ], - "physical_candidate_id": "asap-explain-v1:physical:e8ab81814c4b32ad300e454b3a80c4946026cf18020174eb6660a3bd98942d23", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 18366075381595067177, - "total_cost": 130.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:79e9835d8db3988d68f3423675cd87e9773a6609f8147d9878c7debd76e10730", - "logical_root_ids": [ - "asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae" - ], - "physical_candidate_id": "asap-explain-v1:physical:6af3b1dafd992795fc98fc2164bc74cc8c112b69e611605d0a2e16f2f866821a", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 7667691247138405742, - "total_cost": 61000000000000.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:be93cecf893f110b98f797b1f6a213aff7c2aa54fc166d8720cfbc9595eca273", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:0082e789c39f7f80862691a6ca03918f0076fcbd39b44a4b9593929ef9fffef4" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/spatial-quantile.md b/docs/evaluation/issue754-human-review/archive/spatial-quantile.md deleted file mode 100644 index 4192f7148..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-quantile.md +++ /dev/null @@ -1,187 +0,0 @@ -# spatial-quantile - -`quantile by (label_0) (0.9, data)` - -[Raw selected plan](spatial-quantile.json) · [DAG DOT](spatial-quantile.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `2`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]}"] - N2["2: summary_estimate"] - N0 --> N1 - N1 --> N2 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: quantile_0_9/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]}"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: label_0/utf8","1: quantile_0_9/float64"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:956bb0626d4be173de6016515aa1497e13a39ef4e4a5ff1ba2cd6201c0e9f28d"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:a97ddc3a7d76d4eb05e33824403dd6ed90f5b0a6ba6be926fdc5c9b4dce3e0f8"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:68aad1f79508c0acbad44574e2b397f8099efa2f4862e77c5cb8b8bbf11a992c"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:e1333c51e1a6826580e3b5c584af46052654e050ffe587cf82eab764dd04c4ae"]` | `"unselected"` | `61000000000000.0` | `null` | - -Successfully compiled candidate plans: [spatial-quantile-0](candidates/spatial-quantile-0.json), [spatial-quantile-1](candidates/spatial-quantile-1.json), [spatial-quantile-2](candidates/spatial-quantile-2.json), [spatial-quantile-3](candidates/spatial-quantile-3.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 1584935399223751265 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `1584935399223751265` → semantic definition `sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile by (label_0) (0.9, data)", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 1584935399223751265, - "definition_id": "sds-v1:1fd0b827ec010a13a2709eacb72138e3723d1823a6eaf9aa7547679020b3b502" - }, - "full_window_slide_ms": 10000, - "materialization": 1584935399223751265, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/spatial-sum.dot b/docs/evaluation/issue754-human-review/archive/spatial-sum.dot deleted file mode 100644 index 3d279f0b9..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-sum.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_903fe84f27dd8a04 [label="materialization\npolicy_fp:903fe84f27dd8a04\nmetric=data\nwindow_type=sliding\nwindow=5s / 10s\nlayout=FullWindow", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(10394281891663284740) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum by (label_0) (data)"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:903fe84f27dd8a04\nwindow=5000ms\nlookback=Some(5000)"]; - materialization_903fe84f27dd8a04 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/spatial-sum.json b/docs/evaluation/issue754-human-review/archive/spatial-sum.json deleted file mode 100644 index 19b0e94ae..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-sum.json +++ /dev/null @@ -1,2232 +0,0 @@ -{ - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 3688256239081920855, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "grouped", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "10394281891663284740": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:Grouped|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 3688256239081920855, - "plan_version": 1, - "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" - }, - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "materialization": 10394281891663284740, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 5000, - "slide_ms": 10000, - "pane_origin_ms": 5000 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65", - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "inputs": [ - { - "role": "Input", - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 10394281891663284740 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 3688256239081920855, - "plan_version": 1, - "snapshot_sha256": "0b3a5b3b0b1a16b1c4159c9faf7339d5d2c04e1d6483dc1b2f227742c28e5222" - }, - "envelope": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum by (label_0) (data)": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "full_window_slide_ms": 10000, - "materialization": 10394281891663284740, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 10394281891663284740, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-5s-slide-10s-full-window", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 3688256239081920855, - "selected_manifest": { - "plan_id": 3688256239081920855, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "sum by (label_0) (data)", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "sum" - }, - "physical_dag": null, - "query": "sum by (label_0) (data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "binding": { - "full_window_slide_ms": 10000, - "materialization": 10394281891663284740, - "output_grouping": { - "keys": [ - "label_0" - ], - "mode": "reduce" - }, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 10394281891663284740 - }, - "window_ms": 5000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "sum by (label_0) (data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10394281891663284740:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 10394281891663284740, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 10394281891663284740 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10394281891663284740:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 10394281891663284740, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 10394281891663284740 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10394281891663284740:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 10394281891663284740, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 10394281891663284740 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:10394281891663284740:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 1, - "original_yaml": "", - "pane_origin_ms": 5000, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "grouped", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "record_range": true - }, - "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65": { - "inputs": [ - { - "node": "603b601c88e633b90bbee06d5c2042f5d6e05258ec3fb73fc9db57c2c596c748", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": { - "Reduce": [ - 2 - ] - } - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "sum", - "nullable": false - } - ], - "time_index": null - } - } - }, - "output": "c2620675a77ee87d83acef92d346cdba9937dd15ad2e7d7283acf45f2c81ed65" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "full_window" - }, - "window_size": 5, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [ - "label_0" - ], - "materialization": 10394281891663284740, - "schema_id": "asap-query-backend.v1:summary-state:v1:10394281891663284740", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119", - "stored_output_id": 10394281891663284740 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 5000, - "size_ms": 5000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-5s-slide-10s-full-window" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:10394281891663284740:build": 1.0, - "state:backend:10394281891663284740:residency": 1.0, - "state:backend:10394281891663284740:retire": 1.0, - "state:backend:10394281891663284740:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:9f815fefaf3981f4626c4f0bbecd6a2ff80ceb9c07c3f31a4fe791a78aeac63f", - "logical_root_ids": [ - "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65" - ], - "physical_candidate_id": "asap-explain-v1:physical:bc367137ad7802cdcb2d9aa085481d742813ccf81cd4af1b9fdf262f2111c1bd", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 3688256239081920855, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:2e6c1b7b89ff83cf7818176a987df5c3473ae40083b34ae02c576c026048b258", - "logical_root_ids": [ - "asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52" - ], - "physical_candidate_id": "asap-explain-v1:physical:9738b844b88e5904d4aeb45407b68ca73b3cc8bae476c4cbe949fa1c71a8b214", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 17875413431231421451, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:30684f35a6589915d271235aacbb45ab7d63de02b0a84a6d9cb4a7fb74960d3b", - "logical_root_ids": [ - "asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa" - ], - "physical_candidate_id": "asap-explain-v1:physical:30b0e7dc2668e9607661dc69059e5240fade30d21c94ae7f7cce62a7cf3e73a9", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 8064649510529993241, - "total_cost": 130.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:2117947b4b3a330ebea6931c1a77e5a85cfb928d4d26c61496ae4d76f29ecf82", - "logical_root_ids": [ - "asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814" - ], - "physical_candidate_id": "asap-explain-v1:physical:ffba38d6fe0ca3626b208d737d922e9a54dca183e0960d27e1281a8a9c025956", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 10907830462850005469, - "total_cost": 122.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:84b00a1629ef2d7aaef1a9e8ac4ea38d45d5c7803d6d2ac961bd073fd8e09af9", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:5f10615fef21ec350af568775c359dc19fde2b5d094245e80baeecbdd338c150" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/spatial-sum.md b/docs/evaluation/issue754-human-review/archive/spatial-sum.md deleted file mode 100644 index 0db024a69..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-sum.md +++ /dev/null @@ -1,169 +0,0 @@ -# spatial-sum - -`sum by (label_0) (data)` - -[Raw selected plan](spatial-sum.json) · [DAG DOT](spatial-sum.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `1`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] - N0 --> N1 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":{"Reduce":[2]}}` | `["0: label_0/utf8","1: sum/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ba28557fc29bdbf6412d207f564a9d893a67a129fb196cf845fe23686eeade65"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:72bb45486be97e9f3422b9fc3a25b90191de7d80b2e36d9d42d2a5bce19d7a52"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:8b0869886201af9ee603b39b81c53bb109a173c955ffe0d428ff15473b5fabfa"]` | `"unselected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:e3461f9b214753f483b6d3cd483439fbbdf4b8e90e6c18483a12861dc0d9a814"]` | `"unselected"` | `122.0` | `null` | - -Successfully compiled candidate plans: [spatial-sum-0](candidates/spatial-sum-0.json), [spatial-sum-1](candidates/spatial-sum-1.json), [spatial-sum-2](candidates/spatial-sum-2.json), [spatial-sum-3](candidates/spatial-sum-3.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 10394281891663284740 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `10394281891663284740` → semantic definition `sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "grouped", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 5, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "full_window" - }, - "pane_origin_ms": 5000, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 1, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum by (label_0) (data)", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 10394281891663284740, - "definition_id": "sds-v1:25186a3b39fd0bf46b5def7edafbbeeece9dee5451578e92992346e544008119" - }, - "full_window_slide_ms": 10000, - "materialization": 10394281891663284740, - "output_grouping": { - "mode": "reduce", - "keys": [ - "label_0" - ] - }, - "window_ms": 5000, - "pane_origin_ms": 5000, - "readout_lookback_ms": 5000 - } - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/spatial-topk.dot b/docs/evaluation/issue754-human-review/archive/spatial-topk.dot deleted file mode 100644 index c24a11708..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-topk.dot +++ /dev/null @@ -1,19 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, data)"; - query_0_0 [label="Logical\nCurrentSeries", shape=doubleoctagon]; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_1 [label="#1\nBound physical input"]; - native_query_0_18446744073709551615 [label="#18446744073709551615\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_0_1 -> native_query_0_18446744073709551615; - native_query_0_2 [label="#2\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_0_18446744073709551615 -> native_query_0_2; - } - } -} diff --git a/docs/evaluation/issue754-human-review/archive/spatial-topk.json b/docs/evaluation/issue754-human-review/archive/spatial-topk.json deleted file mode 100644 index 0f0008779..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-topk.json +++ /dev/null @@ -1,2781 +0,0 @@ -{ - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 2697027346875258477, - "plan_version": 1, - "summary_descriptors": {}, - "data_descriptors": {}, - "outputs": {}, - "definitions": {} - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 2697027346875258477, - "plan_version": 1, - "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" - }, - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [], - "producers": [], - "materializations": [] - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 2697027346875258477, - "plan_version": 1, - "snapshot_sha256": "c39264742060bb3770b355054f4ae836778892df8f7839eb4acb8e7c2f6c8132" - }, - "envelope": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 5 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "source samples" - } - ] - } - }, - { - "id": 1, - "payload": { - "kind": "value", - "operation": { - "MaintainPopulation": { - "population": { - "input": { - "CurrentSeries": { - "grouping": [ - "label_0" - ], - "lookback_ms": 5000, - "matchers": [], - "metric": "data", - "without": false - } - }, - "max_k": 3, - "quantiles": false - } - } - } - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact members under the declared population semantics" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": { - "ReadPopulation": { - "readout": { - "TopK": { - "k": 3 - } - } - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "exact current-population readout" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "topk by (label_0) (3, data)": { - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "18446744073709551615": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "2": { - "Operator": { - "inputs": [ - 18446744073709551615 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 2 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "metric": "data", - "matchers": [], - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "lookback_ms": 5000, - "max_input_lag_ms": 5000, - "history_retention_ms": 0, - "max_series": 100000, - "max_bytes": 1073741824, - "max_k": 3, - "quantiles": false - }, - "readout": { - "kind": "snapshot" - } - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 6 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 2697027346875258477, - "selected_manifest": { - "plan_id": 2697027346875258477, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "topk by (label_0) (3, data)", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": { - "implementation": { - "phase": "build", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": { - "implementation": { - "phase": "residency", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": { - "implementation": { - "phase": "retire", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": { - "implementation": { - "phase": "update", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 5000 - }, - "node": { - "inputs": [], - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "history_retention_ms": 0, - "lookback_ms": 5000, - "matchers": [], - "max_bytes": 1073741824, - "max_input_lag_ms": 5000, - "max_k": 3, - "max_series": 100000, - "metric": "data", - "quantiles": false - }, - "readout": { - "kind": "snapshot" - } - } - }, - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "18446744073709551615": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "2": { - "Operator": { - "inputs": [ - 18446744073709551615 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 2 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, data)" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:build": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:residency": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:retire": 2.0, - "current-series:{\"metric\":\"data\",\"matchers\":[],\"grouping\":{\"labels\":[\"label_0\"],\"without\":false},\"lookback_ms\":5000,\"max_input_lag_ms\":5000,\"history_retention_ms\":0,\"max_series\":100000,\"max_bytes\":1073741824,\"max_k\":3,\"quantiles\":false}:update": 2.0, - "query:compat-query-0:0": 60.0, - "result:compat-query-0": 60.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 2.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:58f399bf628c33f5ba9a72648f9ed2f3f2e75b1181b9b86d9e7f08849b29e18a", - "logical_root_ids": [ - "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" - }, - { - "candidate_id": "asap-explain-v1:candidate:3c32fbddf25395e4edf1a48a31b8a868fedf3e054c229e5fdd72a445ecd42d44", - "logical_root_ids": [ - "asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1" - ], - "physical_candidate_id": "asap-explain-v1:physical:e59f1ec5404fa5bd4069c09b838f0ff74fcc6fde2b974a23ea1f07329d95a506", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5538412219857372274, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:30835e38582d2361630291255e8e16465befbd5a7f72bfeed329b9cab4370fc7", - "logical_root_ids": [ - "asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a" - ], - "physical_candidate_id": "asap-explain-v1:physical:8391c4c488d5971b67801884e3af9bb4fb08c46da45d61904ae12b086847ad02", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 2697027346875258477, - "total_cost": 130.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:f970bcdb71bd853b66e897020a61d0e4e822d3a61e818549c903c3974ddc7f78", - "logical_root_ids": [ - "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:9211c4838bed16de9405b31c9c244aad341197c278580d3302f7e71270f2999c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:497649eb3d93b78d27114260f1635d45577205a3bca86fea9f88baa88dfc36d7" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6e41e994d9bb1bc22c76e9ca32c8b831e7cf271535dceb46bd102fcb564bdc3e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29", - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 6 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/spatial-topk.md b/docs/evaluation/issue754-human-review/archive/spatial-topk.md deleted file mode 100644 index d8065144b..000000000 --- a/docs/evaluation/issue754-human-review/archive/spatial-topk.md +++ /dev/null @@ -1,380 +0,0 @@ -# spatial-topk - -`topk by (label_0) (3, data)` - -[Raw selected plan](spatial-topk.json) · [DAG DOT](spatial-topk.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `2`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: MaintainPopulation"] - N2["2: ReadPopulation"] - N0 --> N1 - N1 --> N2 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":5}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"kind":"value","operation":{"MaintainPopulation":{"population":{"input":{"CurrentSeries":{"grouping":["label_0"],"lookback_ms":5000,"matchers":[],"metric":"data","without":false}},"max_k":3,"quantiles":false}}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"ReadPopulation":{"readout":{"TopK":{"k":3}}}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Installed native physical program - -This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. - -Roots: `[2]`. - -| Node | Dependencies | Operator / input contract | Output fields | -| --- | --- | --- | --- | -| 1 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 18446744073709551615 | `[1]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 2 | `[18446744073709551615]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | - -```mermaid -flowchart LR - P1["1: Bound physical input"] - P18446744073709551615["18446744073709551615: Sort"] - P1 --> P18446744073709551615 - P2["2: Limit"] - P18446744073709551615 --> P2 -``` - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29"`. - -top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) - -Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 2 | `[1]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | -| 3 | `[2]` | `{"KeyedReadout":{"k":100,"state":1}}` | -| 4 | `[3]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | -| 5 | `[4]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 6 | `[5]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[6]`. - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ca91f1619565c87414e32bc57a5fb4e4f9e246ddf226a9153eb0a0f293725e92"]` | `"bind_failed"` | `null` | `"failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree"` | -| 1 | `["asap-explain-v1:root:a3f319101755c7c188def0e38d71d955d58bebcbf7b8227a7a0cb5f8e922b5a1"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:d18c7dca81eae12ef65bad09268a4150e809fcc227eb5743dea862c01257298a"]` | `"selected"` | `130.0` | `null` | -| 3 | `["asap-explain-v1:root:4eb9fdb841402310608f87e857fb8605677de3b84f7526b07543ad93fe9bad29"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | - -Successfully compiled candidate plans: [spatial-topk-1](candidates/spatial-topk-1.json), [spatial-topk-2](candidates/spatial-topk-2.json) - -## Persisted boundaries - -No precompute executable DAG is installed for this selected candidate. - -No summary stored-output binding. Maintained current-series input, when present, is visible in the DAG and QueryPlan. - -### Maintenance configuration - -```json -[] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "physical_dag": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "18446744073709551615": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "2": { - "Operator": { - "inputs": [ - 18446744073709551615 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 2 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, data)", - "root": 0, - "nodes": { - "0": { - "op": "logical", - "operator": { - "kind": "current_series", - "population": { - "metric": "data", - "matchers": [], - "grouping": { - "labels": [ - "label_0" - ], - "without": false - }, - "lookback_ms": 5000, - "max_input_lag_ms": 5000, - "history_retention_ms": 0, - "max_series": 100000, - "max_bytes": 1073741824, - "max_k": 3, - "quantiles": false - }, - "readout": { - "kind": "snapshot" - } - }, - "inputs": [] - } - }, - "instant": { - "lookback_ms": 5000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/temporal-quantile.dot b/docs/evaluation/issue754-human-review/archive/temporal-quantile.dot deleted file mode 100644 index cf6b48735..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-quantile.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_3412bab1910610ee [label="materialization\npolicy_fp:3412bab1910610ee\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(3752266711358116078) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: quantile_over_time(0.9, data[1m])"; - query_0_0 [label="SummaryEstimate\nQuantile { q: 0.9 }", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:3412bab1910610ee\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_3412bab1910610ee -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/temporal-quantile.json b/docs/evaluation/issue754-human-review/archive/temporal-quantile.json deleted file mode 100644 index b319febc7..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-quantile.json +++ /dev/null @@ -1,2350 +0,0 @@ -{ - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 11818444224054941250, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "Sketch": [ - { - "category": "Quantile", - "algorithm": "DDSketch", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "dd_sketch_relative_error", - "alpha": 0.01 - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "3752266711358116078": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"alpha\":0.01,\"kind\":\"dd_sketch_relative_error\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"DDSketch\",\"family\":{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]},\"kind\":\"configured\",\"parameters\":{\"alpha\":0.01,\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11818444224054941250, - "plan_version": 1, - "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" - }, - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "materialization": 3752266711358116078, - "family": { - "family": "sketch", - "algorithm": "DDSketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 3752266711358116078 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11818444224054941250, - "plan_version": 1, - "snapshot_sha256": "1485ecd5bd632a9bb8e1a1ea27e53eb14b4a2dad505ffd59dc86d029b9f89c9d" - }, - "envelope": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": null - }, - { - "id": 2, - "payload": { - "kind": "summary_estimate", - "query": { - "Quantile": { - "q": 0.9 - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 2 - } - }, - "entries": { - "quantile_over_time(0.9, data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" - }, - "materialization": 3752266711358116078, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [ - { - "asap_tier_native_shapes": [ - "quantile", - "quantile_over_time", - "rate", - "sum", - "avg", - "min", - "max" - ], - "name": "data", - "targets": [ - { - "engine": "asap_query" - } - ] - } - ], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 3752266711358116078, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 11818444224054941250, - "selected_manifest": { - "plan_id": 11818444224054941250, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "quantile_over_time(0.9, data[1m])", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 1, - "op": "summary_estimate", - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 3752266711358116078, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "stored_output_id": 3752266711358116078 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "quantile_over_time(0.9, data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:3752266711358116078:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [], - "materialization": 3752266711358116078, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "stored_output_id": 3752266711358116078 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:3752266711358116078:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [], - "materialization": 3752266711358116078, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "stored_output_id": 3752266711358116078 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:3752266711358116078:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [], - "materialization": 3752266711358116078, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "stored_output_id": 3752266711358116078 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:3752266711358116078:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "DDSketch", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "DDSketch", - "category": "Quantile", - "params": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "d44928725a94aff7913a80a733b8254137703c59f446ee316d27e6518eda14b0" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "sketchlib_protobuf_v1", - "sketch_core_msgpack_v1", - "native_batch_v1" - ], - "family": { - "algorithm": "DDSketch", - "family": "sketch", - "parameters": { - "DDSketch": { - "alpha": 0.01 - } - } - }, - "group_by": [], - "materialization": 3752266711358116078, - "schema_id": "asap-query-backend.v1:summary-state:v1:3752266711358116078", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7", - "stored_output_id": 3752266711358116078 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:3752266711358116078:build": 1.0, - "state:backend:3752266711358116078:residency": 1.0, - "state:backend:3752266711358116078:retire": 1.0, - "state:backend:3752266711358116078:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:c0821021fb0f0ede52cc359b062a25b521f59529c0b01d3045450e51f843bde9", - "logical_root_ids": [ - "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265" - ], - "physical_candidate_id": "asap-explain-v1:physical:06abad4563c1f00189e8f718354c7bf380a2bf216c2c64e19eeea9dae227fff5", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 11818444224054941250, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:625dc2ecb160daea9220f3c11ad598a06b50664ef7bc9790d442644a1f9a94e6", - "logical_root_ids": [ - "asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4" - ], - "physical_candidate_id": "asap-explain-v1:physical:ae3c88d23a919c5e1c0d2a743822ed3338945c29a827849ada3bd37c3ebc182d", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 4754089690189431057, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:985b7f5c84ddcdf36ce558a4da7e86d7e4511ddcdcb470dba23ae48759cb0317", - "logical_root_ids": [ - "asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b" - ], - "physical_candidate_id": "asap-explain-v1:physical:d0c2addd51491030e110e2534c0cb0fe7ce47b67a72e0faf17cfdb7edb0371d2", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 11545774673163874085, - "total_cost": 61000000000000.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:29fdd72d790935cf32958c5ef45310fb29fbde973398328bfd26344aebfbe10b", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 65536.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 65536.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "op": "zero" - }, - "metric": "relative_value", - "provenance": [ - { - "algorithm": "DDSketch", - "contract": "ddsketch_relative_error_alpha_v1", - "kind": "sketch_readout", - "params": { - "DDSketch": { - "alpha": 0.01 - } - }, - "query": "Quantile { q: 0.9 }" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "exact_input" - }, - { - "kind": "accuracy_target", - "target": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - } - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "quantile(q=0.9) realizes as a DDSketch sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [ - { - "description": "quantile(q=0.9) realizes as a Kll sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "reason": "composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 }", - "status": "rejected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "target_id": "asap-explain-v1:target:cf400cc4b8f0a84b6d1c6ba9aceb8f22bd7f8ecf977969b39540d41a76354a96" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/temporal-quantile.md b/docs/evaluation/issue754-human-review/archive/temporal-quantile.md deleted file mode 100644 index 889c6465a..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-quantile.md +++ /dev/null @@ -1,181 +0,0 @@ -# temporal-quantile - -`quantile_over_time(0.9, data[1m])` - -[Raw selected plan](temporal-quantile.json) · [DAG DOT](temporal-quantile.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `2`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]}"] - N2["2: summary_estimate"] - N0 --> N1 - N1 --> N2 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"Sketch":[{"algorithm":"DDSketch","category":"Quantile","params":{"DDSketch":{"alpha":0.01}}},"PerSubpopulationInstance"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"Sketch\":[{\"algorithm\":\"DDSketch\",\"category\":\"Quantile\",\"params\":{\"DDSketch\":{\"alpha\":0.01}}},\"PerSubpopulationInstance\"]}"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"summary_estimate","query":{"Quantile":{"q":0.9}}}` | `["0: ts/timestamp","1: value/float64"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -- quantile(q=0.9) realizes as a Kll sketch: composed guarantee (Rank, bound Some(0.013294757464848584), failure probability Some(0.01)) does not satisfy EpsilonDelta { epsilon: 0.01, delta: 0.01 } -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:ded85760335cdff2c017ddc4f55852bb07fa5e4199cd348e3f711f4f2d35f265"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:8161e1fd955edc970415f0296701e178dc8549534e95bf0c9aa2be91c77f57d4"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:3d7e2af334c24d7e91dd07729e79ad69d3d76949f746da20a8d9f1bacfb6187b"]` | `"unselected"` | `61000000000000.0` | `null` | - -Successfully compiled candidate plans: [temporal-quantile-0](candidates/temporal-quantile-0.json), [temporal-quantile-1](candidates/temporal-quantile-1.json), [temporal-quantile-2](candidates/temporal-quantile-2.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 3752266711358116078 - } - }, - "query_sink": 2, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `3752266711358116078` → semantic definition `sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "DDSketch", - "aggregation_sub_type": "", - "parameters": { - "alpha": 0.01, - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "quantile_over_time(0.9, data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "summary_estimate", - "input": 1, - "query": { - "kind": "quantile", - "q": 0.9 - } - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 3752266711358116078, - "definition_id": "sds-v1:2fde0175b6e4e3ba9124c880727f0aa355743ee5dd941aa16914493a5bf8cdf7" - }, - "materialization": 3752266711358116078, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/temporal-rate.dot b/docs/evaluation/issue754-human-review/archive/temporal-rate.dot deleted file mode 100644 index 8f64bbfe6..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-rate.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_c833721a88e2a09f [label="materialization\npolicy_fp:c833721a88e2a09f\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(14425999489689100447) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: rate(data[1m])"; - query_0_0 [label="ExactReadout\nRate", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:c833721a88e2a09f\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_c833721a88e2a09f -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/temporal-rate.json b/docs/evaluation/issue754-human-review/archive/temporal-rate.json deleted file mode 100644 index cd636fcaf..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-rate.json +++ /dev/null @@ -1,2064 +0,0 @@ -{ - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 1350462962080375017, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "14425999489689100447": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 1350462962080375017, - "plan_version": 1, - "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" - }, - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "materialization": 14425999489689100447, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 14425999489689100447 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 1350462962080375017, - "plan_version": 1, - "snapshot_sha256": "c1f3b47e1d040d1af9e4e3aad7b9973bbc4f6e08bdaa4a0d0aea5751bb6e8d54" - }, - "envelope": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "rate(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" - }, - "materialization": 14425999489689100447, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 14425999489689100447, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": { - "eligible_leaves": 1, - "enumerated_local_masks": 2, - "exhaustive": true, - "scope": "Backend materialization versus Prometheus exact-subquery masks over Planner-authorized leaves; native alternative separate; bounded inventory does not claim an unenumerated optimum" - }, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 1350462962080375017, - "selected_manifest": { - "plan_id": 1350462962080375017, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "rate(data[1m])", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "rate" - }, - "physical_dag": null, - "query": "rate(data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 14425999489689100447, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "rate(data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:14425999489689100447:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:14425999489689100447:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:14425999489689100447:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:14425999489689100447:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "37611019d35e7390b10bb8cb5d15c910bd13254caf2bd8eb497873f86325f94d" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [], - "materialization": 14425999489689100447, - "schema_id": "asap-query-backend.v1:summary-state:v1:14425999489689100447", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c", - "stored_output_id": 14425999489689100447 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:14425999489689100447:build": 1.0, - "state:backend:14425999489689100447:residency": 1.0, - "state:backend:14425999489689100447:retire": 1.0, - "state:backend:14425999489689100447:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:58095076fcd25aa06dd6b1139c2d666f7f864d1c2cfa8da7a68c4336146dbce0", - "logical_root_ids": [ - "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" - ], - "physical_candidate_id": "asap-explain-v1:physical:3abdcddbce0076bb0f960bdbbadb2d764cc1637f37f928dfe344b3606bdc89eb", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 1350462962080375017, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:a807d3c844faa560c71a0ffcc409b8b56f953736f833f12c8ccce423de372bde", - "logical_root_ids": [ - "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9" - ], - "physical_candidate_id": "asap-explain-v1:physical:f10d832145869c1a1691c81c5a14cb67e10fb2c442ee46e9cd19b1915404c570", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 4863426083951867157, - "total_cost": 122.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:3dd7c380b3c0085f43c8482bbf72ac2f4b4caa6f1a98c7470acad94b82e2e2d8", - "logical_root_ids": [ - "asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1" - ], - "physical_candidate_id": "asap-explain-v1:physical:f2b4e5a7eb528da59a178559563506669184b715bc73b4ac9ed74a1fc77ff22f", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 27061497774794526, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:3fdaf973b5b17f03c0026ce43a74a141e46d0a0502365b420b3336eb05ccb1b7", - "logical_root_ids": [ - "asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a" - ], - "physical_candidate_id": "asap-explain-v1:physical:25e28dfdbf455e1affaccc38531735cba8054b29b8a824ae77c79fdb0ca70e67", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 3235857638904289352, - "total_cost": 122.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:a6f8372ddf40ff3edd2c467f9678623fd94d672c757f374a6e6c5f6646759861", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:74a7bb4c7cabbf23391c10e77a9338fa4e49bd423b72606eebaa2a77f8405b7d" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/temporal-rate.md b/docs/evaluation/issue754-human-review/archive/temporal-rate.md deleted file mode 100644 index bbec14133..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-rate.md +++ /dev/null @@ -1,164 +0,0 @@ -# temporal-rate - -`rate(data[1m])` - -[Raw selected plan](temporal-rate.json) · [DAG DOT](temporal-rate.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `1`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] - N0 --> N1 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:aa7460b59310fd8c3411a5014dd65c9097c718b9fb9b3aff362919615133f8a9"]` | `"unselected"` | `122.0` | `null` | -| 2 | `["asap-explain-v1:root:8ed5823e98d2614ffcdd3d97cc89382d84971be92d5fc9d38ab75871077fe4a1"]` | `"unselected"` | `61000000000000.0` | `null` | -| 3 | `["asap-explain-v1:root:bcef9a6e19a4a56f39f010611ef372c99349ab8da0938ea72c33098cb0fb557a"]` | `"unselected"` | `122.0` | `null` | - -Successfully compiled candidate plans: [temporal-rate-0](candidates/temporal-rate-0.json), [temporal-rate-1](candidates/temporal-rate-1.json), [temporal-rate-2](candidates/temporal-rate-2.json), [temporal-rate-3](candidates/temporal-rate-3.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 14425999489689100447 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `14425999489689100447` → semantic definition `sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "rate(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 14425999489689100447, - "definition_id": "sds-v1:528d2a7adb528822d205d1e239daf9904249ae30c5c50c6f7288f286b451ea6c" - }, - "materialization": 14425999489689100447, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/temporal-sum.dot b/docs/evaluation/issue754-human-review/archive/temporal-sum.dot deleted file mode 100644 index 1b04bcd1a..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-sum.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_b432367fc2819c91 [label="materialization\npolicy_fp:b432367fc2819c91\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(12984500598014581905) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: sum_over_time(data[1m])"; - query_0_0 [label="ExactReadout\nSum", shape=doubleoctagon]; - query_0_1 [label="ReadMaterialization\npolicy_fp:b432367fc2819c91\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_b432367fc2819c91 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_1 -> query_0_0; - } -} diff --git a/docs/evaluation/issue754-human-review/archive/temporal-sum.json b/docs/evaluation/issue754-human-review/archive/temporal-sum.json deleted file mode 100644 index 3caf0e925..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-sum.json +++ /dev/null @@ -1,2045 +0,0 @@ -{ - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 17891999753521262724, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}": { - "id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact" - }, - "state_schema_version": 1 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "12984500598014581905": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"kind\":\"exact\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Sum\",\"family\":{\"ExactAggregate\":[\"Sum\",\"Sum\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":1}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 17891999753521262724, - "plan_version": 1, - "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" - }, - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "materialization": 12984500598014581905, - "family": { - "family": "exact", - "kind": "sum" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c", - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd" - } - ] - } - } - }, - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 12984500598014581905 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 17891999753521262724, - "plan_version": 1, - "snapshot_sha256": "9f32ff9e6921ec372a86e3676bff53c98f6c0c646a5c681dc985f4834f646acc" - }, - "envelope": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - } - }, - "entries": { - "sum_over_time(data[1m])": { - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum_over_time(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" - }, - "materialization": 12984500598014581905, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 12984500598014581905, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 17891999753521262724, - "selected_manifest": { - "plan_id": 17891999753521262724, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "sum_over_time(data[1m])", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "sum" - }, - "physical_dag": null, - "query": "sum_over_time(data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 12984500598014581905, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "stored_output_id": 12984500598014581905 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": null, - "query": "sum_over_time(data[1m])" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 0 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:12984500598014581905:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 12984500598014581905, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "stored_output_id": 12984500598014581905 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:12984500598014581905:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 12984500598014581905, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "stored_output_id": 12984500598014581905 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:12984500598014581905:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 12984500598014581905, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "stored_output_id": 12984500598014581905 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:12984500598014581905:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Sum", - "grouping_labels": { - "labels": [] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c": { - "inputs": [ - { - "node": "2c217c08abcc91a7c51e758d2b10849d2c4f8464dae6dd7b1b0c50f64643a4dd", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Sum", - "Sum" - ] - }, - "name": "value", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "a2e824b6e5bad3337969adca78ad2cd6195708e9ad1b401f2165c3014b7c6e9c" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_accumulator_v1", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "sum" - }, - "group_by": [], - "materialization": 12984500598014581905, - "schema_id": "asap-query-backend.v1:summary-state:v1:12984500598014581905", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77", - "stored_output_id": 12984500598014581905 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:12984500598014581905:build": 1.0, - "state:backend:12984500598014581905:residency": 1.0, - "state:backend:12984500598014581905:retire": 1.0, - "state:backend:12984500598014581905:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:3bee11ead3773ff58e41f9007d248c7134c04ce29d4a4bdef1f3a9050537560d", - "logical_root_ids": [ - "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2" - ], - "physical_candidate_id": "asap-explain-v1:physical:35be3a29d59d5ffe624cb7776f222b0ca5e6083d12e5c40fd0c1aabe3daa577e", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 17891999753521262724, - "total_cost": 95.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:a594d656c22382d2710527de66ad2f53f26f0f1b53b31c5979da81a762fc7ebe", - "logical_root_ids": [ - "asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163" - ], - "physical_candidate_id": "asap-explain-v1:physical:9c11f7ce82300d270e53a249926c3a924c9225d7a353b048772ba83672eb45d4", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 3167846180279825593, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:51a3c044f756b1a55a9a392a05448bc602fe03cc0bb08e739654033903cb2a80", - "logical_root_ids": [ - "asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173" - ], - "physical_candidate_id": "asap-explain-v1:physical:ebb74e79b04e6981663aac695ef814ebd80b6f5a2345b97b3be43019fa11ce05", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 17637043547591721229, - "total_cost": 122.0, - "unavailable_reason": null - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:36adec18102a6b765a7c1fab3bc4105ff6a106724a8dfe64f89c6e19d73c28ba", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Sum)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "exact_sum" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Sum { col: None } realizes as an exact Sum accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:fd2b79720f7074bc3ed85ec2572420fe4234f183de130490dc25889647f34d2e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:7b444065b0f6692d2d60e213da8a0b44ca078dffcb1288ad23dda45ee2c5ac5c" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:bed58569e575544af3165553341eace687afe0f5844d713b6a371542e0c27e45" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "query_id": "compat-query-0", - "reason": "invalid DAG: ranking requires one exact per-series Rate frontier", - "stage": "planner.physical_candidate", - "status": "unsupported" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/temporal-sum.md b/docs/evaluation/issue754-human-review/archive/temporal-sum.md deleted file mode 100644 index 58522439f..000000000 --- a/docs/evaluation/issue754-human-review/archive/temporal-sum.md +++ /dev/null @@ -1,163 +0,0 @@ -# temporal-sum - -`sum_over_time(data[1m])` - -[Raw selected plan](temporal-sum.json) · [DAG DOT](temporal-sum.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `1`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Sum","Sum"]}"] - N0 --> N1 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Sum","Sum"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Sum\",\"Sum\"]}"]` | - -### Sort expressions - -No standalone Sort node in this selected DAG; any ranking readout is shown in the operation table. - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `null`. - - - -Guarantee: `null` - -invalid DAG: ranking requires one exact per-series Rate frontier - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:b126c47758460e1ca08bec865504580e7416496ba620dcc4323975dad83f10a2"]` | `"selected"` | `95.0` | `null` | -| 1 | `["asap-explain-v1:root:2c7a681a3e60809d71b31ba46bc5f845d61aaa353dec893efde010fbce293163"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:802c93d00dfe46beb1239a64f545d208cad96ffaaa63844d6bf49dd17c8c3173"]` | `"unselected"` | `122.0` | `null` | - -Successfully compiled candidate plans: [temporal-sum-0](candidates/temporal-sum-0.json), [temporal-sum-1](candidates/temporal-sum-1.json), [temporal-sum-2](candidates/temporal-sum-2.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 12984500598014581905 - } - }, - "query_sink": 1, - "query_plan_sink": 0, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `12984500598014581905` → semantic definition `sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Sum", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "sum_over_time(data[1m])", - "root": 0, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "sum" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 12984500598014581905, - "definition_id": "sds-v1:068e8fdf57fde0bc238f6d6b867da05538b86004d79d5b330c922be8c412ad77" - }, - "materialization": 12984500598014581905, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/docs/evaluation/issue754-human-review/archive/topk-rate.dot b/docs/evaluation/issue754-human-review/archive/topk-rate.dot deleted file mode 100644 index 85fd647a8..000000000 --- a/docs/evaluation/issue754-human-review/archive/topk-rate.dot +++ /dev/null @@ -1,31 +0,0 @@ -digraph compiled_physical_plan { - rankdir=LR; - node [shape=box, fontname=Helvetica]; - subgraph cluster_precompute { - label="PrecomputePlan"; - materialization_a6120bc1de539146 [label="materialization\npolicy_fp:a6120bc1de539146\nmetric=data\nwindow_type=sliding\nwindow=60s / 10s\nlayout=Pane { pane_secs: 10 }", shape=component]; - subgraph cluster_precompute_dag_0 { - label="compat-query-0"; - precompute_0_0 [label="fallback #0\nMaintenanceInput"]; - precompute_0_1 [label="summary_agg #1\nMaterialization { stored_output: StoredOutputId(11966640087163441478) }"]; - precompute_0_0 -> precompute_0_1 [label="Input"]; - } - } - subgraph cluster_query_0 { - label="QueryPlan: topk by (label_0) (3, rate(data[1m]))"; - query_0_0 [label="ExactReadout\nRate"]; - query_0_1 [label="ReadMaterialization\npolicy_fp:a6120bc1de539146\nwindow=10000ms\nlookback=Some(60000)"]; - materialization_a6120bc1de539146 -> query_0_1 [style=dashed, color=gray40, label="reads"]; - query_0_2 [label="Planner Physical DAG\nbound sources [2]", shape=doubleoctagon]; - query_0_1 -> query_0_0; - query_0_0 -> query_0_2; - subgraph cluster_native_query_0 { - label="Planner query operators"; - native_query_0_2 [label="#2\nBound physical input"]; - native_query_0_3 [label="#3\n{\"Sort\":{\"groups\":[2],\"keys\":[{\"column\":1,\"descending\":true,\"nulls_first\":false}]}}"]; - native_query_0_2 -> native_query_0_3; - native_query_0_4 [label="#4\n{\"Limit\":{\"groups\":[2],\"n\":3,\"offset\":0}}"]; - native_query_0_3 -> native_query_0_4; - } - } -} diff --git a/docs/evaluation/issue754-human-review/archive/topk-rate.json b/docs/evaluation/issue754-human-review/archive/topk-rate.json deleted file mode 100644 index f2ab82bf6..000000000 --- a/docs/evaluation/issue754-human-review/archive/topk-rate.json +++ /dev/null @@ -1,11337 +0,0 @@ -{ - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "summary_descriptors": { - "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}": { - "id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "operator": { - "kind": "configured", - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - } - }, - "fidelity": { - "kind": "exact_counter", - "model": "prometheus.extrapolated-rate.v1", - "full_pane_coverage_required": true - }, - "state_schema_version": 2 - } - }, - "data_descriptors": { - "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2": { - "id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2", - "source": { - "time_series": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "population_filter_canonical": "", - "group_by_keys": [ - "label_0" - ], - "partitioning": "per_entity", - "observation_semantics": "asap.timestamped-observations.v2" - } - }, - "outputs": { - "11966640087163441478": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "summary_descriptor_id": "summary:v3:{\"fidelity\":{\"full_pane_coverage_required\":true,\"kind\":\"exact_counter\",\"model\":\"prometheus.extrapolated-rate.v1\"},\"operator\":{\"aggregation_sub_type\":\"\",\"aggregation_type\":\"Rate\",\"family\":{\"ExactAggregate\":[\"Rate\",\"Rate\"]},\"kind\":\"configured\",\"parameters\":{\"promql_right_closed\":true}},\"state_schema_version\":2}", - "data_descriptor_id": "data:v2|33:{\"time_series\":{\"metric\":\"data\"}}|14:\"sample_value\"|0:|partition:PerEntity|7:label_0|32:asap.timestamped-observations.v2" - } - }, - "definitions": { - "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24": { - "semantic_format_version": 1, - "semantics": { - "kind": "planner", - "fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - } - } - } - } - }, - "collector_plans": [], - "precompute_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "ingest": { - "protocol": "prometheus_remote_write_v1", - "endpoint_path": "/api/v1/write", - "timestamp_unit": "unix_milliseconds", - "require_plan_identity": false, - "require_stored_output_identity": false, - "require_registered_producer": false - }, - "schemas": [ - { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "materialization": 11966640087163441478, - "family": { - "family": "exact", - "kind": "rate" - }, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "value_projection": "sample_value", - "group_by": [ - "label_0" - ], - "window": { - "kind": "sliding", - "size_ms": 60000, - "slide_ms": 10000, - "pane_origin_ms": 0 - }, - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ] - } - ], - "producers": [], - "materializations": [ - { - "semantic_fragment": { - "format_version": 1, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a", - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [], - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "inputs": [ - { - "role": "Input", - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252" - } - ] - } - } - }, - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "original_yaml": "", - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } - ], - "executable_dags": { - "compat-query-0": { - "document": { - "schema_version": 6, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - } - ], - "root": 1 - }, - "binding": { - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 2, - "precompute_sinks": [ - 1 - ] - } - } - } - }, - "transmission_plan": { - "summary_catalog": { - "schema_version": 4, - "plan_id": 11938117179177087264, - "plan_version": 1, - "snapshot_sha256": "17e2c48013d0f0cbef837455ee760a2335a5a3df62040846080746a106f8c0c6" - }, - "envelope": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "generated_at_unix_ms": 10000, - "activation_unix_ms": 10000, - "expiry_unix_ms": null, - "backend_compat": "asap-query-backend.v1", - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1" - }, - "frame_identity": { - "identity_version": 1, - "sequence_scope": "materialization_series_producer_epoch", - "require_checkpoint_for_full": true, - "require_base_checkpoint_for_delta": true - }, - "rules": [] - }, - "query_plan": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "selected_dags": { - "compat-query-0": { - "schema_version": 5, - "query_id": "compat-query-0", - "nodes": [ - { - "id": 0, - "payload": { - "expression": { - "TimeRange": { - "child": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "range": { - "nanos": 0, - "secs": 60 - } - } - }, - "kind": "fallback" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - } - }, - { - "id": 1, - "payload": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 2, - "payload": { - "kind": "value", - "operation": "FinalizeExactAccumulator" - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 3, - "payload": { - "kind": "value", - "operation": { - "Sort": { - "keys": [ - { - "ascending": false, - "expr": { - "Column": 1 - }, - "nulls_first": false - } - ], - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - }, - { - "id": 4, - "payload": { - "kind": "value", - "operation": { - "Limit": { - "n": 3, - "offset": 0, - "partition_by": [ - 2 - ] - } - } - }, - "output_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - } - } - ], - "edges": [ - { - "producer": 0, - "consumer": 1, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "RequiresAlignedPanePhaseOrExactBoundaryResidual" - }, - { - "producer": 1, - "consumer": 2, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "ingestion_time", - "primitive": "SummaryState" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 2, - "consumer": 3, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - }, - { - "producer": 3, - "consumer": 4, - "role": "Input", - "intermediate_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "data_state": { - "timing": "query_time", - "primitive": "Raw" - }, - "grouping": "NotApplicable", - "window": "NotApplicable" - } - ], - "root": 4 - } - }, - "entries": { - "topk by (label_0) (3, rate(data[1m]))": { - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 2, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "2": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 2 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" - } - } - }, - "storage_routing": { - "default_engine": "asap_query", - "metrics": [], - "tenant": "default" - }, - "lifecycle_estimates": [ - { - "materialization": 11966640087163441478, - "consumer_query_ids": [ - "compat-query-0" - ], - "window_implementation_id": "backend-tumbling-v1-60s-slide-10s-pane-10s", - "horizon_seconds": 300.0, - "expected_reads": 30.0, - "expected_updates": 30000.0, - "lifecycle_cost": 44.3 - } - ], - "cost_comparison": { - "logical_selection": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ], - "materialization_search_coverage": null, - "data_snapshot_id": "issue-754-level1", - "model_version": "deterministic-test-costs", - "selected_plan_id": 11938117179177087264, - "selected_manifest": { - "plan_id": 11938117179177087264, - "plan_version": 1, - "planner_revision": "176c1bd565e0c400f9a35996c2bd65de32475e72", - "capability_snapshot_id": "asapquery-local-v1", - "backend_compat": "asap-query-backend.v1", - "horizon_seconds": 300.0, - "workload": { - "compat-query-0": { - "accuracy": { - "EpsilonDelta": { - "delta": 0.01, - "epsilon": 0.01 - } - }, - "evaluation_interval_ms": 10000, - "query": "topk by (label_0) (3, rate(data[1m]))", - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "components": { - "query:compat-query-0:0": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "input": 1, - "op": "exact_readout", - "readout": "rate" - }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:1": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "binding": { - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "window_ms": 10000 - }, - "op": "read_materialization" - }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "query:compat-query-0:2": { - "implementation": { - "instant": { - "cumulative_readout": true, - "full_history": false, - "lookback_ms": 60000 - }, - "node": { - "inputs": [ - 0 - ], - "max_bytes": 2147483648, - "op": "physical", - "source_nodes": [ - 2 - ] - }, - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query": "topk by (label_0) (3, rate(data[1m]))" - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "result:compat-query-0": { - "implementation": { - "query_id": "compat-query-0", - "root": 2 - }, - "unit": "query_evaluation", - "multiplicity": 30.0 - }, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": { - "implementation": { - "ingest": { - "endpoint_path": "/api/v1/write", - "protocol": "prometheus_remote_write_v1", - "require_plan_identity": false, - "require_registered_producer": false, - "require_stored_output_identity": false, - "timestamp_unit": "unix_milliseconds" - }, - "location": "backend", - "source": { - "TimeSeries": { - "metric": "data" - } - } - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:build": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "build" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:residency": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "residency" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:retire": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "retire" - }, - "unit": "horizon", - "multiplicity": 1.0 - }, - "state:backend:11966640087163441478:update": { - "implementation": { - "binding": { - "location": "backend", - "physical": { - "aggregated_labels": { - "labels": [] - }, - "aggregation_sub_type": "", - "aggregation_type": "Rate", - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "metric": "data", - "num_aggregates_to_retain": 7, - "original_yaml": "", - "pane_origin_ms": 0, - "parameters": { - "promql_right_closed": true - }, - "partitioning": "per_entity", - "rollup_labels": { - "labels": [] - }, - "semantic_fragment": { - "format_version": 1, - "nodes": { - "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252": { - "inputs": [], - "operation": { - "expression": { - "Scan": { - "predicates": [], - "schema": { - "closed": true, - "columns": [ - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "value", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - } - ], - "time_index": 0, - "unique_keys": [] - }, - "source": { - "TimeSeries": { - "metric": "data" - } - } - } - }, - "kind": "fallback" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - }, - "record_range": true - }, - "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a": { - "inputs": [ - { - "node": "3690223326c434d9dc185241065efdb596f7cf1fea497f6423a8a2f55721e252", - "role": "Input" - } - ], - "operation": { - "family": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "grouping": "PerSubpopulationInstance", - "input": { - "item": null, - "weight": { - "Column": "SampleValue" - }, - "weight_domain": { - "kind": "unknown_or_signed" - } - }, - "kind": "summary_agg", - "reduction": "PerEntity" - }, - "output_schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "output": "7eb65917cab5c66752e0134830ffa2ae5f62f6080f284384a781e93e0d2a234a" - }, - "slide_interval": 10, - "spatial_filter": "", - "spatial_filter_normalized": "", - "table_name": null, - "value_projection": null, - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "window_size": 60, - "window_type": "sliding" - }, - "schema": { - "encodings": [ - "exact_counter_accumulator_v2", - "planner_exact_accumulator_v1", - "native_batch_v1" - ], - "family": { - "family": "exact", - "kind": "rate" - }, - "group_by": [ - "label_0" - ], - "materialization": 11966640087163441478, - "schema_id": "asap-query-backend.v1:summary-state:v1:11966640087163441478", - "schema_version": 1, - "source": { - "TimeSeries": { - "metric": "data" - } - }, - "stored_output_reference": { - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24", - "stored_output_id": 11966640087163441478 - }, - "value_projection": "sample_value", - "window": { - "kind": "sliding", - "pane_origin_ms": 0, - "size_ms": 60000, - "slide_ms": 10000 - } - }, - "window_implementation": "backend-tumbling-v1-60s-slide-10s-pane-10s" - }, - "operation": "update" - }, - "unit": "horizon", - "multiplicity": 1.0 - } - } - }, - "component_costs": { - "query:compat-query-0:0": 30.0, - "query:compat-query-0:1": 30.0, - "query:compat-query-0:2": 30.0, - "result:compat-query-0": 30.0, - "source:{\"ingest\":{\"endpoint_path\":\"/api/v1/write\",\"protocol\":\"prometheus_remote_write_v1\",\"require_plan_identity\":false,\"require_registered_producer\":false,\"require_stored_output_identity\":false,\"timestamp_unit\":\"unix_milliseconds\"},\"location\":\"backend\",\"source\":{\"TimeSeries\":{\"metric\":\"data\"}}}": 1.0, - "state:backend:11966640087163441478:build": 1.0, - "state:backend:11966640087163441478:residency": 1.0, - "state:backend:11966640087163441478:retire": 1.0, - "state:backend:11966640087163441478:update": 1.0 - }, - "candidates": [ - { - "candidate_id": "asap-explain-v1:candidate:a327bc875dc0442d14ff542121c4dbae359d13824d2f1e05cf7a14d8d7a6c931", - "logical_root_ids": [ - "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b" - ], - "physical_candidate_id": "asap-explain-v1:physical:37dec2c54420e8acdb1f6b425d0abba0cda66ef485eaa1e7a01b8d7011dd5066", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 14733843382488271694, - "total_cost": 155.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:b9e7353b08881f81af8934010b159498e31e7842ec5a3a2a672c5b1f41837dab", - "logical_root_ids": [ - "asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb" - ], - "physical_candidate_id": "asap-explain-v1:physical:7d7f051f253b853bd6a092b38e1ea274fda9465ab7540f0bc06a7af618282e8a", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 15833270860732361489, - "total_cost": 61000000000000.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:60a26ce929f7e27340ebd8555bba5b691e41eb0d57d6a730d69735baa6720476", - "logical_root_ids": [ - "asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec" - ], - "physical_candidate_id": "asap-explain-v1:physical:6ec1a661f1ddc81ab2b7c771ed6ec852332aefc8d3e7827a3551c88dda52598f", - "identity_unavailable_reason": null, - "status": "unselected", - "plan_id": 5379663311087285901, - "total_cost": 242.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:1660105b2e06cd9a9f498679cb2179aab28d2d3a674d3990e76e80cc0450694d", - "logical_root_ids": [ - "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:a6ddc5cbfd0d2f2b509df334546e3e21f276ac4a1e1e54ab15d3b919e088bf3c", - "logical_root_ids": [ - "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:601ebe163e70ba24555540e00da90a72d682308b06cc53215f610dd6412a52c5", - "logical_root_ids": [ - "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65" - ], - "physical_candidate_id": "asap-explain-v1:physical:c4f2aa987a95e97b99f6f5089af4b78f0f4d4c8d28f121321398c738c3f125ce", - "identity_unavailable_reason": null, - "status": "selected", - "plan_id": 11938117179177087264, - "total_cost": 125.0, - "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:17dca7f80f586da96d29b00d6655e70cb4e3a253938d65efd838318e9f425a08", - "logical_root_ids": [ - "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - }, - { - "candidate_id": "asap-explain-v1:candidate:0658ec7508f74f5c5ad81379a01ac60dff7cd5adcd52e589a6c35b51bad75dce", - "logical_root_ids": [ - "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution" - } - ] - }, - "planner_selection_trace": [ - { - "candidate_assembly_rejections": [], - "committed_roots": [ - { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", - "query_index": 0 - } - ], - "computation_search_scope": { - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false - }, - "deployment_overrides": [], - "group_id_scope": "this_selection", - "groups": [ - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:5e43da69eae368ae99ad57d353f7077deeb9e45460304f96261296d8c794a73a", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "select exact Top-K from independently maintained temporal values", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 0, - "rejected": [], - "target_id": "asap-explain-v1:target:bf706544aa9f59eff564117a8ecd5a80ebea4915f5903e45e0e8fa90465ae2c0" - }, - { - "candidates": [ - { - "accuracy_status": "known", - "candidate_id": "asap-explain-v1:candidate:e652339cfefdc262801db9e597b6d35b59a70a62bcd1211cab6dfe129bd09544", - "cost_estimate": { - "erp_record_ids": [], - "model": "backend_state_footprint_v1", - "source": "analytical", - "unit": "bytes_per_state_partition", - "value": 256.0 - }, - "decision_reason": "planner_selected_pending_backend_binding", - "estimated_cost": 256.0, - "estimated_cost_status": "available", - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "provenance": "SummaryRealization", - "rank": 0, - "rationale": "Rate realizes as an exact Rate accumulator — the only realization realizations_for_intent produces for this intent (no approximate candidate applies)", - "replacement_kind": "summary", - "runtime_support_status": "unknown_pending_backend_binding", - "selected": true, - "status": "selected", - "strategy": "SketchAlgorithmStrategy" - } - ], - "consumer_count": 1, - "group_id": 1, - "rejected": [], - "target_id": "asap-explain-v1:target:5ac77911329cb2e00c9e347e928211ea459f6695da7433b56af7e3c2d15d6d8e" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 2, - "rejected": [], - "target_id": "asap-explain-v1:target:6b73c62c949c2cad6b5852e1339d38ee3163bc3a6798815c6c885b531aeffe01" - }, - { - "candidates": [], - "consumer_count": 1, - "group_id": 3, - "rejected": [], - "target_id": "asap-explain-v1:target:11701e232d8e949e06d851f637e4010d32f8263c6d8bf270e2cc7e0e9de9f500" - } - ], - "roots": [ - { - "logical_root_id": "asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b", - "query_index": 0 - } - ], - "schema_version": 1 - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa", - "physical_candidate": { - "materialized_outputs": { - "3": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "precompute": { - "nodes": { - "1": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "2": { - "Operator": { - "inputs": [ - 1 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "ExactAggregate": [ - "Rate", - "Rate" - ] - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Readout": { - "parameters": { - "logical_lookback_ms": "60000" - }, - "state": 1, - "statistic": "Rate" - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - } - }, - "roots": [ - 3 - ], - "version": 1 - }, - "query": { - "nodes": { - "3": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "ExactAggregate(Rate)" - }, - { - "guarantee": { - "bound": { - "op": "zero" - }, - "failure_probability": { - "op": "zero" - }, - "metric": "absolute_value", - "provenance": [ - { - "kind": "exact", - "reason": "KeepPreAsap" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "composition_step", - "operator": { - "op": "counter_rate" - }, - "rule": "exact_input" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "select exact Top-K from independently maintained temporal values", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.009993683192864136 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.006737946999085467 - }, - "op": "scaled" - }, - "metric": "frequency", - "provenance": [ - { - "algorithm": "CmsWithHeap", - "contract": "count_min_l1_markov_v1", - "kind": "sketch_readout", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CmsWithHeap", - "category": "TopK", - "params": { - "CmsWithHeap": { - "depth": 5, - "heap_size": 100, - "width": 272 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - }, - { - "guarantee": { - "bound": { - "op": "unknown", - "statistic": "topk_membership_margin" - }, - "failure_probability": { - "op": "union_bound", - "terms": [ - { - "op": "unknown", - "statistic": "topk_interval_failure_probability" - }, - { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - } - ] - }, - "metric": "top_k_membership", - "provenance": [ - { - "guarantee": { - "bound": { - "op": "constant", - "value": 0.01 - }, - "failure_probability": { - "count": { - "op": "unknown", - "statistic": "topk_max_distinct_items" - }, - "inner": { - "op": "constant", - "value": 0.009940766872773949 - }, - "op": "scaled" - }, - "metric": "l2_frequency", - "provenance": [ - { - "algorithm": "CountSketchWithHeap", - "contract": "count_sketch_l2_median_hoeffding_v1", - "kind": "sketch_readout", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - }, - "query": "TopK { k: 100 }" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_max_distinct_items" - }, - { - "kind": "composition_step", - "operator": { - "op": "approximate_aggregate" - }, - "rule": "simultaneous_score_bounds_over_distinct_partition_item_identities" - } - ] - }, - "input_index": 0, - "kind": "child_guarantee" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_selected_lower_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_excluded_upper_bound" - }, - { - "kind": "unavailable_statistic", - "statistic": "topk_interval_failure_probability" - }, - { - "kind": "composition_step", - "operator": { - "op": "top_k_selection" - }, - "rule": "topk_membership_margin_certificate" - } - ] - }, - "logical_root_id": "asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05", - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "KeyedSummaryBuild": { - "family": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "groups": [ - 2 - ], - "items": [ - 0, - 3 - ], - "value": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Sketch": [ - { - "algorithm": "CountSketchWithHeap", - "category": "TopK", - "params": { - "CountSketchWithHeap": { - "depth": 83, - "heap_size": 100, - "width": 30000 - } - } - }, - "PerSubpopulationInstance" - ] - }, - "name": "topk_3", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "KeyedReadout": { - "k": 100, - "state": 1 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - } - } - }, - "5": { - "Operator": { - "inputs": [ - 4 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "__asap_estimate", - "nullable": false - } - ], - "time_index": null - } - ], - "kind": { - "Project": [ - { - "Planner": { - "expression": { - "Column": 1 - }, - "output": [ - "timestamp", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 3 - }, - "output": [ - "float64", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 0 - }, - "output": [ - "utf8", - true - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - }, - { - "Planner": { - "expression": { - "Column": 2 - }, - "output": [ - "utf8", - false - ], - "schema": { - "closed": false, - "columns": [ - { - "dtype": "utf8", - "name": "label_0", - "nullable": true, - "table": null - }, - { - "dtype": "timestamp", - "name": "ts", - "nullable": false, - "table": null - }, - { - "dtype": "utf8", - "name": "$promql_series_identity", - "nullable": false, - "table": null - }, - { - "dtype": "float64", - "name": "__asap_estimate", - "nullable": false, - "table": null - } - ], - "time_index": null, - "unique_keys": [] - } - } - } - ] - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "6": { - "Operator": { - "inputs": [ - 5 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "7": { - "Operator": { - "inputs": [ - 6 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 7 - ], - "version": 1 - }, - "query_id": "compat-query-0", - "rationale": "top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent)", - "stage": "planner.physical_candidate" - } - ] -} \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/archive/topk-rate.md b/docs/evaluation/issue754-human-review/archive/topk-rate.md deleted file mode 100644 index 3fec0a7a6..000000000 --- a/docs/evaluation/issue754-human-review/archive/topk-rate.md +++ /dev/null @@ -1,552 +0,0 @@ -# topk-rate - -`topk by (label_0) (3, rate(data[1m]))` - -[Raw selected plan](topk-rate.json) · [DAG DOT](topk-rate.dot) - -## Selected computation: logical provenance - -IDs below are Planner node IDs; QueryPlan adapter IDs are shown separately. - -Root: `4`. - -```mermaid -flowchart LR - N0["0: Source / time range"] - N1["1: SummaryAgg {"ExactAggregate":["Rate","Rate"]}"] - N2["2: FinalizeExactAccumulator"] - N3["3: Sort"] - N4["4: Limit"] - N0 --> N1 - N1 --> N2 - N2 --> N3 - N3 --> N4 -``` - -| Node | Dependencies (producer, edge role) | Timing | Operation | Output fields (index: name/type) | -| --- | --- | --- | --- | --- | -| 0 | `[]` | `{"timing":"ingestion_time","primitive":"Raw"}` | `{"source":{"TimeSeries":{"metric":"data"}},"predicates":[],"range":{"nanos":0,"secs":60}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 1 | `[[0,"Input"]]` | `{"timing":"ingestion_time","primitive":"SummaryState"}` | `{"family":{"ExactAggregate":["Rate","Rate"]},"grouping":"PerSubpopulationInstance","input":{"item":null,"weight":{"Column":"SampleValue"},"weight_domain":{"kind":"unknown_or_signed"}},"kind":"summary_agg","reduction":"PerEntity"}` | `["0: ts/timestamp","1: value/{\"ExactAggregate\":[\"Rate\",\"Rate\"]}","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 2 | `[[1,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":"FinalizeExactAccumulator"}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 3 | `[[2,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Sort":{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 4 | `[[3,"Input"]]` | `{"timing":"query_time","primitive":"Raw"}` | `{"kind":"value","operation":{"Limit":{"n":3,"offset":0,"partition_by":[2]}}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | - -### Sort expressions - -Node `3`: `{"keys":[{"ascending":false,"expr":{"Column":1},"nulls_first":false}],"partition_by":[2]}` - -Its input is node `2`: `{"kind":"value","operation":"FinalizeExactAccumulator"}`. Column indices refer to that producer's output schema above. - -## Installed native physical program - -This program is compiled before candidate pricing and installation. Serving restores its operators and binds its declared inputs. - -Roots: `[4]`. - -| Node | Dependencies | Operator / input contract | Output fields | -| --- | --- | --- | --- | -| 2 | `[]` | `{"Input":{"boundedness":"Bounded","emission":"Unknown"}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 3 | `[2]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | -| 4 | `[3]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | `["0: ts/timestamp","1: value/float64","2: label_0/utf8","3: $promql_series_identity/utf8"]` | - -```mermaid -flowchart LR - P2["2: Bound physical input"] - P3["3: Sort"] - P2 --> P3 - P4["4: Limit"] - P3 --> P4 -``` - -## Candidate admission and costing - -Costs below come from the controlled Level 1 fixture, not production measurements. - -```json -{ - "deployment_evaluation": "single_root_substitutions_in_preferred_workload", - "inventory": "all_root_candidates", - "joint_workload_search_exhaustive": false -} -``` - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f"`. - -top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states - -Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.009993683192864136},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"},"metric":"frequency","provenance":[{"algorithm":"CmsWithHeap","contract":"count_min_l1_markov_v1","kind":"sketch_readout","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` - -Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` - -#### Maintenance physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | -| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | - -Roots: `[3]`. - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` | -| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | -| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | -| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[7]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa"`. - -top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent); fixed-window precompute over complete per-series counter states - -Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` - -Materialized boundaries: `{"3":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` - -#### Maintenance physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 1 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"ExactAggregate":["Rate","Rate"]},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 2 | `[1]` | `{"Readout":{"parameters":{"logical_lookback_ms":"60000"},"state":1,"statistic":"Rate"}}` | -| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | - -Roots: `[3]`. - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 3 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"name":"topk_3","nullable":false}],"time_index":null}}}` | -| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | -| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | -| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[7]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65"`. - -select exact Top-K from independently maintained temporal values - -Guarantee: `{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"ExactAggregate(Rate)"},{"guarantee":{"bound":{"op":"zero"},"failure_probability":{"op":"zero"},"metric":"absolute_value","provenance":[{"kind":"exact","reason":"KeepPreAsap"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"composition_step","operator":{"op":"counter_rate"},"rule":"exact_input"}]}` - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 3 | `[2]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 4 | `[3]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[4]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374"`. - -top-3 heavy-hitters realizes as a CmsWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) - -Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.009993683192864136},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.006737946999085467},"op":"scaled"},"metric":"frequency","provenance":[{"algorithm":"CmsWithHeap","contract":"count_min_l1_markov_v1","kind":"sketch_readout","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CmsWithHeap","category":"TopK","params":{"CmsWithHeap":{"depth":5,"heap_size":100,"width":272}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | -| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | -| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | -| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[7]`. - -### Planner physical candidate - -Logical root: `"asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05"`. - -top-3 heavy-hitters realizes as a CountSketchWithHeap sketch — one of summary_candidates' candidates for this intent (asap_aware_mapping::replacement::realizations_for_intent) - -Guarantee: `{"bound":{"op":"unknown","statistic":"topk_membership_margin"},"failure_probability":{"op":"union_bound","terms":[{"op":"unknown","statistic":"topk_interval_failure_probability"},{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"}]},"metric":"top_k_membership","provenance":[{"guarantee":{"bound":{"op":"constant","value":0.01},"failure_probability":{"count":{"op":"unknown","statistic":"topk_max_distinct_items"},"inner":{"op":"constant","value":0.009940766872773949},"op":"scaled"},"metric":"l2_frequency","provenance":[{"algorithm":"CountSketchWithHeap","contract":"count_sketch_l2_median_hoeffding_v1","kind":"sketch_readout","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}},"query":"TopK { k: 100 }"},{"kind":"unavailable_statistic","statistic":"topk_max_distinct_items"},{"kind":"composition_step","operator":{"op":"approximate_aggregate"},"rule":"simultaneous_score_bounds_over_distinct_partition_item_identities"}]},"input_index":0,"kind":"child_guarantee"},{"kind":"unavailable_statistic","statistic":"topk_selected_lower_bound"},{"kind":"unavailable_statistic","statistic":"topk_excluded_upper_bound"},{"kind":"unavailable_statistic","statistic":"topk_interval_failure_probability"},{"kind":"composition_step","operator":{"op":"top_k_selection"},"rule":"topk_membership_margin_certificate"}]}` - -#### Query physical DAG - -| Node | Dependencies | Native operator / input | -| --- | --- | --- | -| 2 | `[]` | `{"Input":{"properties":{"boundedness":"Bounded","emission":"Unknown"},"schema":{"fields":[{"dtype":{"Plain":"timestamp"},"name":"ts","nullable":false},{"dtype":{"Plain":"float64"},"name":"value","nullable":false},{"dtype":{"Plain":"utf8"},"name":"label_0","nullable":true},{"dtype":{"Plain":"utf8"},"name":"$promql_series_identity","nullable":false}],"time_index":0}}}` | -| 3 | `[2]` | `{"KeyedSummaryBuild":{"family":{"Sketch":[{"algorithm":"CountSketchWithHeap","category":"TopK","params":{"CountSketchWithHeap":{"depth":83,"heap_size":100,"width":30000}}},"PerSubpopulationInstance"]},"groups":[2],"items":[0,3],"value":1}}` | -| 4 | `[3]` | `{"KeyedReadout":{"k":100,"state":1}}` | -| 5 | `[4]` | `{"Project":[{"Planner":{"expression":{"Column":1},"output":["timestamp",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":3},"output":["float64",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":0},"output":["utf8",true],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}},{"Planner":{"expression":{"Column":2},"output":["utf8",false],"schema":{"closed":false,"columns":[{"dtype":"utf8","name":"label_0","nullable":true,"table":null},{"dtype":"timestamp","name":"ts","nullable":false,"table":null},{"dtype":"utf8","name":"$promql_series_identity","nullable":false,"table":null},{"dtype":"float64","name":"__asap_estimate","nullable":false,"table":null}],"time_index":null,"unique_keys":[]}}}]}` | -| 6 | `[5]` | `{"Sort":{"groups":[2],"keys":[{"column":1,"descending":true,"nulls_first":false}]}}` | -| 7 | `[6]` | `{"Limit":{"groups":[2],"n":3,"offset":0}}` | - -Roots: `[7]`. - - -| Candidate | Logical root IDs | Status | Fixture cost | Rejection / unavailable reason | -| --- | --- | --- | --- | --- | -| 0 | `["asap-explain-v1:root:f0c94e03e570989e93edbfab0f772b40c3f91ab4f8c5ef4ec2c358afed9fa40b"]` | `"unselected"` | `155.0` | `null` | -| 1 | `["asap-explain-v1:root:76385b579aa7ad029c49286fa41a3ce4dd16ff0f8341067025d8820107be52cb"]` | `"unselected"` | `61000000000000.0` | `null` | -| 2 | `["asap-explain-v1:root:198684922b0bfbc2d1a2c2639fd790356a6950798dd395e5c40ebd6e4dc302ec"]` | `"unselected"` | `242.0` | `null` | -| 3 | `["asap-explain-v1:root:cd8d58532ced0954eb6dee4f40babf574410c2137999b7fc4ae4954bcca9910f"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 4 | `["asap-explain-v1:root:ec50b2a3ab2acf52587d69138433ae7e0aa525df93ada9e5fb087afa57e89caa"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 5 | `["asap-explain-v1:root:ff175f2c427d9949807e2bd5169591d1dc41e1bd57baf68829309d6bf53efa65"]` | `"selected"` | `125.0` | `null` | -| 6 | `["asap-explain-v1:root:7c0ca598df442f28b14ab8b6b82c4071766750a438b47008db140848fbb80374"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | -| 7 | `["asap-explain-v1:root:cb14776f9b6a08d08dbd095533579fb8b8fb6baa3f59d13f177b010e8123df05"]` | `"bind_failed"` | `null` | `"query compat-query-0: selected summary readout has no certified accuracy guarantee; provide scoped evidence or use exact execution"` | - -Successfully compiled candidate plans: [topk-rate-0](candidates/topk-rate-0.json), [topk-rate-1](candidates/topk-rate-1.json), [topk-rate-2](candidates/topk-rate-2.json), [topk-rate-5](candidates/topk-rate-5.json) - -## Persisted boundaries - -Binding for `compat-query-0`: - -```json -{ - "nodes": { - "0": { - "placement": "maintenance_input" - }, - "1": { - "placement": "materialization", - "stored_output": 11966640087163441478 - } - }, - "query_sink": 4, - "query_plan_sink": 2, - "precompute_sinks": [ - 1 - ] -} -``` - -Stored output `11966640087163441478` → semantic definition `sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24`. - -### Maintenance configuration - -```json -[ - { - "aggregation_type": "Rate", - "aggregation_sub_type": "", - "parameters": { - "promql_right_closed": true - }, - "grouping_labels": { - "labels": [ - "label_0" - ] - }, - "partitioning": "per_entity", - "aggregated_labels": { - "labels": [] - }, - "rollup_labels": { - "labels": [] - }, - "window_size": 60, - "slide_interval": 10, - "window_type": "sliding", - "window_layout": { - "kind": "pane", - "pane_secs": 10 - }, - "pane_origin_ms": 0, - "spatial_filter": "", - "spatial_filter_normalized": "", - "metric": "data", - "num_aggregates_to_retain": 7, - "table_name": null, - "value_projection": null - } -] -``` - -## Bound query execution - -This is the emitted adapter representation, including dependencies, pane size, readout lookback and stored-output references. Legacy wire names are preserved so the export remains auditable. - -```json -{ - "physical_dag": { - "nodes": { - "2": { - "Input": { - "properties": { - "boundedness": "Bounded", - "emission": "Unknown" - }, - "schema": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - }, - "3": { - "Operator": { - "inputs": [ - 2 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Sort": { - "groups": [ - 2 - ], - "keys": [ - { - "column": 1, - "descending": true, - "nulls_first": false - } - ] - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - }, - "4": { - "Operator": { - "inputs": [ - 3 - ], - "operator": { - "inputs": [ - { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - ], - "kind": { - "Limit": { - "groups": [ - 2 - ], - "n": 3, - "offset": 0 - } - }, - "output": { - "fields": [ - { - "dtype": { - "Plain": "timestamp" - }, - "name": "ts", - "nullable": false - }, - { - "dtype": { - "Plain": "float64" - }, - "name": "value", - "nullable": false - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "label_0", - "nullable": true - }, - { - "dtype": { - "Plain": "utf8" - }, - "name": "$promql_series_identity", - "nullable": false - } - ], - "time_index": 0 - } - } - } - } - }, - "roots": [ - 4 - ], - "version": 1 - }, - "language": "prom_ql", - "query_id": "compat-query-0", - "canonical_query": "topk by (label_0) (3, rate(data[1m]))", - "root": 2, - "nodes": { - "0": { - "op": "exact_readout", - "input": 1, - "readout": "rate" - }, - "1": { - "op": "read_materialization", - "binding": { - "stored_output_reference": { - "stored_output_id": 11966640087163441478, - "definition_id": "sds-v1:8ce91b101746c32849414f7a215bd7042800b84c4593ec8ece52cb06372dbc24" - }, - "materialization": 11966640087163441478, - "output_grouping": { - "mode": "per_entity" - }, - "window_ms": 10000, - "pane_origin_ms": 0, - "readout_lookback_ms": 60000 - } - }, - "2": { - "op": "physical", - "inputs": [ - 0 - ], - "source_nodes": [ - 2 - ], - "max_bytes": 2147483648 - } - }, - "instant": { - "lookback_ms": 60000, - "full_history": false, - "cumulative_readout": true - }, - "fallback": "exact_backend" -} -``` diff --git a/promql-compliance/datasets/issue-754-certified-topk.yaml b/promql-compliance/datasets/issue-754-certified-topk.yaml new file mode 100644 index 000000000..207998357 --- /dev/null +++ b/promql-compliance/datasets/issue-754-certified-topk.yaml @@ -0,0 +1,41 @@ +# Companion to issue-754, built so that a top-k heap can actually be certified. +# +# issue-754 itself cannot certify one: its per-series value domains overlap, so +# no scalar `topk_selected_lower_bound > topk_excluded_upper_bound` holds across +# the validity window. Here each series occupies a decade of its own and the +# modulo is 1, so the domains are disjoint by construction: +# +# value_i(t) in [multiplier_i * base_i, multiplier_i * (base_i + modulo_i)] +# +# group a: a1 [10,11] a2 [100,101] a3 [1000,1001] a4 [10000,10001] +# group b: b1 [20,21] b2 [200,201] b3 [2000,2001] b4 [20000,20001] +# +# topk by (label_0) (3, ...) selects {a2,a3,a4} and {b2,b3,b4}. The lowest +# selected bound is 100 and the highest excluded bound is 21, so the separation +# contract holds for both groups at once with a single scalar pair. +name: issue-754-certified-topk +series: + - metric: data + labels: {label_0: a, instance: a1} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 10, modulo: 1} + - metric: data + labels: {label_0: a, instance: a2} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 100, modulo: 1} + - metric: data + labels: {label_0: a, instance: a3} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 1000, modulo: 1} + - metric: data + labels: {label_0: a, instance: a4} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 10000, modulo: 1} + - metric: data + labels: {label_0: b, instance: b1} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 20, modulo: 1} + - metric: data + labels: {label_0: b, instance: b2} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 200, modulo: 1} + - metric: data + labels: {label_0: b, instance: b3} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 2000, modulo: 1} + - metric: data + labels: {label_0: b, instance: b4} + generated_samples: {start_offset_seconds: 0, end_offset_seconds: 180, step_seconds: 0.1, multiplier: 1, base: 20000, modulo: 1} From d49870a212982a4b8b6ced0b59b4c90cce1887d9 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 17:54:04 +0000 Subject: [PATCH 56/80] fix(control-plane): reject cost evidence quoting another dataset A single quote whose manifest names a different dataset than the deployment now rejects the whole evidence generation with a typed CompileError::CostEvidenceDataset, instead of silently failing to match. Co-Authored-By: Claude Opus 5.5 --- control_plane/src/physical/compiler.rs | 8 ++++ control_plane/src/physical/workload_cost.rs | 45 +++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 8de99280e..3fb8d37ed 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -648,6 +648,14 @@ pub enum CompileError { Query { query_id: String, reason: String }, #[error("query {query_id}: TopK evidence is stale or invalid: {reason}")] InvalidEvidence { query_id: String, reason: String }, + #[error( + "cost evidence for dataset {}/{} cannot price deployment for {}/{}", + found.namespace, found.dataset, expected.namespace, expected.dataset + )] + CostEvidenceDataset { + expected: planner_types::post_asap::LogicalDatasetIdentity, + found: planner_types::post_asap::LogicalDatasetIdentity, + }, #[error("query {query_id}: lifecycle planning failed: {reason}")] Lifecycle { query_id: String, reason: String }, #[error("failed to construct a physical materialization: {0}")] diff --git a/control_plane/src/physical/workload_cost.rs b/control_plane/src/physical/workload_cost.rs index eea4d3532..7820074bf 100644 --- a/control_plane/src/physical/workload_cost.rs +++ b/control_plane/src/physical/workload_cost.rs @@ -445,6 +445,17 @@ impl WorkloadCostEvidence { { return Err(invalid("missing, future or stale evidence generation")); } + // One generation prices one dataset; a foreign quote taints all of it. + if let Some(quote) = self + .quotes + .iter() + .find(|quote| quote.manifest.dataset_identity != env.dataset_identity) + { + return Err(CompileError::CostEvidenceDataset { + expected: env.dataset_identity.clone(), + found: quote.manifest.dataset_identity.clone(), + }); + } Ok(()) } @@ -1806,6 +1817,40 @@ mod tests { assert!(error.contains("cost evidence compiler mismatch"), "{error}"); } + #[test] + fn evidence_quoting_another_dataset_is_rejected_whole() { + let (candidates, env, evidence) = quoted(); + assert!(select_lowest_cost_candidate(candidates.clone(), env.clone(), &evidence).is_ok()); + let last = evidence.quotes.len() - 1; + for alter in [ + |id: &mut planner_types::post_asap::LogicalDatasetIdentity| { + id.namespace.push_str("-other") + }, + |id: &mut planner_types::post_asap::LogicalDatasetIdentity| { + id.dataset.push_str("-other") + }, + ] { + let mut foreign = evidence.clone(); + alter(&mut foreign.quotes[last].manifest.dataset_identity); + let found = foreign.quotes[last].manifest.dataset_identity.clone(); + for error in [ + select_lowest_cost_candidate(candidates.clone(), env.clone(), &foreign), + select_lowest_cost_metricsql_candidate(candidates.clone(), env.clone(), &foreign), + ] + .map(Result::unwrap_err) + { + assert!( + matches!( + &error, + CompileError::CostEvidenceDataset { expected, found: f } + if expected == &env.dataset_identity && f == &found + ), + "{error}" + ); + } + } + } + #[test] fn snapshot_supports_automatic_cost_and_roundtrips_quote_override() { let mut snapshot = fixture(); From a6339a0c0dcd74162073b1d78919fba5bfefb0a5 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 18:08:20 +0000 Subject: [PATCH 57/80] test(level1): apply the rejection and membership discipline to ensembles too The batch path planned the three workload ensembles as a single input but only checked that a failed candidate had *some* non-empty reason, then moved on. So the discipline added for single queries stopped exactly where workload planning began, and the defects it was meant to catch were still absorbed silently there. Ensembles now classify every rejection the same way, carry their own recorded defect counts, and assert the same membership contract: a heap family Planner exposes for a member query must still appear in the workload inventory and must still be refused for the declared reason. Doing this surfaced two things. A rejection the single-query path cannot reach: a workload candidate proposing to share one deployed output between queries that need different semantics from it. Refusing that is correct -- the sharing would silently change what one query computes -- so it is a third policy reason, ConflictingSharedOutput, not a defect. Only batch planning can produce it. And the fragment-mismatch defect is considerably worse in batch than the per-query counts implied. It scales with workload size: 1 occurrence when shared-rate plans three queries together, 15 across all-ten, plus one schema incompatibility each. shared-quantiles reaches neither. All are recorded with exact counts. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/issue754_level1.rs | 150 +++++++++++++++--- docs/design_docs/planning-test-layers.md | 5 +- .../issue754-human-review/README.md | 14 ++ 3 files changed, 143 insertions(+), 26 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 40597cc93..b17517136 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -47,6 +47,12 @@ enum PolicyReason { NoCertifiedGuarantee, /// The realized family cannot meet the query's declared accuracy target. AccuracyTargetUnmet, + /// A workload candidate proposed sharing one deployed output between + /// queries that need different semantics from it. Refusing it is correct, + /// not a bug: the sharing would silently change what one of the queries + /// computes. Only the batch path can reach this, which is why the + /// single-query fixtures never produce it. + ConflictingSharedOutput, } impl PolicyReason { @@ -54,10 +60,17 @@ impl PolicyReason { match self { Self::NoCertifiedGuarantee => reason.contains("accuracy guarantee"), Self::AccuracyTargetUnmet => reason.contains("does not satisfy"), + Self::ConflictingSharedOutput => { + reason.contains("one deployed output cannot have different semantic definitions") + } } } - const ALL: &'static [Self] = &[Self::NoCertifiedGuarantee, Self::AccuracyTargetUnmet]; + const ALL: &'static [Self] = &[ + Self::NoCertifiedGuarantee, + Self::AccuracyTargetUnmet, + Self::ConflictingSharedOutput, + ]; } /// Sketch/heap families each query must expose, and how the given fixture is @@ -114,10 +127,37 @@ const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ "Planner logical fragment does not match any original query subtree", 1, ), + // Workload candidates. The same defect reaches the batch path, and the + // fragment mismatch scales with workload size: one occurrence when three + // queries are planned together, fifteen across all ten. shared-quantiles + // reaches neither, so it has no entry. + ( + "shared-rate", + "Planner logical fragment does not match any original query subtree", + 1, + ), + ( + "shared-rate", + "physical program has incompatible input or result schema", + 1, + ), + ( + "all-ten", + "Planner logical fragment does not match any original query subtree", + 15, + ), + ( + "all-ten", + "physical program has incompatible input or result schema", + 1, + ), ]; /// Classify one admission rejection. A reason that is neither a declared policy -/// refusal nor a recorded defect fails the query outright. +/// refusal nor a recorded defect fails the scope outright. `scope` is a query +/// name on the single-query path and an ensemble name on the workload path: a +/// workload candidate's rejection belongs to the whole ensemble, not to one of +/// its queries. fn assert_rejection_is_accounted_for(name: &str, reason: &str) { if PolicyReason::ALL .iter() @@ -128,13 +168,40 @@ fn assert_rejection_is_accounted_for(name: &str, reason: &str) { assert!( KNOWN_BINDING_DEFECTS .iter() - .any(|(query, defect, _)| *query == name && reason.contains(defect)), + .any(|(scope, defect, _)| *scope == name && reason.contains(defect)), "{name}: unaccounted binding rejection: {reason}\n\ Add a policy reason if this is a deliberate refusal, or fix the \ defect. Level 1 does not accept unexplained bind failures." ); } +/// Every recorded defect must still occur exactly as often as declared, so that +/// neither a new occurrence nor a silent fix can pass unnoticed. +fn assert_recorded_defect_counts( + scope: &str, + admission: &[control_plane::physical::workload_cost::CandidatePlanEvaluation], +) { + for (recorded, defect, count) in KNOWN_BINDING_DEFECTS { + if *recorded != scope { + continue; + } + let observed = admission + .iter() + .filter(|result| { + result + .unavailable_reason + .as_deref() + .is_some_and(|reason| reason.contains(defect)) + }) + .count(); + assert_eq!( + observed, *count, + "{scope}: recorded defect count changed for {defect:?}; \ + update KNOWN_BINDING_DEFECTS (delete the entry once fixed)" + ); + } +} + struct ExpectedPlan { family: Option, partitioning: &'static str, @@ -938,28 +1005,7 @@ fn issue754_queries_have_valid_physical_plans() { ref status => panic!("unexpected pre-pricing status: {status:?}"), } } - // Each recorded defect must still occur exactly as often as declared: - // a new occurrence and a silently fixed one both fail here. - for (query, defect, count) in KNOWN_BINDING_DEFECTS { - if *query != case.name { - continue; - } - let observed = admission - .iter() - .filter(|result| { - result - .unavailable_reason - .as_deref() - .is_some_and(|reason| reason.contains(defect)) - }) - .count(); - assert_eq!( - observed, *count, - "{}: recorded defect count changed for {defect:?}; \ - update KNOWN_BINDING_DEFECTS (delete the entry once fixed)", - case.name - ); - } + assert_recorded_defect_counts(&case.name, &admission); if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { // Mirror the committed layout: `admission/` is the contract, so a // downloaded CI artifact drops straight onto the repository copy. @@ -1170,10 +1216,64 @@ fn ensembles_preserve_all_queries_and_shared_output_identity() { .into_physical_compilation_request() .unwrap(); assert_eq!(request.queries.len(), cases.len()); + let request_traces = request.planner_selection_trace.clone(); let candidates = enumerate_exact_and_materialized_candidates(request).unwrap(); let (_, admission) = compile_candidates_for_pricing(candidates.clone(), env.clone(), QueryFrontend::PromQl); assert_eq!(admission.len(), candidates.len()); + // The same discipline as the single-query path. A workload candidate's + // rejection is attributed to the ensemble, since it covers every query + // in it: either a declared policy refusal or a recorded defect, never + // an unexplained bind failure. + for result in &admission { + assert!( + result.total_cost.is_none(), + "{name}: Level 1 must not price workload candidates" + ); + if result.status == CandidateEvaluationStatus::CompilationFailed { + let reason = result.unavailable_reason.as_deref().unwrap_or_default(); + assert!(!reason.is_empty(), "{name}: bind failure without a reason"); + assert_rejection_is_accounted_for(&name, reason); + } + } + assert_recorded_defect_counts(&name, &admission); + // Membership holds for the batch too: a heap family that Planner exposes + // for a member query must still appear in the workload inventory, and + // must still be refused for the declared reason. + for case in &cases { + for (family, resolution) in required_summary_shapes(&case.name, Fixture::Strict) { + let Some(trace) = request_traces.iter().find(|trace| { + trace["stage"] == "planner.physical_candidate" + && trace["physical_dag"].to_string().contains(family) + }) else { + panic!("{name}: {} lost its native {family}", case.name); + }; + let root_id = trace["logical_root_id"].as_str().unwrap().to_owned(); + let heap: Vec<_> = admission + .iter() + .filter(|candidate| candidate.logical_root_ids.contains(&root_id)) + .collect(); + assert!( + !heap.is_empty(), + "{name}: {} heap candidate left the workload inventory", + case.name + ); + let Resolution::MustReject(policy) = resolution else { + panic!("the strict fixture declares refusing shapes"); + }; + assert!( + heap.iter().all(|candidate| candidate.status + == CandidateEvaluationStatus::CompilationFailed + && candidate.total_cost.is_none() + && candidate + .unavailable_reason + .as_deref() + .is_some_and(|reason| policy.matches(reason))), + "{name}: {} heap must stay an explicit {policy:?} refusal in the workload: {heap:?}", + case.name + ); + } + } let mut bound = 0; let mut shared = false; for (index, candidate) in candidates.into_iter().enumerate() { diff --git a/docs/design_docs/planning-test-layers.md b/docs/design_docs/planning-test-layers.md index 5258bffeb..93dcc0c7b 100644 --- a/docs/design_docs/planning-test-layers.md +++ b/docs/design_docs/planning-test-layers.md @@ -29,7 +29,10 @@ Synthetic pricing does not relax query accuracy admission or SDS identity checks Each layer tests the ten individual queries plus three workload ensembles: shared-rate (temporal-rate, grouped-rate, topk-rate), shared-quantiles (temporal-quantile, quantile-ratio), and all ten queries together. Structure checks -preserve every query and validate shared output identities. Ranking checks change +preserve every query, validate shared output identities, and apply the same +rejection discipline as the single-query path, with its own recorded defect +counts. Sharing one deployed output between queries that need different +semantics from it is refused as a matter of policy, not recorded as a defect. Ranking checks change prices for whole workload candidates. Execution installs each selected workload once, ingests its fixture once, and checks every query in that workload. diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index b18ac6698..eb358b5a0 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -80,6 +80,13 @@ requires no uncertified-readout refusal to remain. Without that test, a heap candidate that silently left the inventory would still satisfy the strict fixture. +The three ensembles (`shared-rate`, `shared-quantiles`, `all-ten`) are planned +as a single workload input rather than one query at a time, and they carry the +same discipline. The batch path reaches one refusal the single-query path +cannot: a workload candidate that would share one deployed output between +queries needing different semantics from it. Refusing that is correct, so it is +recorded as a policy reason rather than a defect. + **Binding defects** are bugs. Three candidates fail with `Planner logical fragment does not match any original query subtree` and one with a schema incompatibility. `main` is green on these paths, so each is a regression @@ -90,6 +97,13 @@ entry must be gone before #775 installs and executes these candidates. The same error fails `repeated_dashboard_executes_multiple_selected_panes` and `shared_exact_dashboard_executes_selected_workload` in CI today. +The defect is worse in batch than the single-query counts suggest, and it +scales with workload size: one fragment mismatch when `shared-rate` plans three +queries together, and **fifteen** across `all-ten`, plus one schema +incompatibility each. `shared-quantiles` reaches neither. Those counts are +recorded alongside the per-query ones, so the batch path can no longer absorb +them silently. + ## Review order 1. Check source, value transformations, grouping, windows and readouts. From df23db9f7b54c30b999978c729f6d08482da2381 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 18:51:52 +0000 Subject: [PATCH 58/80] docs: correct the provenance of the recorded binding defects An earlier revision claimed every recorded defect was a regression introduced inside the #737 -> #728 stack, on the grounds that main is green on these paths. Diffing residual_nodes against main does not support that: the function is substantively identical there, and the stack changed only how the accuracy target is derived and the wording of the error message. main is green because its tests never plan these queries, not because the code is correct. That is the more worrying reading, so it should be the recorded one. The fragment mismatch is fixed on main by #781: a context-derived leaf schema was compared for equality against an isolated re-parse that cannot reproduce it, and open schemas are now compared by containment. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/issue754_level1.rs | 13 ++++++++++--- docs/evaluation/issue754-human-review/README.md | 7 +++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index b17517136..6db8a63a9 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -103,9 +103,16 @@ fn required_summary_shapes(name: &str, fixture: Fixture) -> Vec<(&'static str, R /// Binding defects this fixture reaches today. Level 1 records them rather than /// tolerating them silently: each entry must still occur exactly `count` times, /// so a new instance fails the test and a fixed one forces its line to be -/// deleted. `main` is green on these paths, so every entry is a regression -/// introduced inside the #737 → #728 stack, and all of them must be gone before -/// #775 installs and executes these candidates. +/// deleted. All of them must be gone before #775 installs and executes these +/// candidates. +/// +/// These are *not* regressions introduced by this stack, which is what an +/// earlier revision of this comment claimed on the grounds that `main` is +/// green. `residual_nodes` is substantively identical on `main`; the stack +/// changed only how it derives the accuracy target and the wording of this +/// message. `main` is green because its tests never plan these queries, not +/// because the code is correct. The fragment mismatch is fixed on `main` by +/// #781, which compares context-derived leaf schemas by containment. const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ ( "grouped-rate", diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index eb358b5a0..95302d84f 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -89,8 +89,11 @@ recorded as a policy reason rather than a defect. **Binding defects** are bugs. Three candidates fail with `Planner logical fragment does not match any original query subtree` and one with a schema -incompatibility. `main` is green on these paths, so each is a regression -introduced inside the #737 → #728 stack. They are enumerated in +incompatibility. They are older than this stack: `residual_nodes` is +substantively identical on `main`, which is green only because its tests never +plan these queries. The fragment mismatch is a context-derived leaf schema +compared for equality against an isolated re-parse that cannot reproduce it; +#781 fixes it on `main` by comparing those schemas by containment. They are enumerated in `KNOWN_BINDING_DEFECTS` in the Level-1 test with exact occurrence counts: a new instance fails the test, and a fixed one forces its entry to be deleted. Every entry must be gone before #775 installs and executes these candidates. The same From b6a60a7155210c2ad7794592f2fa0c2c965f4d57 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 18:51:24 +0000 Subject: [PATCH 59/80] fix(control-plane): match a Planner fragment against its own subtree residual_nodes locates the part of a query that still runs at query time by re-parsing every subtree of the original and comparing the typed IR with `==`. That comparison includes the leaf scan's schema, and the schema is the one thing in the tree that cannot survive the round trip. Planner documents a PromQL leaf schema as usage-derived: "the (ts, value) floor + the labels the query references", marked `closed: false` precisely because it does not enumerate the row. A fragment resolved inside the whole query therefore carries every label the query mentions, while the same fragment re-parsed alone carries only the labels it mentions. So `sum by (label_0) (rate(data[1m]))` produces a residual whose leaf scan has columns [ts, value, label_0], while re-parsing the subtree `rate(data[1m])` produces [ts, value]. Same source, predicates, range, measures, reduction; one context-derived column apart. The match failed and the query was rejected with "Planner residual does not match any original query subtree", even though the fragment is that subtree. Compare open leaf schemas by containment instead. Containment is a prefix, not an arbitrary subset, because ColumnIds are positional: the floor comes first and context only appends, so a prefix keeps every column id in predicates and grouping keys meaning the same column on both sides. Closed catalog-backed SQL schemas do enumerate the row, so they keep exact equality, and every other part of the tree is still compared exactly. Nothing that identifies the computation is relaxed. The existing false-match guards discriminate on matchers, range and metric name, and all still pass; the new test checks a different metric, range, function and matcher are each still rejected under a widened leaf schema. Found while auditing bind failures in the issue-754 workload, where this rejected three single-query candidates and, in batch planning, fifteen across a ten-query workload. Co-Authored-By: Claude Opus 5 (1M context) (cherry picked from commit e19dff2d257d6057c5d30691733297b6fff606d5) --- control_plane/src/query_plan/residual.rs | 150 ++++++++++++++++++++++- 1 file changed, 149 insertions(+), 1 deletion(-) diff --git a/control_plane/src/query_plan/residual.rs b/control_plane/src/query_plan/residual.rs index 3d392724a..21bbb2437 100644 --- a/control_plane/src/query_plan/residual.rs +++ b/control_plane/src/query_plan/residual.rs @@ -349,6 +349,98 @@ fn horizons(expr: &planner_types::pre_asap::QueryExpr, out: &mut Vec) { /// Match residuals by semantic IR equality, not display text or source names. /// This ensures a subtree parsed for physical lowering is the subtree Planner kept. +/// Does this re-parsed subtree denote the same computation as the Planner +/// fragment? +/// +/// Not `==`, and deliberately so. Planner documents a PromQL leaf's `schema` as +/// usage-derived: "the `(ts, value)` floor + the labels the query references", +/// and marks it `closed: false` precisely because it does not enumerate the +/// row. A fragment resolved inside the whole query therefore carries every +/// label the *query* mentions, while the same fragment re-parsed on its own +/// carries only the labels *it* mentions. +/// +/// So `sum by (label_0) (rate(data[1m]))` yields a residual whose leaf scan has +/// columns `[ts, value, label_0]`, while re-parsing the subtree `rate(data[1m])` +/// yields `[ts, value]`. Identical source, predicates, range, measures and +/// reduction; one extra column that the isolated parse had no way to know +/// about. Requiring equality there asks an isolated parse to reproduce +/// whole-query context, and every other part of the comparison is what actually +/// discriminates: a different matcher, range or metric still fails. +/// +/// Open leaf schemas are therefore compared by containment. Containment is a +/// *prefix*, not an arbitrary subset, because `ColumnId`s are positional: the +/// floor comes first and context only appends, so a prefix keeps every column +/// id in `predicates` and grouping keys meaning the same column on both sides. +/// Closed (catalog-backed SQL) schemas do enumerate the row, so they keep exact +/// equality. +fn fragment_matches( + candidate: &planner_types::pre_asap::QueryExpr, + residual: &planner_types::pre_asap::QueryExpr, +) -> bool { + match ( + serde_json::to_value(candidate), + serde_json::to_value(residual), + ) { + (Ok(candidate), Ok(residual)) => same_modulo_open_leaf_schema(&candidate, &residual), + // Fall back to the strict comparison rather than accepting anything we + // could not inspect. + _ => candidate == residual, + } +} + +fn same_modulo_open_leaf_schema( + candidate: &serde_json::Value, + residual: &serde_json::Value, +) -> bool { + use serde_json::Value; + match (candidate, residual) { + (Value::Object(candidate), Value::Object(residual)) => { + if is_open_schema(candidate) && is_open_schema(residual) { + return open_schema_is_widened(candidate, residual); + } + candidate.len() == residual.len() + && candidate.iter().all(|(key, value)| { + residual + .get(key) + .is_some_and(|other| same_modulo_open_leaf_schema(value, other)) + }) + } + (Value::Array(candidate), Value::Array(residual)) => { + candidate.len() == residual.len() + && candidate + .iter() + .zip(residual) + .all(|(a, b)| same_modulo_open_leaf_schema(a, b)) + } + _ => candidate == residual, + } +} + +fn is_open_schema(value: &serde_json::Map) -> bool { + value.get("closed") == Some(&serde_json::Value::Bool(false)) && value.contains_key("columns") +} + +/// The isolated parse's columns must be a prefix of the whole-query ones: +/// context appends the labels it references, it never removes or reorders the +/// floor. Every other schema field still has to agree exactly. +fn open_schema_is_widened( + candidate: &serde_json::Map, + residual: &serde_json::Map, +) -> bool { + let (Some(narrow), Some(wide)) = ( + candidate.get("columns").and_then(|v| v.as_array()), + residual.get("columns").and_then(|v| v.as_array()), + ) else { + return false; + }; + candidate + .iter() + .filter(|(key, _)| key.as_str() != "columns") + .all(|(key, value)| residual.get(key) == Some(value)) + && narrow.len() <= wide.len() + && narrow.iter().zip(wide).all(|(a, b)| a == b) +} + pub(super) fn residual_nodes( original: &str, residual: &planner_types::pre_asap::QueryExpr, @@ -410,7 +502,7 @@ pub(super) fn residual_nodes( accuracy.clone(), *interval, ) { - if &candidate == residual { + if fragment_matches(&candidate, residual) { let mut lower = Lower { nodes: BTreeMap::new(), seen: BTreeMap::new(), @@ -1430,6 +1522,62 @@ mod tests { use super::*; // A workload horizon changes the equality witness, never its filter or explicit range. #[test] + // A grouped query's residual carries the grouping label in its leaf scan + // schema, because Planner resolves that schema against the whole query. + // Re-parsing the subtree alone cannot know the label, so requiring equal + // column sets rejected a fragment that is the subtree. + #[test] + fn grouped_query_residual_matches_its_own_subtree() { + for (query, subtree) in [ + ("sum by (label_0) (rate(data[1m]))", "rate(data[1m])"), + ( + "sum by (label_0) (sum_over_time(data[1m]))", + "sum_over_time(data[1m])", + ), + ] { + let residual = crate::query_parser::parse_query_expr_with_interval( + subtree, + planner_types::types::AccuracyTarget::Exact, + 60_000, + ) + .unwrap(); + assert!( + residual_nodes(query, &residual).is_ok(), + "{query}: residual {subtree} must resolve against its own query" + ); + } + } + + // Widening is only accepted for the context-derived leaf columns. Anything + // that actually identifies the computation still has to match exactly. + #[test] + fn widened_leaf_schema_does_not_excuse_a_different_computation() { + let residual = crate::query_parser::parse_query_expr_with_interval( + "rate(data[1m])", + planner_types::types::AccuracyTarget::Exact, + 60_000, + ) + .unwrap(); + // Different metric. + assert!(residual_nodes("sum by (label_0) (rate(other[1m]))", &residual).is_err()); + // Different range. + assert!(residual_nodes("sum by (label_0) (rate(data[2m]))", &residual).is_err()); + // Different function. + assert!(residual_nodes("sum by (label_0) (increase(data[1m]))", &residual).is_err()); + // Different matcher. + let filtered = crate::query_parser::parse_query_expr_with_interval( + "rate(data{job=\"api\"}[1m])", + planner_types::types::AccuracyTarget::Exact, + 60_000, + ) + .unwrap(); + assert!(residual_nodes( + "sum by (label_0) (rate(data{job=\"worker\"}[1m]))", + &filtered + ) + .is_err()); + } + fn workload_horizon_residual_keeps_semantic_equality() { let residual = crate::query_parser::parse_query_expr_with_interval( "sum(m{job=\"api\"})", From 62478b73b24cfd975d69c2d6a12b290ded3d8f33 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 19:44:29 +0000 Subject: [PATCH 60/80] test(level1): retire the fragment-mismatch defects that #781 fixed #781 is on main: an open PromQL leaf schema is context-derived, so comparing it for equality against an isolated re-parse rejected fragments that were the subtree. With that fixed, every recorded fragment mismatch is gone: three single-query candidates, one in shared-rate and fifteen in all-ten. Removing them exposed a second schema incompatibility in all-ten that had been hidden behind the earlier rejection, so that count goes from 1 to 2. That is what pinning exact counts is for; a test that only checked "some non-empty reason" would have absorbed both the fix and the newly reachable defect without saying anything. Verified on this branch with the fix applied: level 1 is green on all four tests, and the two data_plane dashboard tests that failed with the same fragment-mismatch error, repeated_dashboard_executes_multiple_selected_panes and shared_exact_dashboard_executes_selected_workload, both pass. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/issue754_level1.rs | 35 ++++---------------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 6db8a63a9..af4ed909c 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -114,49 +114,24 @@ fn required_summary_shapes(name: &str, fixture: Fixture) -> Vec<(&'static str, R /// because the code is correct. The fragment mismatch is fixed on `main` by /// #781, which compares context-derived leaf schemas by containment. const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ - ( - "grouped-rate", - "Planner logical fragment does not match any original query subtree", - 1, - ), ( "grouped-rate", "physical program has incompatible input or result schema", 1, ), - ( - "grouped-temporal-sum", - "Planner logical fragment does not match any original query subtree", - 1, - ), - ( - "spatial-topk", - "Planner logical fragment does not match any original query subtree", - 1, - ), - // Workload candidates. The same defect reaches the batch path, and the - // fragment mismatch scales with workload size: one occurrence when three - // queries are planned together, fifteen across all ten. shared-quantiles - // reaches neither, so it has no entry. - ( - "shared-rate", - "Planner logical fragment does not match any original query subtree", - 1, - ), + // Workload candidates. The fragment-mismatch entries are gone: #781 fixed + // that defect, and removing it exposed a second schema incompatibility in + // `all-ten` that had been hidden behind the earlier rejection, so that + // count is 2 rather than 1. `shared-quantiles` reaches neither defect. ( "shared-rate", "physical program has incompatible input or result schema", 1, ), - ( - "all-ten", - "Planner logical fragment does not match any original query subtree", - 15, - ), ( "all-ten", "physical program has incompatible input or result schema", - 1, + 2, ), ]; From 5f7846dabd948067902f9106f73183d0e86dce9a Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 19:34:39 +0000 Subject: [PATCH 61/80] fix: restore the test attribute the new tests displaced The new tests were inserted between an existing `#[test]` and the function it applied to, so `grouped_query_residual_matches_its_own_subtree` carried two attributes and `workload_horizon_residual_keeps_semantic_equality` silently stopped being a test. A local `cargo test --lib` run hid both, since neither lint is an error without `-D warnings`. Move the new tests above the attribute and give the original its own back. Co-Authored-By: Claude Opus 5 (1M context) (cherry picked from commit cebfb60f94403ccc573ad5c99c93f2fbba1fbc5a) --- control_plane/src/query_plan/residual.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/control_plane/src/query_plan/residual.rs b/control_plane/src/query_plan/residual.rs index 21bbb2437..41d8a48a5 100644 --- a/control_plane/src/query_plan/residual.rs +++ b/control_plane/src/query_plan/residual.rs @@ -1520,8 +1520,6 @@ mod remote_boundary_regressions { #[cfg(test)] mod tests { use super::*; - // A workload horizon changes the equality witness, never its filter or explicit range. - #[test] // A grouped query's residual carries the grouping label in its leaf scan // schema, because Planner resolves that schema against the whole query. // Re-parsing the subtree alone cannot know the label, so requiring equal @@ -1578,6 +1576,8 @@ mod tests { .is_err()); } + // A workload horizon changes the equality witness, never its filter or explicit range. + #[test] fn workload_horizon_residual_keeps_semantic_equality() { let residual = crate::query_parser::parse_query_expr_with_interval( "sum(m{job=\"api\"})", From 40c4b2f9d1069a457359e21ddc11f671bd20d4aa Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:21:48 +0000 Subject: [PATCH 62/80] fix: terminate selected candidate execution on resource exhaustion --- control_plane/src/query_plan.rs | 1 + .../logical_dag/native_values.rs | 20 +++++++++---------- .../asap_query_engine/post_asap_readout.rs | 1 + 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/control_plane/src/query_plan.rs b/control_plane/src/query_plan.rs index c3c34ab43..bedd02e3c 100644 --- a/control_plane/src/query_plan.rs +++ b/control_plane/src/query_plan.rs @@ -1379,6 +1379,7 @@ mod tests { ) .unwrap(); let entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: "q".into(), canonical_query: "topk(1, m)".into(), diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index 12ddd9d18..e5c416173 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -545,7 +545,7 @@ where .map_err(|e| miss(e.to_string())) }) .collect::, _>>()?; - Batch::try_new(schema.clone(), rows).map_err(|e| miss(e.to_string())) + Batch::try_new(schema.clone(), rows).map_err(EngineError::from) }, ) } @@ -634,17 +634,15 @@ fn execute_batches( let batch = input_batch(input_id, &input.schema)?; input_bytes = input_bytes .checked_add(batch.bytes()) - .ok_or_else(|| miss("physical input size overflow"))?; + .ok_or(asap_physical_operators::Error::MemoryLimit)?; if input_bytes > max_bytes as usize { - return Err(miss("physical input exceeds run budget")); + return Err(asap_physical_operators::Error::MemoryLimit.into()); } let source = - Operator::source(input.schema.clone(), vec![batch]).map_err(|e| miss(e.to_string()))?; + Operator::source(input.schema.clone(), vec![batch]).map_err(EngineError::from)?; sources.insert(input_id, Box::new(source) as Source<'_>); } - let graph = program - .instantiate(sources) - .map_err(|e| miss(e.to_string()))?; + let graph = program.instantiate(sources).map_err(EngineError::from)?; let context = dag::RunContext::new( dag::Scope::Query { evaluation_time_ms: at_signed, @@ -655,15 +653,15 @@ fn execute_batches( ..dag::Limits::default() }, ) - .map_err(|error| miss(error.to_string()))?; + .map_err(EngineError::from)?; let mut stream = graph .execute(program.roots(), context) - .map_err(|error| miss(error.to_string()))? + .map_err(EngineError::from)? .remove(0); let values = block_on(async { let mut values = Vec::new(); while let Some(batch) = stream.next().await { - let batch = batch.map_err(|error| miss(error.to_string()))?; + let batch = batch.map_err(EngineError::from)?; let identity = batch .schema() .fields @@ -683,7 +681,7 @@ fn execute_batches( let Value::Utf8(encoded) = &row[identity] else { return Err(miss("invalid physical series identity")); }; - decode_series_identity(encoded).map_err(|error| miss(error.to_string()))? + decode_series_identity(encoded).map_err(EngineError::from)? } else { batch .schema() diff --git a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs index 838efc08b..1027b49ce 100644 --- a/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs +++ b/data_plane/src/query_engines/asap_query_engine/post_asap_readout.rs @@ -956,6 +956,7 @@ mod tests { }, }; let entry = QueryPlanEntry { + physical_dag: None, language: QueryLanguage::PromQl, query_id: "resource-test".into(), canonical_query: "1".into(), From 9c3af3e5f8d32f383028b3ab6a446c0fc832bc64 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:22:45 +0000 Subject: [PATCH 63/80] test: reject exhausted candidate inputs without fallback --- .../logical_dag/native_values.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index e5c416173..a41d00fc6 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -428,6 +428,24 @@ mod tests { } } + // The complete selected-candidate adapter must not classify a byte budget as capability. + #[test] + fn selected_candidate_input_budget_is_a_terminal_error() { + let plan = CompiledPhysicalDag::decode(&sorted()).unwrap(); + let error = execute_batches(&plan, 1, 1, 42, |_, schema| { + Ok(Batch::try_new( + schema.clone(), + vec![vec![Value::Float64(1.)]], + )?) + }) + .err() + .expect("input must exceed the byte budget"); + assert!( + matches!(error, EngineError::Physical(Error::MemoryLimit)), + "{error}" + ); + } + // Count-like values are bound as integers only when the protocol sample is exact. #[test] fn integer_input_binding_preserves_type_and_rejects_rounding() { From 1291b5aa388b271c60ad84fcf2412125d82db021 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:24:09 +0000 Subject: [PATCH 64/80] fix(test): let each level use only the part of the shared fixture it needs issue754_workload is `#[path]`-included by every level's test binary, so each binary compiles the whole module while calling only the helpers that level needs. Under `-D warnings` that turns an unused helper into a hard error in whichever level does not call it: `certified_topk_input`, added for level 1's certified heap fixture, broke the level 2 binary in #742. The lint is about the including binary, not about the fixture, so allow it at the module level and say why. Co-Authored-By: Claude Opus 5 (1M context) --- control_plane/tests/support/issue754_workload.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/control_plane/tests/support/issue754_workload.rs b/control_plane/tests/support/issue754_workload.rs index 78db37c89..3e77e10eb 100644 --- a/control_plane/tests/support/issue754_workload.rs +++ b/control_plane/tests/support/issue754_workload.rs @@ -1,4 +1,11 @@ //! Shared query/accuracy fixture; contains no candidate prices or expected winner. +//! +//! This module is `#[path]`-included by each level's test binary, so every +//! binary compiles all of it while using only the parts that level needs. +//! Unused-code lints are therefore about the including binary, not about the +//! fixture, and under `-D warnings` they would fail a level for helpers that +//! another level relies on. +#![allow(dead_code)] use control_plane::physical::compiler::BackendLocalPlanningInput; use serde::Deserialize; use serde_json::{json, Value}; From 265ed24b15578553e0af79f910903040477c3c1f Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:24:31 +0000 Subject: [PATCH 65/80] fix: price compiled fragments using the native physical cost model --- control_plane/src/physical/workload_cost/automatic.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/control_plane/src/physical/workload_cost/automatic.rs b/control_plane/src/physical/workload_cost/automatic.rs index 0198a3da3..6f0be5883 100644 --- a/control_plane/src/physical/workload_cost/automatic.rs +++ b/control_plane/src/physical/workload_cost/automatic.rs @@ -541,6 +541,13 @@ pub(super) fn estimate( let mut detail = json!({"input_rows":input_rows}); let mut network = 0.0; let cpu = match node { + Node::PhysicalFragment { dag, .. } => { + let program: Value = + serde_json::from_slice(dag).map_err(|error| invalid(error.to_string()))?; + let (cpu, workspace) = physical_work(&program, input_rows)?; + detail = json!({"input_rows":input_rows,"physical_program":program,"workspace_bytes_bound":workspace}); + cpu + } Node::Physical { .. } => { let (cpu, workspace) = snapshot_work(entry, input_rows)?; detail = json!({"input_rows":input_rows,"physical_program":entry.physical_dag,"workspace_bytes_bound":workspace}); From ba48bf1b3899e554b3d88bc10ed3d76bf07e5af9 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:28:59 +0000 Subject: [PATCH 66/80] fix: identify the incompatible physical binding schema --- crates/asap_types/src/query_plan/native.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/asap_types/src/query_plan/native.rs b/crates/asap_types/src/query_plan/native.rs index bf5108282..06ec40294 100644 --- a/crates/asap_types/src/query_plan/native.rs +++ b/crates/asap_types/src/query_plan/native.rs @@ -449,9 +449,11 @@ impl QueryPlanEntry { || output.schema.fields.iter().any(|field| !matches!(field.dtype, SummaryFamilyType::Plain(DataType::Utf8 | DataType::Float64 | DataType::Timestamp))) } { - return Err(invalid( - "physical program has incompatible input or result schema", - )); + return Err(invalid(&format!( + "physical program has incompatible input or result schema: inputs {:?}; output {:?}", + dag.input_contracts().map(|(id, contract)| (id, &contract.schema)).collect::>(), + dag.output_contract(dag.roots()[0]).map_err(|error| QueryPlanError::Invalid(error.to_string()))?.schema, + ))); } Ok(dag) } From c0dbc56d4322a58ea3ce1c53ae9c2d9e02c09839 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:29:29 +0000 Subject: [PATCH 67/80] test: inspect native selection fragments and remove fixed binding defects --- control_plane/tests/issue754_level1.rs | 76 ++++++++++++++++---------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index b17517136..648de81dc 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -107,45 +107,17 @@ fn required_summary_shapes(name: &str, fixture: Fixture) -> Vec<(&'static str, R /// introduced inside the #737 → #728 stack, and all of them must be gone before /// #775 installs and executes these candidates. const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ - ( - "grouped-rate", - "Planner logical fragment does not match any original query subtree", - 1, - ), ( "grouped-rate", "physical program has incompatible input or result schema", 1, ), - ( - "grouped-temporal-sum", - "Planner logical fragment does not match any original query subtree", - 1, - ), - ( - "spatial-topk", - "Planner logical fragment does not match any original query subtree", - 1, - ), - // Workload candidates. The same defect reaches the batch path, and the - // fragment mismatch scales with workload size: one occurrence when three - // queries are planned together, fifteen across all ten. shared-quantiles - // reaches neither, so it has no entry. - ( - "shared-rate", - "Planner logical fragment does not match any original query subtree", - 1, - ), + // The remaining schema defect also reaches workload candidates. ( "shared-rate", "physical program has incompatible input or result schema", 1, ), - ( - "all-ten", - "Planner logical fragment does not match any original query subtree", - 15, - ), ( "all-ten", "physical program has incompatible input or result schema", @@ -388,6 +360,41 @@ fn topk_rate_sort_contract_rejects_wrong_value_expression() { } } +// Assert the selected native operator and its typed key/group positions, not just its name. +fn assert_selection_fragment(node: &Value, expected: &str) { + use asap_physical_operators::physical_planner::CompiledPhysicalDag; + assert_eq!(node["op"], "physical_fragment"); + let bytes: Vec = serde_json::from_value(node["dag"].clone()).unwrap(); + let plan = CompiledPhysicalDag::decode(&bytes).unwrap(); + let contracts = plan.input_contracts().collect::>(); + assert_eq!(contracts.len(), 1); + let schema = &contracts[0].1.schema; + let grouping = schema + .fields + .iter() + .position(|field| field.name == "label_0") + .unwrap(); + let sample = schema + .fields + .iter() + .position(|field| { + field.dtype == SummaryFamilyType::Plain(planner_types::pre_asap::DataType::Float64) + }) + .unwrap(); + let encoded: Value = serde_json::from_slice(&bytes).unwrap(); + let root = &encoded["nodes"][plan.roots()[0].to_string()]["Operator"]; + assert_eq!(root["inputs"], json!([contracts[0].0])); + assert_eq!(plan.operator_name(plan.roots()[0]), Some(expected)); + assert_eq!( + root["operator"]["kind"][expected], + if expected == "Limit" { + json!({"n":3,"offset":0,"groups":[grouping]}) + } else { + json!({"keys":[{"column":sample,"descending":true,"nulls_first":false}],"groups":[grouping]}) + } + ); +} + fn assert_native_ranking(installed: &asap_types::query_plan::QueryPlanEntry) { let physical = if installed.physical_vector_binding().is_some() { installed.recover_vector_physical_dag().unwrap() @@ -709,7 +716,16 @@ fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Date: Mon, 28 Sep 2026 20:29:38 +0000 Subject: [PATCH 68/80] fix(tools): carry the snapshot version through instead of restating it discover_snapshot.py and calibrate.py both start from a snapshot the caller supplies and change only its content, then overwrote snapshot_version with the literal 2. The consumer moved to version 3, the literals did not, so a snapshot these tools produced from a version 3 template was rejected by into_physical_compilation_request with "unsupported workload snapshot version 2; only version 3 is supported", failing discovery_snapshot. Neither script alters the snapshot's structure, so neither has any business declaring its version. Drop both assignments and let the input's version flow through: a version 3 template now yields a version 3 snapshot, and a stale input fails downstream with an accurate message instead of being relabelled. This is the third instance this week of an input contract moving while a hand-written producer of that input stayed behind, after the two dataset_identity sites. Co-Authored-By: Claude Opus 5 (1M context) --- tools/o11y-execution/calibrate.py | 1 - tools/o11y-execution/discover_snapshot.py | 1 - 2 files changed, 2 deletions(-) diff --git a/tools/o11y-execution/calibrate.py b/tools/o11y-execution/calibrate.py index dc5e7d1a7..d99d1711b 100644 --- a/tools/o11y-execution/calibrate.py +++ b/tools/o11y-execution/calibrate.py @@ -104,7 +104,6 @@ def main(): evidence, audit = calibrate(json.loads(args.candidates.read_text()), json.loads(args.measurements.read_text()), "sha256:" + digest(args.metrics), snapshot["environment"]["observed_at_unix_ms"], snapshot["environment"]["max_evidence_age_ms"]) - snapshot["snapshot_version"] = 2 snapshot["workload_cost_evidence"] = evidence args.output.write_text(json.dumps(snapshot, indent=2, allow_nan=False) + "\n") args.output.with_suffix(".calibration.json").write_text(json.dumps(audit, indent=2, allow_nan=False) + "\n") diff --git a/tools/o11y-execution/discover_snapshot.py b/tools/o11y-execution/discover_snapshot.py index 9b2ec9a65..6270b2ccd 100644 --- a/tools/o11y-execution/discover_snapshot.py +++ b/tools/o11y-execution/discover_snapshot.py @@ -77,7 +77,6 @@ def evidence(value): "declared_interval_ms": interval, "evaluation_phase_ms": phase, "lookback_method": "derived by the backend compiler from PromQL and the declared scrape cadence"}) snapshot["query_workload"].update(repeating_queries=registrations, query_batch=None) - snapshot["snapshot_version"] = 2 snapshot.pop("workload_cost_evidence", None) implementation = snapshot["implementation"] implementation.pop("source_sample_interval_ms", None) From 6fbab77ba7e585b9c7e79ad873f33b431464da90 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:42:09 +0000 Subject: [PATCH 69/80] test: reject all unexplained physical binding failures --- control_plane/tests/issue754_level1.rs | 77 ++------------------------ 1 file changed, 4 insertions(+), 73 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 648de81dc..9975d00f9 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -100,78 +100,11 @@ fn required_summary_shapes(name: &str, fixture: Fixture) -> Vec<(&'static str, R .collect() } -/// Binding defects this fixture reaches today. Level 1 records them rather than -/// tolerating them silently: each entry must still occur exactly `count` times, -/// so a new instance fails the test and a fixed one forces its line to be -/// deleted. `main` is green on these paths, so every entry is a regression -/// introduced inside the #737 → #728 stack, and all of them must be gone before -/// #775 installs and executes these candidates. -const KNOWN_BINDING_DEFECTS: &[(&str, &str, usize)] = &[ - ( - "grouped-rate", - "physical program has incompatible input or result schema", - 1, - ), - // The remaining schema defect also reaches workload candidates. - ( - "shared-rate", - "physical program has incompatible input or result schema", - 1, - ), - ( - "all-ten", - "physical program has incompatible input or result schema", - 1, - ), -]; - -/// Classify one admission rejection. A reason that is neither a declared policy -/// refusal nor a recorded defect fails the scope outright. `scope` is a query -/// name on the single-query path and an ensemble name on the workload path: a -/// workload candidate's rejection belongs to the whole ensemble, not to one of -/// its queries. +/// Only explicit admission policies may reject a candidate. Loss of operator +/// semantics or an incompatible Planner result schema is a regression. fn assert_rejection_is_accounted_for(name: &str, reason: &str) { - if PolicyReason::ALL - .iter() - .any(|policy| policy.matches(reason)) - { - return; - } - assert!( - KNOWN_BINDING_DEFECTS - .iter() - .any(|(scope, defect, _)| *scope == name && reason.contains(defect)), - "{name}: unaccounted binding rejection: {reason}\n\ - Add a policy reason if this is a deliberate refusal, or fix the \ - defect. Level 1 does not accept unexplained bind failures." - ); -} - -/// Every recorded defect must still occur exactly as often as declared, so that -/// neither a new occurrence nor a silent fix can pass unnoticed. -fn assert_recorded_defect_counts( - scope: &str, - admission: &[control_plane::physical::workload_cost::CandidatePlanEvaluation], -) { - for (recorded, defect, count) in KNOWN_BINDING_DEFECTS { - if *recorded != scope { - continue; - } - let observed = admission - .iter() - .filter(|result| { - result - .unavailable_reason - .as_deref() - .is_some_and(|reason| reason.contains(defect)) - }) - .count(); - assert_eq!( - observed, *count, - "{scope}: recorded defect count changed for {defect:?}; \ - update KNOWN_BINDING_DEFECTS (delete the entry once fixed)" - ); - } + assert!(PolicyReason::ALL.iter().any(|policy| policy.matches(reason)), + "{name}: unexpected binding rejection: {reason}. Fix the compiler or input binding; do not allowlist the defect."); } struct ExpectedPlan { @@ -1021,7 +954,6 @@ fn issue754_queries_have_valid_physical_plans() { ref status => panic!("unexpected pre-pricing status: {status:?}"), } } - assert_recorded_defect_counts(&case.name, &admission); if let Ok(directory) = std::env::var("ASAP_LEVEL1_ARTIFACT_DIR") { // Mirror the committed layout: `admission/` is the contract, so a // downloaded CI artifact drops straight onto the repository copy. @@ -1252,7 +1184,6 @@ fn ensembles_preserve_all_queries_and_shared_output_identity() { assert_rejection_is_accounted_for(&name, reason); } } - assert_recorded_defect_counts(&name, &admission); // Membership holds for the batch too: a heap family that Planner exposes // for a member query must still appear in the workload inventory, and // must still be refused for the declared reason. From 953a52400f221a384bac76591a382bc675476885 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:52:55 +0000 Subject: [PATCH 70/80] test: allow suite-specific shared certification fixture --- control_plane/tests/support/issue754_workload.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/control_plane/tests/support/issue754_workload.rs b/control_plane/tests/support/issue754_workload.rs index 78db37c89..247d5c389 100644 --- a/control_plane/tests/support/issue754_workload.rs +++ b/control_plane/tests/support/issue754_workload.rs @@ -85,6 +85,7 @@ pub fn input(case: &Case) -> BackendLocalPlanningInput { /// item count is the series count. The assertion at the end is what makes this /// a contract rather than a guess -- if the dataset stops separating, the /// fixture fails instead of certifying something false. +#[allow(dead_code)] // Shared fixture module: only the admission suite needs certification. pub fn certified_topk_input(case: &Case) -> BackendLocalPlanningInput { const K: usize = 3; let mut snapshot: Value = serde_json::from_str(include_str!( From 8a3525ff1afef1fdb49f64b88f497cb97102e533 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 20:54:46 +0000 Subject: [PATCH 71/80] test: assert physical input budget error directly --- .../asap_query_engine/logical_dag/native_values.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs index facb54465..b0dd8febd 100644 --- a/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs +++ b/data_plane/src/query_engines/asap_query_engine/logical_dag/native_values.rs @@ -522,8 +522,7 @@ mod tests { vec![vec![Value::Float64(1.)]], )?) }) - .err() - .expect("input must exceed the byte budget"); + .expect_err("input must exceed the byte budget"); assert!( matches!(error, EngineError::Physical(Error::MemoryLimit)), "{error}" From c73365ea315e829d8c6748da1258ea2d942a3bab Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:08:02 +0000 Subject: [PATCH 72/80] fix: finalize direct Planner proposals before physical binding --- control_plane/src/physical/compiler.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 8d756986f..8b71ac958 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -1000,6 +1000,8 @@ impl BackendLocalPlanningInput { let asap_aware_mapping::Replacement::Summary(root) = candidate.replacement else { continue; }; + let root = asap_aware_mapping::replacement::finalize_query_candidate(root, &typed) + .map_err(|error| CompileError::Snapshot(error.to_string()))?; let compiled = asap_physical_operators::physical_planner::promql_rows::compile_current_series_readout(&root) .or_else(|_| asap_physical_operators::physical_planner::promql_rows::compile_rate_ranking(&root).map(|(_, program)| program)); if let Ok(physical) = asap_physical_operators::physical_planner::promql_rows::compile_fixed_window_rate_aggregation(&root) { From 11c4ac1e599f437664c7be9a84847c7c99f65e8b Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:13:20 +0000 Subject: [PATCH 73/80] test: verify identity Rate frontiers without weakening physical contracts --- control_plane/tests/issue754_level1.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/control_plane/tests/issue754_level1.rs b/control_plane/tests/issue754_level1.rs index 9975d00f9..2fb329dad 100644 --- a/control_plane/tests/issue754_level1.rs +++ b/control_plane/tests/issue754_level1.rs @@ -637,10 +637,22 @@ fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option>(); + assert_eq!(sources.len(), 1); + assert_eq!(physical.roots(), sources.as_slice()); + assert_eq!(physical.operator_name(sources[0]), Some("Input")); + } let inputs = node["inputs"].as_array().unwrap(); assert_eq!(inputs.len(), 1); node = &nodes[&inputs[0].to_string()]; @@ -702,7 +714,7 @@ fn assert_candidate_plan(name: &str, plan: &CompiledPhysicalPlan) -> Option Date: Mon, 28 Sep 2026 21:13:34 +0000 Subject: [PATCH 74/80] docs: refresh candidate admission after physical binding fixes --- .../issue754-human-review/README.md | 38 +++++++------------ .../admission/grouped-rate.admission.json | 20 ++-------- .../grouped-temporal-sum.admission.json | 16 ++++---- .../admission/spatial-sum.admission.json | 8 ++-- .../admission/spatial-topk.admission.json | 8 ++-- .../admission/temporal-rate.admission.json | 28 ++++++++++---- .../admission/temporal-sum.admission.json | 8 ++-- .../issue754-human-review/source-commit.txt | 2 +- 8 files changed, 58 insertions(+), 70 deletions(-) diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index eb358b5a0..8cccc559b 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -38,18 +38,17 @@ previous revision in this file came to be wrong. | Query | Candidates | Bound | Refused | | --- | --- | --- | --- | -| spatial-sum | 4 | 4 | — | +| grouped-rate | 5 | 5 | — | +| grouped-temporal-sum | 4 | 4 | — | +| quantile-ratio | 3 | 3 | — | | spatial-quantile | 4 | 4 | — | -| temporal-sum | 3 | 3 | — | -| temporal-rate | 4 | 4 | — | +| spatial-sum | 4 | 4 | — | +| spatial-topk | 4 | 3 | 1 no certified guarantee | | temporal-quantile | 3 | 3 | — | -| quantile-ratio | 3 | 3 | — | -| grouped-rate | 6 | 4 | 1 fragment mismatch, 1 schema incompatibility | -| grouped-temporal-sum | 4 | 3 | 1 fragment mismatch | -| spatial-topk | 4 | 2 | 1 no certified guarantee, 1 fragment mismatch | +| temporal-rate | 5 | 5 | — | +| temporal-sum | 3 | 3 | — | | topk-rate | 8 | 4 | 4 no certified guarantee | - -Two kinds of refusal appear here and they are not equivalent. +Only explicit admission policy refusals remain in these fixtures. Unexpected binding failures fail Level 1. **Policy refusals** are the fixture declining to certify a candidate, and they are asserted as required outcomes. The heap candidates are the whole of this @@ -87,22 +86,11 @@ cannot: a workload candidate that would share one deployed output between queries needing different semantics from it. Refusing that is correct, so it is recorded as a policy reason rather than a defect. -**Binding defects** are bugs. Three candidates fail with `Planner logical -fragment does not match any original query subtree` and one with a schema -incompatibility. `main` is green on these paths, so each is a regression -introduced inside the #737 → #728 stack. They are enumerated in -`KNOWN_BINDING_DEFECTS` in the Level-1 test with exact occurrence counts: a new -instance fails the test, and a fixed one forces its entry to be deleted. Every -entry must be gone before #775 installs and executes these candidates. The same -error fails `repeated_dashboard_executes_multiple_selected_panes` and -`shared_exact_dashboard_executes_selected_workload` in CI today. - -The defect is worse in batch than the single-query counts suggest, and it -scales with workload size: one fragment mismatch when `shared-rate` plans three -queries together, and **fifteen** across `all-ten`, plus one schema -incompatibility each. `shared-quantiles` reaches neither. Those counts are -recorded alongside the per-query ones, so the batch path can no longer absorb -them silently. +**Binding defects are not allowed.** Planner query-result finalization and +Backend typed bindings now preserve the selected semantics. The former fragment +mismatch and accumulator-output schema failures have been fixed, and their +allowlist has been removed. The same rejection checks apply to single queries +and the three query ensembles. ## Review order diff --git a/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json index 1d2156cd9..a3cd324de 100644 --- a/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json +++ b/docs/evaluation/issue754-human-review/admission/grouped-rate.admission.json @@ -28,12 +28,12 @@ "logical_root_ids": [ "asap-explain-v1:root:6daba5f3c9b44ad12632739d6780f55e616a9653fbd1525b02168d0e453a4845" ], - "physical_candidate_id": null, + "physical_candidate_id": "asap-explain-v1:physical:6f31f22b23159cfb14664439fe5e367d047968ad47d2d96d0ebfbd89e951442d", "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, + "status": "bound", + "plan_id": 6192272502608540012, "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + "unavailable_reason": null }, { "candidate_id": "asap-explain-v1:candidate:f1d848dd9b94a31003252e3e67de1fc831e8cd65e6816ac62bf5f0e1153924a6", @@ -58,17 +58,5 @@ "plan_id": 3349874915222028658, "total_cost": null, "unavailable_reason": null - }, - { - "candidate_id": "asap-explain-v1:candidate:6be4fb9f425339017648a016bdcf3d4191d067ea32bea01c7464bbe04e7dcde0", - "logical_root_ids": [ - "asap-explain-v1:root:27d5ae8f88ae3d24c8195cfb77f8ced66c8b982380181dac51c499a264c5ac55" - ], - "physical_candidate_id": null, - "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, - "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: physical program has incompatible input or result schema" } ] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json index d67c27597..75af47516 100644 --- a/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/grouped-temporal-sum.admission.json @@ -1,13 +1,13 @@ [ { - "candidate_id": "asap-explain-v1:candidate:cac6fd2d1eb23e36d3d6dea26d91383b5bfb2bde71ff43eeb9b873bffc20008d", + "candidate_id": "asap-explain-v1:candidate:47249a7520d1624e50b877075f6f97aa5e1cb072e6f172910c2a5e8db82eff76", "logical_root_ids": [ - "asap-explain-v1:root:28231b067827d80533657884eba8ae0be47e51c3defd43281e202fca0be5e549" + "asap-explain-v1:root:448e345cb243745ba15d18995976d0c9a66cae45011ff106e159e97f293aaab2" ], - "physical_candidate_id": "asap-explain-v1:physical:4b0cb19a0a9c053291f2d7bb6ed032a80a76f706df42047961b51c490cfb6f1c", + "physical_candidate_id": "asap-explain-v1:physical:bfd305549407f3e5ef862a6064f74690ec29b7bdebf66c7fdd296048b54e3c10", "identity_unavailable_reason": null, "status": "bound", - "plan_id": 398383639928265061, + "plan_id": 17508439989252383247, "total_cost": null, "unavailable_reason": null }, @@ -28,12 +28,12 @@ "logical_root_ids": [ "asap-explain-v1:root:afed30a788e560b32b6a5e3d72e6aca13b8cd09c2fc184e950bc6a6f68ec7e57" ], - "physical_candidate_id": null, + "physical_candidate_id": "asap-explain-v1:physical:5c44b4cb533eb97040236079b2ded3a65af5484c45409bd7b36e53ade0e95744", "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, + "status": "bound", + "plan_id": 13773692493706998879, "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + "unavailable_reason": null }, { "candidate_id": "asap-explain-v1:candidate:40dd21fdc165cc2a65b26c4c5a11e3c2da152435497b9e879db9a04015725322", diff --git a/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json index 07187c27a..9d6e2dfd7 100644 --- a/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/spatial-sum.admission.json @@ -1,13 +1,13 @@ [ { - "candidate_id": "asap-explain-v1:candidate:3be3a41143a4f294dd86565f1b6bb5799c2a58b91cc3e2ce693933b2ab70a0ec", + "candidate_id": "asap-explain-v1:candidate:a8869d0a16276da98a6fd3da7ad085d0145f165a84e2129cf43a6dcfc6b631b5", "logical_root_ids": [ - "asap-explain-v1:root:ee5d913964ff424fe9ade6bab973515975e867515777cdcdd9134cd0c65e17f7" + "asap-explain-v1:root:cca99c7039fe48156cbb90dccd659276ff1a70de776ba616d620f99f776d5cd2" ], - "physical_candidate_id": "asap-explain-v1:physical:1d8c58c38d15133c78840488619a3327806ef1dacd3bcfb328e7ba437d829c2d", + "physical_candidate_id": "asap-explain-v1:physical:d953c94e0cc0efa160db48ee14b791be59a7a83a4667c52f28446629bbecea71", "identity_unavailable_reason": null, "status": "bound", - "plan_id": 3688256239081920855, + "plan_id": 1236684965287321759, "total_cost": null, "unavailable_reason": null }, diff --git a/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json index a7494cbea..b1db5f74a 100644 --- a/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json +++ b/docs/evaluation/issue754-human-review/admission/spatial-topk.admission.json @@ -4,12 +4,12 @@ "logical_root_ids": [ "asap-explain-v1:root:ce68b3daf9be1bebe2252ca6957c8880a59ef03d33608d76b51ee0ae5eab3166" ], - "physical_candidate_id": null, + "physical_candidate_id": "asap-explain-v1:physical:aeb2a2838d761656a89dbcc21a02624af8c301ef5270287176f230318139422b", "identity_unavailable_reason": null, - "status": "bind_failed", - "plan_id": null, + "status": "bound", + "plan_id": 1305595822516651180, "total_cost": null, - "unavailable_reason": "failed to construct QueryPlan: invalid QueryPlan: Planner logical fragment does not match any original query subtree" + "unavailable_reason": null }, { "candidate_id": "asap-explain-v1:candidate:8750d56b757927cf51befebf02d41ed72de02bc2454d8789f943f6a70fffaedd", diff --git a/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json index 4021abe64..09c4bea67 100644 --- a/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json +++ b/docs/evaluation/issue754-human-review/admission/temporal-rate.admission.json @@ -1,25 +1,25 @@ [ { - "candidate_id": "asap-explain-v1:candidate:e9d29c931bba7e8d5126f86ac1c4c1a591a90fe069ae8fcba809556b1431139a", + "candidate_id": "asap-explain-v1:candidate:d4da2ee8e5f050683caa56b943f360336922ce9cbd8513affd8fbc4c4e07bb21", "logical_root_ids": [ - "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" + "asap-explain-v1:root:a021345938b62e6f25a9bcf16b3f41f21fa9b26781c1ec69210e6ef284aee7d6" ], - "physical_candidate_id": "asap-explain-v1:physical:4621c0eac39587cbeeaf3a65cff8aa3dd9bcf440a3a653156b35ee6f8427ecda", + "physical_candidate_id": "asap-explain-v1:physical:6388d959687b00185715017906261a9a5841786cd1a8b9848f2ceb7572da6272", "identity_unavailable_reason": null, "status": "bound", - "plan_id": 1350462962080375017, + "plan_id": 4803518866474131004, "total_cost": null, "unavailable_reason": null }, { - "candidate_id": "asap-explain-v1:candidate:f68f3bbd303d1d8f2211252730af8b5f78e3536ebb17df6f62db9b4f34a8a99a", + "candidate_id": "asap-explain-v1:candidate:c3b669ec93cee2e22119ee1c8ef1759d3c24959cd3875e1df9d54041d90da775", "logical_root_ids": [ - "asap-explain-v1:root:3de28ec83fed908146962ce377302a6f26ee160d2452829b9b97726ac9f6d9e6" + "asap-explain-v1:root:a021345938b62e6f25a9bcf16b3f41f21fa9b26781c1ec69210e6ef284aee7d6" ], - "physical_candidate_id": "asap-explain-v1:physical:328414918d487bf96849fcc640d6692f2de285c9ece96da6663010dcd8a9e580", + "physical_candidate_id": "asap-explain-v1:physical:d484b0f28853d7b9b5a591077b9217403663beabc23968e335f4653a67e3b1ac", "identity_unavailable_reason": null, "status": "bound", - "plan_id": 4863426083951867157, + "plan_id": 11300228965735498754, "total_cost": null, "unavailable_reason": null }, @@ -46,5 +46,17 @@ "plan_id": 3235857638904289352, "total_cost": null, "unavailable_reason": null + }, + { + "candidate_id": "asap-explain-v1:candidate:b29564192b3f53546a0a5677fefe6aa97f3df36acf90c61cc0262af0c349a121", + "logical_root_ids": [ + "asap-explain-v1:root:c4059b9e97db0e50b6438781b6374c58e3d1da7d63164af4422480b731e8a93e" + ], + "physical_candidate_id": "asap-explain-v1:physical:bdccd007f2363cca84a0a47d0cd2b6fdca05bb132415cd3ad0e8cf6ec6a08b39", + "identity_unavailable_reason": null, + "status": "bound", + "plan_id": 17865984201647136845, + "total_cost": null, + "unavailable_reason": null } ] \ No newline at end of file diff --git a/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json index ce9b0b3c3..48790009c 100644 --- a/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json +++ b/docs/evaluation/issue754-human-review/admission/temporal-sum.admission.json @@ -1,13 +1,13 @@ [ { - "candidate_id": "asap-explain-v1:candidate:01edf185ad4f84f95cfcc38bdc8171a8d92452d47bf316b408c9c37928bfee7a", + "candidate_id": "asap-explain-v1:candidate:3ce219336d9871faaf086424ef02d4343c55191100acfe6231f423a572d2282f", "logical_root_ids": [ - "asap-explain-v1:root:056efd03322da673d3c7a0ae350c927e9a19137f81b5dd0faecfedf37cb493d5" + "asap-explain-v1:root:65d44a424a99a04654dca6661114926b74a4a68bc398ddb9057c25a6d3dc02a8" ], - "physical_candidate_id": "asap-explain-v1:physical:87227440f782d4af181eb18fbadfee77d286df4356a8e8c9fa2d26e16fc4931a", + "physical_candidate_id": "asap-explain-v1:physical:156ff9afdfd69bd21810916a38b8e6f058b4666ff81ffce27b13353c67f34177", "identity_unavailable_reason": null, "status": "bound", - "plan_id": 17891999753521262724, + "plan_id": 17810161372573872165, "total_cost": null, "unavailable_reason": null }, diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index d64e7a5ad..71737dccc 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -d26043a11c379eec05dc3ac1e747ba0a580f043e +11c4ac1e599f437664c7be9a84847c7c99f65e8b From 5212b395ca9e37a1ac8b3566382984fb6588a2d0 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:14:26 +0000 Subject: [PATCH 75/80] docs: clarify candidate report identity and regeneration --- docs/evaluation/issue754-human-review/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/evaluation/issue754-human-review/README.md b/docs/evaluation/issue754-human-review/README.md index 8cccc559b..e9d99641a 100644 --- a/docs/evaluation/issue754-human-review/README.md +++ b/docs/evaluation/issue754-human-review/README.md @@ -22,12 +22,10 @@ explaining; its `admission/` directory drops straight onto this one. ## Identities are pinned, and they move -Candidate, physical-candidate and logical-root ids are content-addressed over -the Planner build. They are **not** stable across a Planner bump: changing the -pin rewrites every id here while leaving every status, reason and `plan_id` -untouched. Always regenerate before citing an id; an id from an older revision -does not resolve. The historical synthetic-price exports were removed for this -reason — they named candidates that no longer exist. +Candidate, physical-candidate and logical-root IDs identify the generated +computations and plans. A Planner or binding change can change those identities, +the candidate inventory, or admission results. Regenerate before citing an ID; +use the pinned source revision to reproduce the report. Backend source revision is in [source-commit.txt](source-commit.txt). The Planner revision is whatever `planner-types` pins in the workspace `Cargo.toml`; From 372350b3ff8e8c2bd47e0d88aea36357332fa1cc Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:43:06 +0000 Subject: [PATCH 76/80] fix: validate composed query accuracy before deployment admission --- control_plane/src/physical/compiler.rs | 34 ++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 8b71ac958..2e365eb01 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -1441,7 +1441,12 @@ impl DeploymentPlanCompiler { validate_evidence(&query.query_id, e, &environment)?; } let node = query.selected_plan_root.clone(); - reject_uncertified_readouts(&query.query_id, &node, environment.target)?; + reject_uncertified_readouts( + &query.query_id, + &node, + &query.accuracy_target, + environment.target, + )?; let selected = if super::maintained_population::supported_node(&node) { Vec::new() } else { @@ -1455,7 +1460,12 @@ impl DeploymentPlanCompiler { })? }; if !selected.is_empty() { - reject_uncertified_readouts(&query.query_id, &node, environment.target)?; + reject_uncertified_readouts( + &query.query_id, + &node, + &query.accuracy_target, + environment.target, + )?; } let selected = selected .into_iter() @@ -3995,6 +4005,7 @@ fn validate_executable_subdag(node: &Rc) -> Result<(), String> { fn reject_uncertified_readouts( query_id: &str, root: &Rc, + accuracy: &AccuracyTarget, target: PhysicalDeploymentTarget, ) -> Result<(), CompileError> { let dag = planner_types::post_asap::compile_executable_dag(root).map_err(|error| { @@ -4003,6 +4014,25 @@ fn reject_uncertified_readouts( reason: format!("invalid executable subDAG: {error}"), } })?; + // Leaf guarantees do not certify a composition (for example, division of + // two approximate quantiles). Admission checks the complete query result. + if dag.nodes.iter().any(|node| { + matches!( + node.payload, + planner_types::post_asap::ExecutableOperatorPayload::SummaryEstimate { .. } + ) + }) && root.guarantee.as_ref().is_none_or(|guarantee| { + !asap_aware_mapping::accuracy::AccuracyModel::satisfies( + &DefaultAccuracyModel, + guarantee, + accuracy, + ) + }) { + return Err(CompileError::Query { + query_id: query_id.into(), + reason: "selected query result has no certified accuracy guarantee satisfying the requested accuracy".into(), + }); + } for node in &dag.nodes { if target != PhysicalDeploymentTarget::BackendLocalRemoteWrite && node.guarantee.as_ref().is_some_and(|guarantee| { From bb757f5bab501ee6c11da43cd7e59a11ae9ec905 Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:44:32 +0000 Subject: [PATCH 77/80] fix: retain leaf diagnostics before checking composed accuracy --- control_plane/src/physical/compiler.rs | 39 +++++++++++++------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 2e365eb01..8c1723399 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -4014,25 +4014,6 @@ fn reject_uncertified_readouts( reason: format!("invalid executable subDAG: {error}"), } })?; - // Leaf guarantees do not certify a composition (for example, division of - // two approximate quantiles). Admission checks the complete query result. - if dag.nodes.iter().any(|node| { - matches!( - node.payload, - planner_types::post_asap::ExecutableOperatorPayload::SummaryEstimate { .. } - ) - }) && root.guarantee.as_ref().is_none_or(|guarantee| { - !asap_aware_mapping::accuracy::AccuracyModel::satisfies( - &DefaultAccuracyModel, - guarantee, - accuracy, - ) - }) { - return Err(CompileError::Query { - query_id: query_id.into(), - reason: "selected query result has no certified accuracy guarantee satisfying the requested accuracy".into(), - }); - } for node in &dag.nodes { if target != PhysicalDeploymentTarget::BackendLocalRemoteWrite && node.guarantee.as_ref().is_some_and(|guarantee| { @@ -4063,6 +4044,25 @@ fn reject_uncertified_readouts( }); } } + // Leaf guarantees do not certify a composition (for example, division of + // two approximate quantiles). Admission checks the complete query result. + if dag.nodes.iter().any(|node| { + matches!( + node.payload, + planner_types::post_asap::ExecutableOperatorPayload::SummaryEstimate { .. } + ) + }) && root.guarantee.as_ref().is_none_or(|guarantee| { + !asap_aware_mapping::accuracy::AccuracyModel::satisfies( + &asap_aware_mapping::DefaultAccuracyModel, + guarantee, + accuracy, + ) + }) { + return Err(CompileError::Query { + query_id: query_id.into(), + reason: "selected query result has no certified accuracy guarantee satisfying the requested accuracy".into(), + }); + } Ok(()) } @@ -5870,6 +5870,7 @@ pub(crate) mod tests { let error = reject_uncertified_readouts( "q", &request.queries[0].selected_plan_root, + &request.queries[0].accuracy_target, PhysicalDeploymentTarget::DistributedCollectors, ) .unwrap_err(); From f865488fd4f1da1203e4e39646c207474cd4518d Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:48:25 +0000 Subject: [PATCH 78/80] test: keep cadence fixture outputs independent and accuracy-valid --- control_plane/src/physical/compiler.rs | 37 ++++++++++---------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index 8c1723399..a573d452c 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -7065,35 +7065,26 @@ pub(crate) mod tests { Query("sum_over_time(n[1m])".into()); let (mut request, env) = snapshot.into_physical_compilation_request().unwrap(); let (right, _) = right.into_physical_compilation_request().unwrap(); - let left = request.queries[0].selected_plan_root.clone(); - let right = right.queries[0].selected_plan_root.clone(); - request.queries[0].selected_plan_root = Rc::new(SummaryNode { - expr: SummaryExpr::BinaryOp { - timing: planner_types::post_asap::ExecutionTiming::QueryTime, - lhs: left.clone(), - rhs: right, - operator: planner_types::post_asap::BinaryOperator { - checked_relative_division: false, - checked_finite_division: false, - kind: planner_types::pre_asap::BinaryOpKind::Arithmetic( - planner_types::pre_asap::ArithmeticOpKind::Add, - ), - vector_match: None, - }, - }, - schema: left.schema.clone(), - guarantee: None, - }); - let text = "quantile(0.9, sum_over_time(m[1m])) + sum_over_time(n[1m])"; - request.queries[0].query_string = text.into(); + // These are independent query outputs. Adding an approximate quantile + // to an exact sum would require a separate composed accuracy proof. + let mut raw_query = right.queries[0].clone(); + raw_query.query_id = "raw-query".into(); + request.queries.push(raw_query); request .query_workload .as_mut() .unwrap() .repeating_queries .as_mut() - .unwrap()[0] - .query = Query(text.into()); + .unwrap() + .push( + right + .query_workload + .unwrap() + .repeating_queries + .unwrap() + .remove(0), + ); prepare_window_implementations(&mut request.queries[0], &model, env.target, 0).unwrap(); request.queries[0] .window_realization_candidates From 820970f6ccd848037112c610e29d44bab98026ba Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:48:54 +0000 Subject: [PATCH 79/80] docs: record candidate export after composed accuracy admission --- docs/evaluation/issue754-human-review/source-commit.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/evaluation/issue754-human-review/source-commit.txt b/docs/evaluation/issue754-human-review/source-commit.txt index 71737dccc..e8e03085a 100644 --- a/docs/evaluation/issue754-human-review/source-commit.txt +++ b/docs/evaluation/issue754-human-review/source-commit.txt @@ -1 +1 @@ -11c4ac1e599f437664c7be9a84847c7c99f65e8b +066a263a06486c582a1538bccbba70b96aab131f From 84b8cf4b42659fe034b5124c13bae25f388ec01b Mon Sep 17 00:00:00 2001 From: zzylol Date: Mon, 28 Sep 2026 21:49:58 +0000 Subject: [PATCH 80/80] test: construct both cadence queries through workload planning --- control_plane/src/physical/compiler.rs | 36 ++++++++------------------ 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/control_plane/src/physical/compiler.rs b/control_plane/src/physical/compiler.rs index a573d452c..1abb20168 100644 --- a/control_plane/src/physical/compiler.rs +++ b/control_plane/src/physical/compiler.rs @@ -7060,40 +7060,26 @@ pub(crate) mod tests { interval: RepetitionInterval(45_000), evaluation_phase: planner_types::workload::TimestampMs(0), }; - let mut right = snapshot.clone(); - right.query_workload.repeating_queries.as_mut().unwrap()[0].query = - Query("sum_over_time(n[1m])".into()); - let (mut request, env) = snapshot.into_physical_compilation_request().unwrap(); - let (right, _) = right.into_physical_compilation_request().unwrap(); - // These are independent query outputs. Adding an approximate quantile - // to an exact sum would require a separate composed accuracy proof. - let mut raw_query = right.queries[0].clone(); - raw_query.query_id = "raw-query".into(); - request.queries.push(raw_query); - request + // Keep both outputs independent: composing a quantile with a sum would + // require an additional accuracy proof unrelated to cadence selection. + let mut raw_entry = entry.clone(); + raw_entry.query = Query("sum_over_time(n[1m])".into()); + snapshot .query_workload - .as_mut() - .unwrap() .repeating_queries .as_mut() .unwrap() - .push( - right - .query_workload - .unwrap() - .repeating_queries - .unwrap() - .remove(0), - ); - prepare_window_implementations(&mut request.queries[0], &model, env.target, 0).unwrap(); - request.queries[0] - .window_realization_candidates - .retain(|candidate| { + .push(raw_entry); + let (mut request, env) = snapshot.into_physical_compilation_request().unwrap(); + for query in &mut request.queries { + prepare_window_implementations(query, &model, env.target, 0).unwrap(); + query.window_realization_candidates.retain(|candidate| { matches!( candidate.layout, asap_types::WindowMaterializationLayout::Pane { .. } ) }); + } let plan = DeploymentPlanCompiler.compile_promql(request, env).unwrap(); assert!(plan .precompute_plan