pub struct ForceRemoveAudit {
pub member: NodeIdentity,
pub capability_holder: String,
pub reason: String,
pub promotions: Vec<(CollectionId, RangeId, NodeIdentity, bool)>,
pub unrecoverable: Vec<(CollectionId, RangeId)>,
pub replica_copies_dropped: usize,
}Expand description
The durable audit evidence of a forced removal: who authorized it, why, which
ranges moved (and whether each may have lost writes), which were unrecoverable,
and how many stale replica copies were dropped. ADR 0037 requires a forced
transition to leave exactly this trail; its Display is a
single audit line.
Fields§
§member: NodeIdentity§capability_holder: String§reason: String§promotions: Vec<(CollectionId, RangeId, NodeIdentity, bool)>(collection, range_id, new_owner, covers_watermark) for each forced
promotion. A false flag marks a range that may have lost committed writes.
unrecoverable: Vec<(CollectionId, RangeId)>§replica_copies_dropped: usizeImplementations§
Source§impl ForceRemoveAudit
impl ForceRemoveAudit
Sourcepub fn has_potential_write_loss(&self) -> bool
pub fn has_potential_write_loss(&self) -> bool
Whether any forced promotion could not prove it covered the commit watermark — i.e. the forced removal may have lost committed writes.
Trait Implementations§
Source§impl Clone for ForceRemoveAudit
impl Clone for ForceRemoveAudit
Source§fn clone(&self) -> ForceRemoveAudit
fn clone(&self) -> ForceRemoveAudit
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ForceRemoveAudit
impl Debug for ForceRemoveAudit
Source§impl Display for ForceRemoveAudit
impl Display for ForceRemoveAudit
impl Eq for ForceRemoveAudit
Source§impl PartialEq for ForceRemoveAudit
impl PartialEq for ForceRemoveAudit
Source§fn eq(&self, other: &ForceRemoveAudit) -> bool
fn eq(&self, other: &ForceRemoveAudit) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ForceRemoveAudit
Auto Trait Implementations§
impl Freeze for ForceRemoveAudit
impl RefUnwindSafe for ForceRemoveAudit
impl Send for ForceRemoveAudit
impl Sync for ForceRemoveAudit
impl Unpin for ForceRemoveAudit
impl UnsafeUnpin for ForceRemoveAudit
impl UnwindSafe for ForceRemoveAudit
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
Mutably borrows from an owned value. Read more
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request