pub enum QuorumError {
Timeout {
target_lsn: u64,
elapsed_ms: u128,
acked_regions: HashSet<String>,
},
InsufficientReplicas {
required: usize,
connected: usize,
},
MissingRegions {
missing: Vec<String>,
},
}Expand description
Errors raised by the quorum coordinator. The write itself succeeded on the primary WAL — these errors signal that replica acknowledgement did not reach quorum and the caller must decide whether to surface the failure or continue anyway.
Variants§
Timeout
Timed out waiting for enough acks. Includes the set of regions that had replied (for observability / fallback routing).
InsufficientReplicas
Not enough replicas are currently connected to ever satisfy the configured quorum. Returned immediately (no wait) so the caller can fail fast instead of hanging on a timeout.
MissingRegions
Required-regions mode is configured but one or more regions have zero connected replicas. Reported up front so the health-check layer can alert on “regional partition” before writes stall.
Trait Implementations§
Source§impl Clone for QuorumError
impl Clone for QuorumError
Source§fn clone(&self) -> QuorumError
fn clone(&self) -> QuorumError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for QuorumError
impl Debug for QuorumError
Source§impl Display for QuorumError
impl Display for QuorumError
Source§impl Error for QuorumError
impl Error for QuorumError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for QuorumError
impl RefUnwindSafe for QuorumError
impl Send for QuorumError
impl Sync for QuorumError
impl Unpin for QuorumError
impl UnsafeUnpin for QuorumError
impl UnwindSafe for QuorumError
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<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 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>
T in a tonic::Request