Skip to main content

CacheResidencyTelemetry

Struct CacheResidencyTelemetry 

Source
pub struct CacheResidencyTelemetry {
    pub report: CacheResidencyReport,
    /* private fields */
}
Expand description

Backend-neutral collector for bounded cache activity and snapshot assembly.

Backends update the aggregate report while inspecting their native storage, then provide exact current per-layer totals to Self::finalize_snapshot. Historical layer identities and overflow accounting remain runtime-owned.

Fields§

§report: CacheResidencyReport

Aggregate current and cumulative report fields.

Implementations§

Source§

impl CacheResidencyTelemetry

Source

pub fn new(queue_capacity: usize) -> Self

Creates an empty collector with the effective I/O queue capacity.

Source

pub fn layer_activity_mut( &mut self, global_layer: usize, ) -> &mut CacheLayerResidencyStats

Returns cumulative activity storage for one identified layer.

The first bounded set of layer identities remains stable for the life of the collector. Later identities are folded into an exact overflow row.

Source

pub fn unassigned_activity_mut(&mut self) -> &mut CacheLayerResidencyStats

Returns cumulative activity storage for work without a layer identity.

Source

pub fn finalize_snapshot( &mut self, current: BTreeMap<usize, CacheLayerResidencyStats>, device_budget_bytes: u64, host_budget_bytes: u64, disk_budget_bytes: Option<u64>, )

Merges exact current per-layer totals with cumulative runtime activity.

Peak aggregate fields advance only when current usage is within the configured limit, matching successful-admission semantics.

Trait Implementations§

Source§

impl Debug for CacheResidencyTelemetry

Source§

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

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

impl Default for CacheResidencyTelemetry

Source§

fn default() -> CacheResidencyTelemetry

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

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<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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.