Enum agreed::config::CatchUpCancellationPolicy [−][src]
pub enum CatchUpCancellationPolicy { Timeout { timeout_milliseconds: u64, }, }
Expand description
Policy governing when to cancel a node catch up process.
If a node is not up-to-date to immediately join the cluster, then we need to
make it catch up. In the meantime, the leader enters CatchingUp
state, in which no
other configuration change may happen. Since we expect such catch-up processes to be fast,
this is not an issue.
However, in rare cases, the node we want to add might struggle to get up to speed. In such
cases, we cannot wait in CatchingUp
state forever. Thus, we somehow need to determine when
to cancel and fail the catch-up process. This is guided by this enum.
As of now, we only have a single policy (based on a static timeout), but other policies might be added in the future (such as the dynamic one, described in the Raft dissertation).
Please note, that even though we cancel the catch-up state, the affected node (that we wanted to add to the cluster) will still remain a Non-Voting member, and receive updates. Thus, clients are free to reattempt the configuration change later.
Variants
The catch-up process will fail if it takes more time than the specified milliseconds.
Show fields
Fields of Timeout
timeout_milliseconds: u64
Trait Implementations
impl Clone for CatchUpCancellationPolicy
[src]
impl Clone for CatchUpCancellationPolicy
[src]fn clone(&self) -> CatchUpCancellationPolicy
[src]
fn clone(&self) -> CatchUpCancellationPolicy
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for CatchUpCancellationPolicy
[src]
impl Debug for CatchUpCancellationPolicy
[src]impl Default for CatchUpCancellationPolicy
[src]
impl Default for CatchUpCancellationPolicy
[src]impl<'de> Deserialize<'de> for CatchUpCancellationPolicy
[src]
impl<'de> Deserialize<'de> for CatchUpCancellationPolicy
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl Serialize for CatchUpCancellationPolicy
[src]
impl Serialize for CatchUpCancellationPolicy
[src]Auto Trait Implementations
impl RefUnwindSafe for CatchUpCancellationPolicy
impl Send for CatchUpCancellationPolicy
impl Sync for CatchUpCancellationPolicy
impl Unpin for CatchUpCancellationPolicy
impl UnwindSafe for CatchUpCancellationPolicy
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
impl<T> WithSubscriber for T
[src]fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
fn with_current_subscriber(self) -> WithDispatch<Self>
[src]
fn with_current_subscriber(self) -> WithDispatch<Self>
[src]Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,