pub struct KeyTreeSnapshot {
pub root: TreeNode,
pub keys: usize,
pub evicted: u64,
pub unwatched: u64,
}Expand description
An immutable point-in-time view of the observed keyspace.
Carries the table’s O6 counters too, so a render loop can report what the
bound cost without taking the ingest lock: root.subtree_count/bytes/ rate_hz are already the fold StatsTable::totals performs, and keys is
its len. A consumer that pulled this Arc and then locked the table
anyway was walking 50k entries a second time, four times a second, on the
same mutex 100k samples/s need (docs/zero-copy.md).
Fields§
§root: TreeNode§keys: usize§evicted: u64Keys retired to stay within the table’s bound, as of this snapshot.
unwatched: u64Keys retired because their watch was released.
Implementations§
Source§impl KeyTreeSnapshot
impl KeyTreeSnapshot
Sourcepub fn build(stats: &StatsTable) -> KeyTreeSnapshot
pub fn build(stats: &StatsTable) -> KeyTreeSnapshot
Build from the stats table (called on the stats tick, off the per-sample path).
Trait Implementations§
Source§impl Clone for KeyTreeSnapshot
impl Clone for KeyTreeSnapshot
Source§fn clone(&self) -> KeyTreeSnapshot
fn clone(&self) -> KeyTreeSnapshot
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 KeyTreeSnapshot
impl Debug for KeyTreeSnapshot
Source§impl Default for KeyTreeSnapshot
impl Default for KeyTreeSnapshot
Source§fn default() -> KeyTreeSnapshot
fn default() -> KeyTreeSnapshot
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for KeyTreeSnapshot
impl RefUnwindSafe for KeyTreeSnapshot
impl Send for KeyTreeSnapshot
impl Sync for KeyTreeSnapshot
impl Unpin for KeyTreeSnapshot
impl UnsafeUnpin for KeyTreeSnapshot
impl UnwindSafe for KeyTreeSnapshot
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
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