pub struct ReaderContentionDiagnostics {Show 16 fields
pub configured_reader_cap: usize,
pub configured_checkout_timeout_ms: u64,
pub configured_busy_timeout_ms: u64,
pub reader_admission_capacity: usize,
pub available_reader_admission_slots: usize,
pub reader_acquisitions: u64,
pub pooled_reader_checkouts: u64,
pub standalone_reader_opens: u64,
pub infrastructure_standalone_reader_opens: u64,
pub reader_checkout_timeouts: u64,
pub active_pooled_reader_checkouts: u64,
pub peak_active_pooled_reader_checkouts: u64,
pub completed_pooled_reader_checkouts: u64,
pub max_completed_reader_hold_micros: u64,
pub max_completed_reader_hold_operation: Option<&'static str>,
pub reader_replacement_open_failures: u64,
}Expand description
One typed snapshot of reader route, saturation, and hold-lifecycle signals.
Every field is pool-scoped. Monotonic counters reset only when the
ConnectionPool is reconstructed; the active value is point-in-time.
Infrastructure standalone opens are kept separate from request traffic so
a boot/schema probe cannot make a hot path look like it churned readers.
Fields§
§configured_reader_cap: usizeReader connections requested in this pool’s configuration. The effective admission capacity below can be smaller in degraded mode.
configured_checkout_timeout_ms: u64Configured wait for a reader slot, in milliseconds.
configured_busy_timeout_ms: u64Configured SQLite busy-handler wait, in milliseconds. This is separate from the reader-slot checkout deadline.
reader_admission_capacity: usizeConfigured total reader admission budget shared by pooled readers and explicit raw-SQL read transactions.
available_reader_admission_slots: usizePoint-in-time permits not held when this snapshot was captured.
reader_acquisitions: u64Successful request-path acquisitions (pooled plus enumerated standalone request exceptions; infrastructure excluded).
pooled_reader_checkouts: u64Successful bounded pooled-reader checkouts.
standalone_reader_opens: u64Successful request-path standalone reader opens. Under ADR-165 Slice 2 this is limited to the explicit raw-SQL read-transaction exception.
infrastructure_standalone_reader_opens: u64Successful standalone opens owned by an enumerated boot/diagnostic infrastructure exception.
reader_checkout_timeouts: u64Pool-wide reader-admission waits that exhausted checkout_timeout
before work began. Cooperative request cancellation is excluded.
active_pooled_reader_checkouts: u64Pooled reader guards live when the snapshot was captured.
peak_active_pooled_reader_checkouts: u64Highest observed concurrent pooled-reader guard count.
completed_pooled_reader_checkouts: u64Pooled guards that completed return/reset.
max_completed_reader_hold_micros: u64Longest completed hold, including return/reset, in microseconds.
max_completed_reader_hold_operation: Option<&'static str>The typed-store operation that held the checkout this maximum came
from. None means that hold came through a route carrying no
operation name — the pool’s own internal checkout — which is the
answer to “which read was it”, not a gap in the reading (#2793).
reader_replacement_open_failures: u64A disqualified pooled-reader return whose replacement connection then
also failed to open, permanently shrinking the physical pool by one
slot below max_readers. Non-zero here means the pool has fewer
physical reader connections than configured.
Trait Implementations§
Source§impl Clone for ReaderContentionDiagnostics
impl Clone for ReaderContentionDiagnostics
impl Copy for ReaderContentionDiagnostics
Source§impl Debug for ReaderContentionDiagnostics
impl Debug for ReaderContentionDiagnostics
impl Eq for ReaderContentionDiagnostics
impl StructuralPartialEq for ReaderContentionDiagnostics
Auto Trait Implementations§
impl Freeze for ReaderContentionDiagnostics
impl RefUnwindSafe for ReaderContentionDiagnostics
impl Send for ReaderContentionDiagnostics
impl Sync for ReaderContentionDiagnostics
impl Unpin for ReaderContentionDiagnostics
impl UnsafeUnpin for ReaderContentionDiagnostics
impl UnwindSafe for ReaderContentionDiagnostics
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