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
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
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
Memory
Gate 2: the memory budget is spoken for.
Trait Implementations§
impl Copy for Shed
impl Eq for Shed
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§
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.