pub struct ParallelSearchConfig {
pub enabled: bool,
pub max_depth: usize,
pub max_states_per_layer: usize,
pub pruning_threshold: f64,
pub time_budget_ms: u64,
pub use_time_budget: bool,
pub verbose: bool,
}Expand description
Configuration for parallel join order search
Fields§
§enabled: boolEnable parallel BFS search (vs sequential DFS)
max_depth: usizeMaximum depth to explore with parallel BFS (tables with >max_depth use DFS)
max_states_per_layer: usizeMaximum states per layer before pruning
pruning_threshold: f64Prune states with cost > best * threshold
time_budget_ms: u64Maximum time budget for join order search (milliseconds) Default: 1000ms for OLAP workloads
use_time_budget: boolWhether to use time-bounded search (vs table-count cutoff)
verbose: boolEnable verbose logging of search statistics
Implementations§
Source§impl ParallelSearchConfig
impl ParallelSearchConfig
Sourcepub fn with_table_count(num_tables: usize) -> Self
pub fn with_table_count(num_tables: usize) -> Self
Create a config with adaptive time budget based on table count
The time budget increases with query complexity:
- 1-3 tables: 500ms (simple queries)
- 4-5 tables: 1000ms (typical OLAP queries)
- 6-7 tables: 1500ms (complex multi-way joins like Q7)
- 8+ tables: 2000ms (very complex queries like Q21)
This adaptive approach gives more time to complex queries that need it while keeping simple queries fast.
Trait Implementations§
Source§impl Clone for ParallelSearchConfig
impl Clone for ParallelSearchConfig
Source§fn clone(&self) -> ParallelSearchConfig
fn clone(&self) -> ParallelSearchConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ParallelSearchConfig
impl Debug for ParallelSearchConfig
Auto Trait Implementations§
impl Freeze for ParallelSearchConfig
impl RefUnwindSafe for ParallelSearchConfig
impl Send for ParallelSearchConfig
impl Sync for ParallelSearchConfig
impl Unpin for ParallelSearchConfig
impl UnwindSafe for ParallelSearchConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more