pub struct SchedulerConfig {
pub max_peers: usize,
pub base_requests_per_peer: u32,
pub max_requests_per_peer: u32,
pub min_requests_per_peer: u32,
pub backpressure_threshold: f64,
pub failure_penalty: f64,
pub latency_weight: f64,
pub success_weight: f64,
}Expand description
Tuning knobs for the scheduler.
Fields§
§max_peers: usizeMaximum number of peers tracked simultaneously.
base_requests_per_peer: u32Baseline requests per peer used as the multiplier in weight → allocation.
max_requests_per_peer: u32Hard cap on allocated requests per peer per epoch.
min_requests_per_peer: u32Minimum number of requests a live peer always receives (unless Overloaded).
backpressure_threshold: f64When the computed success rate of a peer drops below this value the peer
is still kept but its weight is penalised via failure_penalty.
failure_penalty: f64Multiplicative penalty applied to a peer’s weight when its success rate
is below backpressure_threshold.
latency_weight: f64Relative importance of latency in the weight formula.
success_weight: f64Relative importance of success rate in the weight formula.
Trait Implementations§
Source§impl Clone for SchedulerConfig
impl Clone for SchedulerConfig
Source§fn clone(&self) -> SchedulerConfig
fn clone(&self) -> SchedulerConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 SchedulerConfig
impl Debug for SchedulerConfig
Auto Trait Implementations§
impl Freeze for SchedulerConfig
impl RefUnwindSafe for SchedulerConfig
impl Send for SchedulerConfig
impl Sync for SchedulerConfig
impl Unpin for SchedulerConfig
impl UnsafeUnpin for SchedulerConfig
impl UnwindSafe for SchedulerConfig
Blanket Implementations§
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more