Skip to main content

Shed

Enum Shed 

Source
pub enum Shed {
    Concurrency {
        limit: usize,
        in_flight: usize,
    },
    LaneFull {
        lane: Lane,
        ceiling: usize,
        limit: usize,
    },
    Reserved {
        occupied: usize,
        limit: usize,
        reserve: usize,
    },
    Memory {
        class: OpClass,
        wanted: u64,
        reserved: u64,
        budget: u64,
    },
}
Expand description

Why the governor shed an operation.

Variants§

§

Concurrency

Gate 1: the governed concurrency limit is full.

Fields

§limit: usize

The limit in force at the moment of the refusal — the governed one, which is not the configured one and moves on its own. Reported rather than assumed, or an operator reads a number in a log that matches nothing in a config file.

§in_flight: usize

How many operations were in flight.

§

LaneFull

Gate 1b: this operation’s lane is full, though the server as a whole is not. The other lanes’ floors are what is holding the slots; see Lane::floor.

Fields

§lane: Lane

The lane that was full.

§ceiling: usize

What that lane may hold under the governed limit right now.

§limit: usize

The governed server-wide limit.

§

Reserved

Gate 1c: the claim asked for a slot the caller had told this governor to hold back (Governor::claim_reserving), though the server as a whole is not full.

Its own variant rather than Shed::Concurrency with a smaller limit in it, because reporting a reduced limit as the limit is the exact failure the unbounded listener is about: an operator would read limit: 2 out of a log on a box configured for 256 and conclude the gate was broken. Both numbers travel, and the caller that supplied the reserve is the one that gets to name the rule.

Fields

§occupied: usize

Operations in flight when the claim failed.

§limit: usize

The governed server-wide limit — the real one, unreduced.

§reserve: usize

How many slots of it the caller asked to be held back from this claim.

§

Memory

Gate 2: the memory budget is spoken for.

Fields

§class: OpClass

The class whose estimate did not fit.

§wanted: u64

What [OpClass::estimated_bytes] asked for.

§reserved: u64

What was already reserved.

§budget: u64

The budget.

Trait Implementations§

Source§

impl Clone for Shed

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Shed

Source§

impl Debug for Shed

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Shed

Source§

impl PartialEq for Shed

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Shed

Auto Trait Implementations§

§

impl Freeze for Shed

§

impl RefUnwindSafe for Shed

§

impl Send for Shed

§

impl Sync for Shed

§

impl Unpin for Shed

§

impl UnsafeUnpin for Shed

§

impl UnwindSafe for Shed

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more