pub struct SweepStats {
pub files: u64,
pub documents: u64,
pub profiles: u64,
pub actions: u64,
pub failed: u64,
}Expand description
What one sweep touched. Logged at info on every completed run, because a
sweep that silently does nothing and a sweep that rebuilt the whole tenant
otherwise look identical from outside — and the difference is exactly what an
operator needs when a search comes up empty.
Fields§
§files: u64Files whose own 'F' row was rewritten.
documents: u64Files whose deep 'D' parts were re-exported and rebuilt.
profiles: u64§actions: u64§failed: u64Objects that failed and were skipped.
Reported and logged, but not an error: a sweep that traversed
everything and could not index three objects has still done everything a
re-run would do. As a failure, one permanently broken object (a corrupt
redb document, an oversized CRDT log) would hold back INDEX_REV_KEY
forever, costing a whole-node re-sweep on every retry and a full tenant
rebuild on every boot. Only an aborted sweep — a listing or paging error,
which propagates with ? — leaves the stamp untouched.
Trait Implementations§
Source§impl Clone for SweepStats
impl Clone for SweepStats
Source§fn clone(&self) -> SweepStats
fn clone(&self) -> SweepStats
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SweepStats
Source§impl Debug for SweepStats
impl Debug for SweepStats
Source§impl Default for SweepStats
impl Default for SweepStats
Source§fn default() -> SweepStats
fn default() -> SweepStats
Auto Trait Implementations§
impl Freeze for SweepStats
impl RefUnwindSafe for SweepStats
impl Send for SweepStats
impl Sync for SweepStats
impl Unpin for SweepStats
impl UnsafeUnpin for SweepStats
impl UnwindSafe for SweepStats
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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 moreimpl<M> Meta for Mwhere
M: Default,
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().