pub struct CollectionCost {
pub total_ms: u64,
pub sqlite_ms: u64,
pub wal_file_stat_ms: u64,
pub wal_pin_census_ms: u64,
pub wal_pin_sidecar_ms: u64,
pub wal_pin_census_budget_ms: Option<u64>,
pub wal_pin_census_budget_exhausted: bool,
}Expand description
What this report cost to assemble, per section, in milliseconds.
db_diagnostics is the verb an operator reaches for when the system feels
slow, and its own cost was measured varying more than five-fold between
consecutive calls against one unchanged store on one box. A surface that
varies that much has to say which part varied; otherwise the reader is left
to guess, and the cheapest guess is “the store is stalled”, which is the
conclusion this verb exists to test rather than to suggest.
Every field is wall-clock and measured in this process, so it includes time spent waiting on a contended machine. That is deliberate: the contention is the thing being reported.
Fields§
§total_ms: u64Whole-report assembly, from the first section to the last.
sqlite_ms: u64SQLite-side inspection: the PASSIVE checkpoint probe, page composition, the graph-edge ledger counts and the FTS5 segment records.
wal_file_stat_ms: u64stat of the WAL file. The cheap sibling of the census; reported so the
comparison beside it is legible rather than asserted.
wal_pin_census_ms: u64The OS holder census: a walk of every process on the host.
wal_pin_sidecar_ms: u64The sidecar directory enumeration the census is reconciled against.
wal_pin_census_budget_ms: Option<u64>The wall-clock budget the census was given, or None when it ran
unbounded. An Option rather than a sentinel 0 because a producer
that failed to record a budget would write 0, which is exactly the
value “unbounded” would have claimed.
wal_pin_census_budget_exhausted: boolWhether the census stopped because that budget was spent. When true the
holder list is partial by design and wal_pin.census.status is
incomplete for that reason and no other.
Trait Implementations§
Source§impl Clone for CollectionCost
impl Clone for CollectionCost
impl Copy for CollectionCost
Source§impl Debug for CollectionCost
impl Debug for CollectionCost
impl Eq for CollectionCost
Source§impl PartialEq for CollectionCost
impl PartialEq for CollectionCost
Source§impl Serialize for CollectionCost
impl Serialize for CollectionCost
impl StructuralPartialEq for CollectionCost
Auto Trait Implementations§
impl Freeze for CollectionCost
impl RefUnwindSafe for CollectionCost
impl Send for CollectionCost
impl Sync for CollectionCost
impl Unpin for CollectionCost
impl UnsafeUnpin for CollectionCost
impl UnwindSafe for CollectionCost
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
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