1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright The Infino Authors
//! Observability snapshot.
//!
//! [`Supertable::stats`] returns a [`SupertableStats`] view
//! over the supertable's current load: which manifest version
//! is pinned, how many superfiles and manifest parts are live,
//! and the OS-reported resident memory for this process.
//!
//! Stats are read-once snapshots — no internal counters reset
//! and no allocator hooks engaged. Repeat calls are cheap
//! (one syscall for RSS; everything else is an `ArcSwap::load`
//! plus length reads on the in-memory manifest cache).
//!
//! ## Scope
//!
//! - Manifest-side counters: pinned version, live superfile
//! count, manifest-part counts (referenced + hydrated).
//! - Process-level memory: OS-reported RSS.
//! - Disk-cache aggregates (when a cache is attached): mmap
//! virtual size, configured budget, cumulative cold-fetch
//! and eviction counts, current entry count.
//!
//! Per-coordinator counters (range-GETs issued, pwrites in
//! flight, foreground subscribers satisfied) and a heap-
//! resident split-out from RSS are not exposed; they require
//! query-path integration and an allocator-aware shim
//! respectively.
/// Snapshot of supertable load + process memory. Cheap to
/// produce (one RSS syscall + a manifest snapshot read).
/// Returned by-value; callers can clone or destructure freely.
/// Read the current process's resident set size (RSS) in
/// bytes. Returns `0` if the OS doesn't expose the metric
/// (very rare — `memory-stats` covers macOS, Linux, Windows).
///
/// Cheap: one syscall on Unix (e.g., `task_info` on macOS,
/// read+parse of `/proc/self/statm` on Linux). Allocation-
/// free apart from the optional `String` for the proc
/// filesystem path on Linux (handled inside `memory-stats`).