Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/devtools/src/bin/sketch_coverage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

use asap_devtools::lower_promql_with_sample_interval;
use asap_frontend_sql::{lower_sql_dialect, SqlCatalog};
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
generate_per_computation_candidates, ComputationCandidate,
};
use asap_types::ir::properties::AccuracyTarget;
Expand Down
8 changes: 4 additions & 4 deletions crates/devtools/src/bin/stage_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -270,12 +270,12 @@ use asap_devtools::planning_stages::{
};
use asap_devtools::SqlCatalog;
use asap_frontend_promql::{counter_function_over_gauge_warnings, promql_metric_names};
use asap_logical_asap_optimization::memo::candidates::{CandidateMemo, CandidateOrigin};
use asap_logical_asap_optimization::memo::enumeration::{compose, enumerate, MemoChoice};
use asap_logical_asap_optimization::memo::MemoGroupId;
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
ComputationCandidate, PerComputationCandidates, PruneReason,
};
use asap_logical_asap_optimization::pass2::memo::candidates::{CandidateMemo, CandidateOrigin};
use asap_logical_asap_optimization::pass2::memo::enumeration::{compose, enumerate, MemoChoice};
use asap_logical_asap_optimization::pass2::memo::MemoGroupId;
use asap_logical_asap_optimization::DeploymentCapabilities;
use asap_plan_selection::{
large_peak_memory_warning, ClusterLimits, ClusterObjective, CostModel, MeasuredOperationCosts,
Expand Down
12 changes: 6 additions & 6 deletions crates/devtools/src/candidate_labels.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
use std::collections::BTreeMap;
use std::rc::Rc;

use asap_logical_asap_optimization::asap_aware_cse::PaneCandidate;
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
ComputationCandidate, PerComputationCandidates,
};
use asap_logical_asap_optimization::workload_candidates::Pass2Candidate;
use asap_logical_asap_optimization::pass2::asap_aware_cse::PaneCandidate;
use asap_logical_asap_optimization::pass2::workload_candidates::Pass2Candidate;
use asap_physical_asap_optimization::PhysicalWorkloadPlan;
use asap_types::ir::physical_export::{PhysicalASAPDAG, PhysicalASAPNodeId};
use asap_types::ir::schema::{FieldDataType, SketchAlgorithm};
Expand Down Expand Up @@ -661,7 +661,7 @@ mod tests {
use super::*;
use crate::planner_layering_examples::example1;
use crate::planning_stages::lower_promql_roots;
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates,
};

Expand Down Expand Up @@ -712,10 +712,10 @@ mod tests {
/// have the same family and pane count (6 × 10s for Q1, 6 × 30s for Q2).
#[test]
fn physical_labels_name_the_pane_chain_maintained_at_ingestion() {
use asap_logical_asap_optimization::asap_aware_cse::{
use asap_logical_asap_optimization::deployment_capabilities::DeploymentCapabilities;
use asap_logical_asap_optimization::pass2::asap_aware_cse::{
pane_candidates, window_composition_pass2_candidates,
};
use asap_logical_asap_optimization::deployment_capabilities::DeploymentCapabilities;
use asap_physical_asap_optimization::optimize_physical_asap;
use asap_types::workload::PlanningWorkload;

Expand Down
6 changes: 3 additions & 3 deletions crates/devtools/src/memo_pricing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
use std::collections::HashMap;
use std::rc::Rc;

use asap_logical_asap_optimization::memo::candidates::CandidateMemo;
use asap_logical_asap_optimization::memo::enumeration::{compose, MemoChoice};
use asap_logical_asap_optimization::memo::MemoGroupId;
use asap_logical_asap_optimization::pass2::memo::candidates::CandidateMemo;
use asap_logical_asap_optimization::pass2::memo::enumeration::{compose, MemoChoice};
use asap_logical_asap_optimization::pass2::memo::MemoGroupId;
use asap_physical_asap_optimization::optimize_physical_asap;
use asap_plan_selection::{select_plan, PlanningModels, Selection, SelectionError};
use asap_types::ir::{OperatorNode, QueryRoot};
Expand Down
2 changes: 1 addition & 1 deletion crates/devtools/src/planner_fuzz/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ impl Planner {
.map_err(|e| format!("witness validation: {e}"))?;
}
let mut roots =
asap_logical_asap_optimization::per_computation_candidates::recompose_guarantees(roots)
asap_logical_asap_optimization::pass1::per_computation_candidates::recompose_guarantees(roots)
.map_err(|e| format!("witness guarantees: {e}"))?;
if let (true, Some(last)) = (last_root_is_key_filter, roots.last_mut()) {
let filter = last.as_operator().ok_or("a scalar root")?;
Expand Down
4 changes: 2 additions & 2 deletions crates/devtools/src/planning_stages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
//! tests, so both see the same candidates, ids and selection.

use asap_frontend_sql::SqlCatalog;
use asap_logical_asap_optimization::per_computation_candidates::PerComputationCandidates;
pub use asap_logical_asap_optimization::workload_candidates::Pass2Candidate;
use asap_logical_asap_optimization::pass1::per_computation_candidates::PerComputationCandidates;
pub use asap_logical_asap_optimization::pass2::workload_candidates::Pass2Candidate;
use asap_physical_asap_optimization::PhysicalWorkloadPlan;
use asap_plan_selection::pass::{run_stage1_to_stage3_with, Stage1ToStage3Search};
pub use asap_plan_selection::pass::{LogicalCandidate, MemoSteps, PrunedCandidate};
Expand Down
8 changes: 4 additions & 4 deletions crates/devtools/tests/memo_pricing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ use asap_devtools::memo_pricing::{price_choices, PricedChoice, SelectedBaseline}
use asap_devtools::planner_layering_examples::example1;
use asap_devtools::planning_stages::{lower_promql_roots, run_default_search_over};
use asap_logical_asap_optimization::deployment_capabilities::DeploymentCapabilities;
use asap_logical_asap_optimization::memo::candidates::{try_populate_pass1, CandidateMemo};
use asap_logical_asap_optimization::memo::enumeration::enumerate;
use asap_logical_asap_optimization::memo::LogicalMemo;
use asap_logical_asap_optimization::per_computation_candidates::generate_per_computation_candidates;
use asap_logical_asap_optimization::pass1::per_computation_candidates::generate_per_computation_candidates;
use asap_logical_asap_optimization::pass2::memo::candidates::{try_populate_pass1, CandidateMemo};
use asap_logical_asap_optimization::pass2::memo::enumeration::enumerate;
use asap_logical_asap_optimization::pass2::memo::LogicalMemo;
use asap_plan_selection::{PlanSelectionSettings, PlanningModels};
use asap_planner::PlannerExecutorCompileCheck;
use asap_types::ir::properties::AccuracyTarget;
Expand Down
6 changes: 3 additions & 3 deletions crates/devtools/tests/stage_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1735,7 +1735,7 @@ fn scans_projecting_different_labels_are_shared() {
let entries: Vec<_> = workload.query_workload.entries().collect();
let data = workload.data_workload.as_ref().unwrap();
let roots = lower_promql_roots(&workload).unwrap();
use asap_logical_asap_optimization::asap_aware_cse::with_union_scan_labels;
use asap_logical_asap_optimization::pass2::asap_aware_cse::with_union_scan_labels;
let widened = with_union_scan_labels(&roots).unwrap().unwrap();
// Identical sub-DAGs made one node, as the memo's groups are: the
// widened scan, and the two instant selectors' identical range.
Expand Down Expand Up @@ -2337,8 +2337,8 @@ fn memo_section_lists_each_step_the_selected_choice_and_the_enumeration() {
#[test]
fn composed_selected_choice_is_the_selected_stage1_dag() {
use asap_devtools::planning_stages::run_default_search_over;
use asap_logical_asap_optimization::memo::enumeration::compose;
use asap_logical_asap_optimization::per_computation_candidates::recompose_guarantees;
use asap_logical_asap_optimization::pass1::per_computation_candidates::recompose_guarantees;
use asap_logical_asap_optimization::pass2::memo::enumeration::compose;
use asap_types::ir::flat::flatten;
let ratio: PlanningWorkload =
serde_json::from_str(&std::fs::read_to_string(MEMO_RATIO_OF_QUANTILES).unwrap()).unwrap();
Expand Down
2 changes: 1 addition & 1 deletion crates/executor/tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub fn selected_dag(
/// computations at their default choice. A bounded solver archive need not
/// contain every algorithm that executor binding tests need to exercise.
pub fn computation_candidates(root: Rc<OperatorNode>) -> Vec<Rc<OperatorNode>> {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates,
};
let inventory = generate_per_computation_candidates(vec![(0, QueryRoot::Operator(root))])
Expand Down
2 changes: 1 addition & 1 deletion crates/frontend-promql/tests/count_planning.rs
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ fn cms_count_updates_total_ten_for_zero_positive_and_negative_samples() {
#[test]
#[should_panic(expected = "does not compose")]
fn logical_candidates_fails_on_a_candidate_that_does_not_compose() {
use asap_logical_asap_optimization::per_computation_candidates::PerComputationCandidateError;
use asap_logical_asap_optimization::pass1::per_computation_candidates::PerComputationCandidateError;
support::require_composed_operator_candidates(vec![
asap_plan_selection::search::LogicalCandidate {
id: "invalid-composition".into(),
Expand Down
2 changes: 1 addition & 1 deletion crates/frontend-promql/tests/support.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ pub fn logical_candidates(root: Rc<OperatorNode>) -> Vec<Rc<OperatorNode>> {
}

fn local_computation_candidates(root: Rc<OperatorNode>) -> Result<Vec<Rc<OperatorNode>>, String> {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates,
};
use asap_types::ir::QueryRoot;
Expand Down
2 changes: 1 addition & 1 deletion crates/frontend-sql/tests/frequency_l2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ async fn batch_lowering_recognizes_frequency_l2() {
/// recognized L2 intent.
#[tokio::test]
async fn stage1_offers_exact_and_summary_l2_candidates() {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
generate_per_computation_candidates, ComputationCandidate,
};
use asap_types::ir::QueryRoot;
Expand Down
32 changes: 16 additions & 16 deletions crates/integration-tests/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ pub mod planning {
/// Exact computation and each explicit single-target rule application.
/// This fixture catalog is independent of the bounded MILP's visited plans.
pub fn explicit_local_candidates(root: Rc<OperatorNode>) -> Vec<Rc<OperatorNode>> {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates,
};
let local =
Expand Down Expand Up @@ -252,7 +252,7 @@ pub mod planning {
root: Rc<OperatorNode>,
family: asap_types::ir::schema::SketchAlgorithm,
) -> Rc<OperatorNode> {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates, ComputationCandidate,
};
let local =
Expand Down Expand Up @@ -305,13 +305,13 @@ pub mod planning {
pub fn expanded_memo(
roots: Vec<(usize, QueryRoot)>,
entries: &[asap_types::workload::QueryWorkloadEntry],
) -> asap_logical_asap_optimization::memo::candidates::CandidateMemo {
use asap_logical_asap_optimization::memo::{
candidates::try_populate_pass1, state_configurations::PaneWidthDomain,
) -> asap_logical_asap_optimization::pass2::memo::candidates::CandidateMemo {
use asap_logical_asap_optimization::pass1::per_computation_candidates::generate_per_computation_candidates;
use asap_logical_asap_optimization::pass2::memo::{
candidates::try_populate_pass1, shared_configurations::PaneWidthDomain,
state_groups::expand_concrete_summary_state_groups_in_domain,
window_candidates::add_local_window_composition, LogicalMemo,
};
use asap_logical_asap_optimization::per_computation_candidates::generate_per_computation_candidates;
let initial = LogicalMemo::from_roots(&roots);
let inventory = generate_per_computation_candidates(roots).unwrap();
let mut memo = try_populate_pass1(initial, &inventory).unwrap();
Expand All @@ -325,11 +325,11 @@ pub mod planning {
/// each query's first root group's DAG, every group `choice` does not
/// name implemented by its first candidate.
pub fn compose_memo_plan(
memo: &asap_logical_asap_optimization::memo::candidates::CandidateMemo,
memo: &asap_logical_asap_optimization::pass2::memo::candidates::CandidateMemo,
queries: usize,
choice: &std::collections::BTreeMap<usize, usize>,
) -> Vec<Rc<OperatorNode>> {
use asap_logical_asap_optimization::memo::{enumeration::compose, MemoGroupId};
use asap_logical_asap_optimization::pass2::memo::{enumeration::compose, MemoGroupId};
let choice = choice
.iter()
.map(|(&group, &index)| (MemoGroupId(group as u32), index))
Expand Down Expand Up @@ -363,7 +363,7 @@ pub mod planning {
// Composed nodes lose their guarantees; recompose them as
// `run_explicit_candidates` does.
let roots =
asap_logical_asap_optimization::per_computation_candidates::recompose_guarantees(
asap_logical_asap_optimization::pass1::per_computation_candidates::recompose_guarantees(
roots,
)
.unwrap_or_else(|error| panic!("{name} composes guarantees: {error}"));
Expand Down Expand Up @@ -399,10 +399,10 @@ pub mod planning {
/// alone) candidates `keep` accepts; those of the topmost group (the
/// fewest child edges below `q`'s root) first.
pub fn own_choices(
memo: &asap_logical_asap_optimization::memo::candidates::CandidateMemo,
memo: &asap_logical_asap_optimization::pass2::memo::candidates::CandidateMemo,
q: usize,
keep: impl Fn(
&asap_logical_asap_optimization::memo::candidates::ImplementationCandidate,
&asap_logical_asap_optimization::pass2::memo::candidates::ImplementationCandidate,
) -> bool,
) -> Vec<(usize, usize)> {
let mut found: Vec<_> = memo
Expand Down Expand Up @@ -453,7 +453,7 @@ pub mod planning {
/// - `shared{g}`: every query reads the summary state group `g`, its own
/// estimate or a regrouping merge of it, when every query can.
pub fn select_rollup(
memo: &asap_logical_asap_optimization::memo::candidates::CandidateMemo,
memo: &asap_logical_asap_optimization::pass2::memo::candidates::CandidateMemo,
queries: usize,
entries: &[asap_types::workload::QueryWorkloadEntry],
data: &DataWorkload,
Expand All @@ -463,7 +463,7 @@ pub mod planning {
.map(|q| {
let found = own_choices(memo, q, |c| {
c.origin
== asap_logical_asap_optimization::memo::candidates::CandidateOrigin::Pass1
== asap_logical_asap_optimization::pass2::memo::candidates::CandidateOrigin::Pass1
&& builds(&c.node)
});
let top = found
Expand Down Expand Up @@ -579,13 +579,13 @@ pub mod planning {
/// Apply sharing rules and Stage 2 to a small explicitly supplied fixture set,
/// then price it with the production evaluator. No workload product search.
pub fn explicit_assignment_plans(
inventory: asap_logical_asap_optimization::per_computation_candidates::PerComputationCandidates<usize>,
inventory: asap_logical_asap_optimization::pass1::per_computation_candidates::PerComputationCandidates<usize>,
assignments: Vec<Vec<usize>>,
entries: &[asap_types::workload::QueryWorkloadEntry],
data: &asap_types::workload::DataWorkload,
) -> asap_plan_selection::Stage1ToStage3Run<usize> {
use asap_logical_asap_optimization::per_computation_candidates::recompose_guarantees;
use asap_logical_asap_optimization::workload_candidates::stage1_candidates_of_choice;
use asap_logical_asap_optimization::pass1::per_computation_candidates::recompose_guarantees;
use asap_logical_asap_optimization::pass2::workload_candidates::stage1_candidates_of_choice;
use asap_plan_selection::{search::LogicalCandidate, PlanningModels, Stage1ToStage3Run};
let mut logical = Vec::new();
let mut physical = Vec::new();
Expand Down
12 changes: 6 additions & 6 deletions crates/integration-tests/tests/deployment_capabilities.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ fn assert_removes_exactly(
roots: Vec<asap_types::ir::QueryRoot>,
deployment: &DeploymentCapabilities,
) {
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates,
};
let local =
generate_per_computation_candidates(roots.into_iter().enumerate().collect()).unwrap();
let enumerate_local = |inventory: &asap_logical_asap_optimization::per_computation_candidates::PerComputationCandidates<usize>| {
let enumerate_local = |inventory: &asap_logical_asap_optimization::pass1::per_computation_candidates::PerComputationCandidates<usize>| {
let mut result = Vec::new();
for (target, options) in inventory.targets.iter().enumerate() {
for choice in 0..options.choice_count() {
Expand Down Expand Up @@ -126,12 +126,12 @@ fn pattern_b_with_p50() -> asap_types::workload::PlanningWorkload {

/// One explicitly shared KLL pane chain, passed through normal physical rules.
fn shared_pane_configurations(deployment: &DeploymentCapabilities) -> Run {
use asap_logical_asap_optimization::asap_aware_cse::{
pane_candidates, window_composition_pass2_candidates,
};
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
compose_logical_candidate, generate_per_computation_candidates, ComputationCandidate,
};
use asap_logical_asap_optimization::pass2::asap_aware_cse::{
pane_candidates, window_composition_pass2_candidates,
};
use asap_types::ir::QueryRoot;
let workload = pattern_b_with_p50();
let original = lower_promql(&workload);
Expand Down
6 changes: 3 additions & 3 deletions crates/integration-tests/tests/finer_aggregate_reuse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ use asap_devtools::planner_fuzz::{read_seed_file, FuzzSettings, FuzzWorkload, Pl
use asap_devtools::planning_stages::run_search_over;
use asap_executor::values::Value;
use asap_logical_asap_optimization::{
memo::{
pass1::per_computation_candidates::generate_per_computation_candidates,
pass2::memo::{
candidates::{try_populate_pass1, CandidateMemo, CandidateOrigin, ImplementationCandidate},
state_configurations::PaneWidthDomain,
shared_configurations::PaneWidthDomain,
state_groups::expand_concrete_summary_state_groups_in_domain,
LogicalMemo,
},
per_computation_candidates::generate_per_computation_candidates,
};
use asap_types::ir::{ASAPOp, NonASAPOp, OperatorNode};
use serde_json::json;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use asap_devtools::planner_layering_examples::{
use asap_executor::physical_planner::promql_rows;
use asap_integration_tests::fixtures::lower_promql;
use asap_integration_tests::planning::explicit_assignment_plans;
use asap_logical_asap_optimization::per_computation_candidates::{
use asap_logical_asap_optimization::pass1::per_computation_candidates::{
generate_per_computation_candidates, PerComputationCandidates,
};
use asap_plan_selection::{
Expand Down
Loading
Loading