pub struct QuorumPolicy {
pub n: usize,
pub w: usize,
pub ack_timeout: Duration,
pub clock_skew_warn: Duration,
}Expand description
Operator-tunable quorum policy. See ADR-0001 § Model for the complete contract.
Fields§
§n: usizeTotal peer count — local node + remotes. Must be >= 1.
w: usizeRequired acks including the local commit. Clamped to [1, n]
at construction via QuorumPolicy::new.
ack_timeout: DurationDeadline for the remote-ack collection phase. Times out with
QuorumError::QuorumNotMet { reason: Timeout }.
clock_skew_warn: DurationWarning threshold for peer clock skew. Exceeding this does not fail the quorum; it surfaces in the clock-skew histogram.
Implementations§
Trait Implementations§
Source§impl Clone for QuorumPolicy
impl Clone for QuorumPolicy
Source§fn clone(&self) -> QuorumPolicy
fn clone(&self) -> QuorumPolicy
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 QuorumPolicy
impl Debug for QuorumPolicy
Source§impl<'de> Deserialize<'de> for QuorumPolicy
impl<'de> Deserialize<'de> for QuorumPolicy
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for QuorumPolicy
impl RefUnwindSafe for QuorumPolicy
impl Send for QuorumPolicy
impl Sync for QuorumPolicy
impl Unpin for QuorumPolicy
impl UnsafeUnpin for QuorumPolicy
impl UnwindSafe for QuorumPolicy
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
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 more