pub struct PhaseProgressUpdate {Show 19 fields
pub exec_id: u64,
pub name: String,
pub labels: String,
pub cursor_name: String,
pub cursor_extent: u64,
pub daemon: bool,
pub rows_consumed: u64,
pub rows_total: u64,
pub fibers: usize,
pub ops_started: u64,
pub ops_finished: u64,
pub ops_ok: u64,
pub skips: u64,
pub errors: u64,
pub retries: u64,
pub ops_per_sec: f64,
pub adapter_counters: Vec<(String, u64, f64)>,
pub rows_per_batch: f64,
pub relevancy: Vec<RelevancyLive>,
}Expand description
Live metrics snapshot for progress updates.
Fields§
§exec_id: u64The execution this update belongs to (SRD-88 exec_id,
SRD-100 §4). With name+labels it forms the live routing
key, so concurrent executions of the same phase route to
distinct ActivePhase slots. 1 for the single-execution
case (SRD-88 A1).
name: StringPhase name this update belongs to — matches the name
passed to RunObserver::phase_starting. Present so
observers that track multiple concurrent phases can route
the update to the correct per-phase slot.
labels: StringPhase dimensional labels (e.g. profile=label_00, k=10) —
together with name this uniquely identifies one phase
iteration.
cursor_name: String§cursor_extent: u64§daemon: boolSRD-82 Part 6 — whether this phase runs as a DAEMON (off the foreground budget, open-extent cursor, stopped by its group’s foreground completing). Display consumers exclude daemon phases from AGGREGATE progress — the shared footer gutter bar averages the non-daemon phases — since a daemon’s percent-of-budget is not meaningful progress toward the run.
rows_consumed: u64Cursor ordinals CONSUMED so far for a data-driven phase
(polydat DataSourceFactory::global_consumed()) — the
authoritative row-level progress. 0 for non-cursor phases
(plain cycles:), where the display keeps the op-denominated
cycles: chip.
rows_total: u64Cursor ordinal EXTENT for a data-driven phase
(global_extent()). 0 for non-cursor phases — distinct from
cursor_extent, which falls back to the phase’s cycles:
bound for sourceless phases; this stays 0 so the display can
tell a declared cursor from the synthesized range(0, cycles)
every phase gets. rows_total > 0 is the “show rows:” signal.
fibers: usize§ops_started: u64§ops_finished: u64§ops_ok: u64§skips: u64SKIPPED ops (skips_total) — excluded from the ok% denominator
(a skip is neither a success nor a failure).
errors: u64§retries: u64§ops_per_sec: f64§adapter_counters: Vec<(String, u64, f64)>§rows_per_batch: f64§relevancy: Vec<RelevancyLive>Live relevancy aggregates — one entry per relevancy metric (e.g.
recall@10). Each has a moving-window mean over the last N
recall calculations and a whole-activity running mean.
Trait Implementations§
Source§impl Clone for PhaseProgressUpdate
impl Clone for PhaseProgressUpdate
Auto Trait Implementations§
impl Freeze for PhaseProgressUpdate
impl RefUnwindSafe for PhaseProgressUpdate
impl Send for PhaseProgressUpdate
impl Sync for PhaseProgressUpdate
impl Unpin for PhaseProgressUpdate
impl UnsafeUnpin for PhaseProgressUpdate
impl UnwindSafe for PhaseProgressUpdate
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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