pub struct FailoverCoordinator;Expand description
The coordinated zero-RPO failover state machine.
Implementations§
Source§impl FailoverCoordinator
impl FailoverCoordinator
Sourcepub fn run(
req: &FailoverRequest,
tx: &mut dyn FailoverTransport,
) -> Result<FailoverOutcome, FailoverError>
pub fn run( req: &FailoverRequest, tx: &mut dyn FailoverTransport, ) -> Result<FailoverOutcome, FailoverError>
Execute the handover described by req, driving the cluster
through tx.
Returns Ok(FailoverOutcome) once the term has been handed over
(cleanly, or forced past a lagging target). Returns
Err(FailoverError::CatchUpTimedOut) only for a coordinated
handover whose target never caught up — in which case writes have
already been resumed on the old primary and nothing was committed
on the target.
Auto Trait Implementations§
impl Freeze for FailoverCoordinator
impl RefUnwindSafe for FailoverCoordinator
impl Send for FailoverCoordinator
impl Sync for FailoverCoordinator
impl Unpin for FailoverCoordinator
impl UnsafeUnpin for FailoverCoordinator
impl UnwindSafe for FailoverCoordinator
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> 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