Struct mz_persist_client::usage::ShardUsageAudit
source · pub struct ShardUsageAudit {
pub current_state_batches_bytes: u64,
pub current_state_rollups_bytes: u64,
pub referenced_not_current_state_bytes: u64,
pub not_leaked_not_referenced_bytes: u64,
pub leaked_bytes: u64,
}
Expand description
A breakdown of the size of various contributions to a shard’s blob (S3) usage.
This is structured as a “funnel”, in which the steps are additive.
Specifically 1=2a+2b
, 2a=3a+3b
, 3a=4a+4b
, 4a=5a+5b
(so the “a“s are
the funnel and the “b“s are places where data splits out of the funnel).
Fields§
§current_state_batches_bytes: u64
5a: Data in batches/parts referenced by the most recent version of state.
current_state_rollups_bytes: u64
5b: Data in rollups referenced by the most recent version of state.
referenced_not_current_state_bytes: u64
4b: Data referenced by a live version of state that is not the most recent.
Possible causes:
- SeqNo hold
- Waiting for a GC run
not_leaked_not_referenced_bytes: u64
3b: Data not referenced by any live version of state.
Possible causes:
- A batch or rollup that’s about to be linked into state
- A batch leaked by a crash, but the writer has not yet been force expired
- A rollup leaked by a crash, but GC has not yet advanced past the SeqNo
leaked_bytes: u64
2b: Data that is eligible for reclamation by a (future) leaked blob cleanup task (database-issues#5018).
Possible causes:
- A batch or rollup written by a process which crashed (or was rolled) before it could be linked into state.
Implementations§
source§impl ShardUsageAudit
impl ShardUsageAudit
sourcepub fn current_state_bytes(&self) -> u64
pub fn current_state_bytes(&self) -> u64
4a: Data referenced by the most recent version of state.
sourcepub fn referenced_bytes(&self) -> u64
pub fn referenced_bytes(&self) -> u64
3a: Data referenced by any live version of state.
sourcepub fn not_leaked_bytes(&self) -> u64
pub fn not_leaked_bytes(&self) -> u64
2a: Data that would not be reclaimed by a (future) leaked blob cleanup task (database-issues#5018).
sourcepub fn total_bytes(&self) -> u64
pub fn total_bytes(&self) -> u64
1: Raw blob (S3) usage.
NB: Due to race conditions between reads of blob and consensus in the usage code, this might be a slight under-counting.
Trait Implementations§
source§impl Clone for ShardUsageAudit
impl Clone for ShardUsageAudit
source§fn clone(&self) -> ShardUsageAudit
fn clone(&self) -> ShardUsageAudit
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ShardUsageAudit
impl Debug for ShardUsageAudit
source§impl Display for ShardUsageAudit
impl Display for ShardUsageAudit
source§impl<T: Debug> From<ShardUsageCumulativeMaybeRacy<'_, T>> for ShardUsageAudit
impl<T: Debug> From<ShardUsageCumulativeMaybeRacy<'_, T>> for ShardUsageAudit
source§fn from(x: ShardUsageCumulativeMaybeRacy<'_, T>) -> Self
fn from(x: ShardUsageCumulativeMaybeRacy<'_, T>) -> Self
Auto Trait Implementations§
impl Freeze for ShardUsageAudit
impl RefUnwindSafe for ShardUsageAudit
impl Send for ShardUsageAudit
impl Sync for ShardUsageAudit
impl Unpin for ShardUsageAudit
impl UnwindSafe for ShardUsageAudit
Blanket Implementations§
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.