pub struct Aimd { /* private fields */ }Expand description
Loss-based overload avoidance.
Additive-increase, multiplicative decrease.
Adds available currency when:
- no load-based errors are observed, and
- the utilisation of the current limit is high.
Reduces available concurrency by a factor when load-based errors are detected.
Implementations§
Source§impl Aimd
impl Aimd
pub fn new_with_initial_limit(initial_limit: usize) -> Self
pub fn new(initial_limit: usize, limit_range: RangeInclusive<usize>) -> Self
Sourcepub fn decrease_factor(self, factor: f64) -> Self
pub fn decrease_factor(self, factor: f64) -> Self
Set the multiplier which will be applied when decreasing the limit.
Sourcepub fn increase_by(self, increase: usize) -> Self
pub fn increase_by(self, increase: usize) -> Self
Set the increment which will be applied when increasing the limit.
pub fn with_max_limit(self, max: usize) -> Self
Sourcepub fn with_min_utilisation_threshold(self, min_util: f64) -> Self
pub fn with_min_utilisation_threshold(self, min_util: f64) -> Self
A threshold below which the limit won’t be increased. 0.5 = 50%.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Aimd
impl RefUnwindSafe for Aimd
impl Send for Aimd
impl Sync for Aimd
impl Unpin for Aimd
impl UnwindSafe for Aimd
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
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, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.