pub enum SplitPhase {
Started,
MarkedSplitting,
ChildrenCreated,
SnapshotPinned,
ChildrenBuilt,
CaughtUp,
Published,
SourceRetired,
}Expand description
The durably persisted phases of one split (spec section 12.5). The executor resumes from the last persisted phase after a crash.
Variants§
Started
The plan is formed and recorded; no meta-plane change yet.
MarkedSplitting
Step 1: the source is marked Splitting at g + 1.
ChildrenCreated
Steps 2-3: split key chosen; child descriptors and layouts created as
Creating learners.
SnapshotPinned
Step 4: the source snapshot is pinned at split_ts.
ChildrenBuilt
Step 5: child state built from the pinned snapshot.
CaughtUp
Steps 6-7: source deltas streamed; the children are caught up, so the routing publication barrier is satisfied.
Published
Steps 8-9: children Active + source Retiring published atomically.
SourceRetired
Steps 10-11: the source is Retired and its replicas torn down.
Terminal.
Implementations§
Trait Implementations§
Source§impl Clone for SplitPhase
impl Clone for SplitPhase
Source§fn clone(&self) -> SplitPhase
fn clone(&self) -> SplitPhase
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 moreimpl Copy for SplitPhase
Source§impl Debug for SplitPhase
impl Debug for SplitPhase
Source§impl<'de> Deserialize<'de> for SplitPhase
impl<'de> Deserialize<'de> for SplitPhase
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
Source§impl Display for SplitPhase
impl Display for SplitPhase
impl Eq for SplitPhase
Source§impl Ord for SplitPhase
impl Ord for SplitPhase
Source§fn cmp(&self, other: &SplitPhase) -> Ordering
fn cmp(&self, other: &SplitPhase) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for SplitPhase
impl PartialEq for SplitPhase
Source§impl PartialOrd for SplitPhase
impl PartialOrd for SplitPhase
Source§impl Serialize for SplitPhase
impl Serialize for SplitPhase
impl StructuralPartialEq for SplitPhase
Auto Trait Implementations§
impl Freeze for SplitPhase
impl RefUnwindSafe for SplitPhase
impl Send for SplitPhase
impl Sync for SplitPhase
impl Unpin for SplitPhase
impl UnsafeUnpin for SplitPhase
impl UnwindSafe for SplitPhase
Blanket Implementations§
impl<T> AppData for Twhere
T: OptionalSend + OptionalSync + 'static + OptionalSerde,
impl<T> AppDataResponse for Twhere
T: OptionalSend + OptionalSync + 'static + OptionalSerde,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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