Struct TreeStats
pub struct TreeStats {Show 27 fields
pub blob_count: u32,
pub total_space_used: u64,
pub total_gap_space: u64,
pub total_slots: u64,
pub total_compactions: u64,
pub total_tombstones: u64,
pub total_blob_edges: u64,
pub leaf_blob_count: u32,
pub max_blob_depth: u32,
pub total_blob_depth: u64,
pub max_blob_fill_per_mille: u32,
pub blobs: Vec<BlobStats>,
pub bm_dirty_count: usize,
pub bm_pending_delete_count: usize,
pub bm_cache_hits: u64,
pub bm_cache_misses: u64,
pub bm_optimistic_restarts: u64,
pub bm_range_restarts: u64,
pub bm_walker_ops: u64,
pub bm_walker_blob_hops: u64,
pub bm_max_blob_hops: u64,
pub bm_max_cross_blob_depth: u64,
pub bm_spillovers: u64,
pub bm_merges: u64,
pub route_cache: RouteCacheStats,
pub journal: Option<JournalStats>,
pub checkpointer: Option<CheckpointerStats>,
}Expand description
Tree-wide aggregate counters from Tree::stats.
blobs carries the per-blob breakdown in BFS order from the
root; the totals are pre-summed for the common “how big is the
tree?” question. All bytes / counts are sums over blobs.
Fields§
§blob_count: u32Number of distinct blobs reachable from the tree root.
total_space_used: u64Sum of space_used over every blob.
total_gap_space: u64Sum of gap_space over every blob.
total_slots: u64Sum of num_slots over every blob.
total_compactions: u64Sum of compact_times over every blob (lifetime
compactions across the whole tree).
total_tombstones: u64Sum of tombstone_leaf_cnt over every blob.
total_blob_edges: u64Sum of num_ext_blobs over every blob. In a tree-shaped
blob graph this is the number of cross-blob edges.
leaf_blob_count: u32Number of reachable blobs with no installed BlobNode
children.
max_blob_depth: u32Maximum cross-blob depth from the root blob. Root-only
trees report 0.
total_blob_depth: u64Sum of per-blob depths, used to derive
Self::avg_blob_depth.
max_blob_fill_per_mille: u32Highest data-area occupancy among reachable blobs, in
per-mille units (1000 = full data area).
blobs: Vec<BlobStats>Per-blob breakdown in BFS order from the root.
bm_dirty_count: usizeNumber of blobs currently dirty in the BufferManager —
modified in cache but not yet flushed to store. With the
background checkpointer enabled this stays bounded by the
checkpoint cadence; without it, it tracks the user’s
explicit Tree::checkpoint schedule.
bm_pending_delete_count: usizeNumber of blobs queued for deferred store deletion —
children unlinked by an erase walker’s SubtreeGone path
or by a merge pass, waiting for the next checkpoint round
(or Tree::checkpoint) to issue the actual
store.delete_blob + manifest re-sync.
bm_cache_hits: u64Cumulative cache lookups served from BM cache without
going to the inner store. Read by external observers to
derive a hit rate (bm_cache_hits / (bm_cache_hits + bm_cache_misses)); higher is better.
bm_cache_misses: u64Cumulative cache lookups that fell through to
inner_store.read_blob because the entry was absent or
evicted. Tracks cold-start + eviction churn.
bm_optimistic_restarts: u64Cumulative wait-free read restarts in Tree::get — each
one means a concurrent writer lapped an optimistic
snapshot and the lookup walked the tree from scratch.
Spikes here indicate writer/reader contention.
bm_range_restarts: u64Cumulative range-iterator cursor restarts. Each one means a range/list cursor detected a rewritten blob on its descent path and rebuilt from its monotonic lower bound.
bm_walker_ops: u64Cumulative mutation walker invocations (insert_multi /
erase_multi). rename and atomic count their inner walker
calls separately.
bm_walker_blob_hops: u64Total blob hops across mutation walker invocations. Divide
by Self::bm_walker_ops for the average.
bm_max_blob_hops: u64Maximum blob hops observed for one mutation walker call.
bm_max_cross_blob_depth: u64Largest key-depth at which a mutation walker entered a blob. This is a cross-blob boundary-depth signal, not a full per-node ART-depth trace.
bm_spillovers: u64Successful foreground spillover events.
bm_merges: u64BlobNode children folded back into parents by manual
compact or background merge passes.
route_cache: RouteCacheStatsRoot route-cache counters for large path-shaped trees.
journal: Option<JournalStats>WAL/journal worker counters, or None for memory trees and
caller-supplied stores opened without holt’s WAL.
checkpointer: Option<CheckpointerStats>Background checkpointer telemetry, or None if the bg
thread group isn’t running (the default; opt in via
crate::CheckpointConfig::enabled).
Implementations§
§impl TreeStats
impl TreeStats
pub fn bm_avg_blob_hops(&self) -> f64
pub fn bm_avg_blob_hops(&self) -> f64
Average blob hops per mutation walker invocation.
pub fn avg_blob_depth(&self) -> f64
pub fn avg_blob_depth(&self) -> f64
Average cross-blob graph depth across reachable blobs.
pub fn leaf_blob_ratio(&self) -> f64
pub fn leaf_blob_ratio(&self) -> f64
Fraction of reachable blobs that are leaves in the blob graph.
pub fn avg_blob_fill_ratio(&self) -> f64
pub fn avg_blob_fill_ratio(&self) -> f64
Average data-area occupancy across reachable blobs.
pub fn max_blob_fill_ratio(&self) -> f64
pub fn max_blob_fill_ratio(&self) -> f64
Maximum data-area occupancy among reachable blobs.