pub struct Counters {Show 18 fields
pub stat_fetch_failures: AtomicU64,
pub usn_batches_truncated: AtomicU64,
pub snapshot_load_failures: AtomicU64,
pub snapshot_save_failures: AtomicU64,
pub deferred_names_unresolved: AtomicU64,
pub corrupt_mft_records: AtomicU64,
pub journal_rescans: AtomicU64,
pub scan_pipeline_fallbacks: AtomicU64,
pub compaction_aborts: AtomicU64,
pub pipe_malformed_frames: AtomicU64,
pub pipe_events_dropped: AtomicU64,
pub pipe_connections_rejected: AtomicU64,
pub deferred_name_cache_overflow: AtomicU64,
pub deferred_name_read_failures: AtomicU64,
pub pipe_results_evicted: AtomicU64,
pub trace_serialize_failures: AtomicU64,
pub walk_read_errors: AtomicU64,
pub walk_depth_truncated: AtomicU64,
}Expand description
Degradation counters — “this happened N times” facts that would otherwise vanish into fallback paths. Zero-cost atomics, always on.
Fields§
§stat_fetch_failures: AtomicU64Times a per-entry size/mtime stat fetch failed.
usn_batches_truncated: AtomicU64Times a USN batch was truncated (records dropped before apply).
snapshot_load_failures: AtomicU64Times a snapshot failed to load (fell back to a full scan).
snapshot_save_failures: AtomicU64Times a snapshot failed to save.
deferred_names_unresolved: AtomicU64Times a deferred $ATTRIBUTE_LIST name could not be resolved.
corrupt_mft_records: AtomicU64Times a corrupt MFT record was encountered and skipped.
journal_rescans: AtomicU64Times the USN journal was rescanned from scratch (gap recovery).
scan_pipeline_fallbacks: AtomicU64Times the scan pipeline fell back to a slower path.
compaction_aborts: AtomicU64A compacted copy was discarded because the index mutated under it — impossible while the volume thread is the only writer; nonzero means that invariant broke somewhere.
pipe_malformed_frames: AtomicU64Pipe server (fmf-service): a frame failed validation and the connection was dropped.
pipe_events_dropped: AtomicU64Pipe server: a subscriber’s bounded event queue overflowed and the oldest event was dropped.
pipe_connections_rejected: AtomicU64Pipe server: a client was turned away at the instance cap.
deferred_name_cache_overflow: AtomicU64Scan: the extension-record name cache hit its capacity; remaining deferred names fall back to per-record disk reads.
deferred_name_read_failures: AtomicU64Scan: a deferred-name disk read failed (the entry keeps a placeholder name until the next rescan).
pipe_results_evicted: AtomicU64Pipe server: a result handle was LRU-evicted at the per-connection cap; its next page fetch answers STALE(“evicted”).
trace_serialize_failures: AtomicU64QueryTrace JSON serialization failed; the response carried an empty
trace (the query itself succeeded).
walk_read_errors: AtomicU64Scope walk (ADR-0024): paths skipped because they could not be read (permission denied or vanished mid-walk) — silent data loss otherwise.
walk_depth_truncated: AtomicU64Scope walk: subtrees not descended because they hit the depth cap.
Implementations§
Source§impl Counters
impl Counters
pub(crate) fn bump_offset_table_rebuild_fallbacks()
pub(crate) fn bump_lazy_perm_rebuild_fallbacks()
Sourcepub fn snapshot(&self) -> CountersSnapshot
pub fn snapshot(&self) -> CountersSnapshot
Read all counters into a plain-integer CountersSnapshot.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Counters
impl RefUnwindSafe for Counters
impl Send for Counters
impl Sync for Counters
impl Unpin for Counters
impl UnsafeUnpin for Counters
impl UnwindSafe for Counters
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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