pub struct OptimizerDispatcher { /* private fields */ }Expand description
Optimizer dispatcher (brain — selects family & maintains stats).
Implementations§
Source§impl OptimizerDispatcher
impl OptimizerDispatcher
Sourcepub fn new(
cost_model: CostModel,
stats: QueryStats,
config: DispatcherConfig,
) -> Self
pub fn new( cost_model: CostModel, stats: QueryStats, config: DispatcherConfig, ) -> Self
Construct a dispatcher with explicit cost model, stats, and config.
Sourcepub fn cost_model(&self) -> &CostModel
pub fn cost_model(&self) -> &CostModel
Borrow the underlying cost model.
Sourcepub fn stats(&self) -> &QueryStats
pub fn stats(&self) -> &QueryStats
Borrow the accumulated runtime statistics.
Sourcepub fn config(&self) -> &DispatcherConfig
pub fn config(&self) -> &DispatcherConfig
Borrow the dispatcher configuration.
Sourcepub fn cost_model_mut(&mut self) -> &mut CostModel
pub fn cost_model_mut(&mut self) -> &mut CostModel
Mutable access for tests and configuration updates.
Sourcepub fn stats_mut(&mut self) -> &mut QueryStats
pub fn stats_mut(&mut self) -> &mut QueryStats
Mutable access for stats — generally only needed by the wrapper.
Sourcepub fn pick_plan(
&self,
workload: &WorkloadProfile,
) -> Result<DispatchPlan, DispatchError>
pub fn pick_plan( &self, workload: &WorkloadProfile, ) -> Result<DispatchPlan, DispatchError>
Pick a DispatchPlan for the given workload.
Sourcepub fn should_fallback(&self, plan: &DispatchPlan, observed_recall: f32) -> bool
pub fn should_fallback(&self, plan: &DispatchPlan, observed_recall: f32) -> bool
Evaluate whether an observed recall on the primary triggers fallback.
Sourcepub fn record_observation(&mut self, observation: QueryObservation) -> bool
pub fn record_observation(&mut self, observation: QueryObservation) -> bool
Record a query observation and refresh weights when the interval is hit.
Returns true if weights were refreshed during this call.
Sourcepub fn force_refresh_weights(&mut self)
pub fn force_refresh_weights(&mut self)
Force-refresh cost-model weights from the current stats snapshot.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OptimizerDispatcher
impl RefUnwindSafe for OptimizerDispatcher
impl Send for OptimizerDispatcher
impl Sync for OptimizerDispatcher
impl Unpin for OptimizerDispatcher
impl UnsafeUnpin for OptimizerDispatcher
impl UnwindSafe for OptimizerDispatcher
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.