pub struct DeduplicationStats {
pub total_puts: AtomicU64,
pub deduplicated: AtomicU64,
pub bytes_saved: AtomicU64,
}Expand description
Lock-free, atomics-based deduplication statistics.
Wrap in Arc<DeduplicationStats> to share across threads without a mutex.
Fields§
§total_puts: AtomicU64Total put attempts.
deduplicated: AtomicU64Puts skipped because the CID was already present.
bytes_saved: AtomicU64Cumulative byte count of deduplicated (skipped) blocks.
Implementations§
Source§impl DeduplicationStats
impl DeduplicationStats
Sourcepub fn record_put(&self, deduplicated: bool, bytes: usize)
pub fn record_put(&self, deduplicated: bool, bytes: usize)
Record a single put operation.
deduplicated—truewhen the block was skipped (CID already existed).bytes— byte length of the block.
Sourcepub fn snapshot(&self) -> DeduplicationStatsSnapshot
pub fn snapshot(&self) -> DeduplicationStatsSnapshot
Take an instantaneous snapshot of all counters.
Trait Implementations§
Source§impl Debug for DeduplicationStats
impl Debug for DeduplicationStats
Source§impl Default for DeduplicationStats
impl Default for DeduplicationStats
Source§fn default() -> DeduplicationStats
fn default() -> DeduplicationStats
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for DeduplicationStats
impl RefUnwindSafe for DeduplicationStats
impl Send for DeduplicationStats
impl Sync for DeduplicationStats
impl Unpin for DeduplicationStats
impl UnsafeUnpin for DeduplicationStats
impl UnwindSafe for DeduplicationStats
Blanket Implementations§
impl<T> Allocation for T
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> 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