pub enum MigrationCheckpointPayload {
AddLearner {
vshard_id: u32,
source_node: u64,
target_node: u64,
source_group: u64,
write_pause_budget_us: u64,
started_at_hlc: Hlc,
},
CatchUp {
vshard_id: u32,
learner_log_index_at_add: u64,
},
PromoteLearner {
vshard_id: u32,
target_node: u64,
source_group: u64,
},
LeadershipTransfer {
vshard_id: u32,
target_is_voter: bool,
new_leader_node_id: u64,
source_group: u64,
},
Cutover {
vshard_id: u32,
new_leader_node_id: u64,
source_group: u64,
},
Complete {
vshard_id: u32,
actual_pause_us: u64,
ghost_stub_installed: bool,
},
}Expand description
Payload written to the metadata Raft group at each phase boundary.
Each variant carries enough information to resume the migration from scratch if the coordinator crashes between two phases.
Variants§
AddLearner
Written just before propose_conf_change(AddLearner).
Fields
CatchUp
Written just after AddLearner conf-change commits.
Fields
PromoteLearner
Written just after PromoteLearner conf-change commits.
LeadershipTransfer
Written just before propose_and_wait(LeadershipTransfer).
Fields
Cutover
Written after propose_and_wait(LeadershipTransfer) returns
success (cut-over committed).
Complete
Written after the ghost stub is installed and save_ghosts succeeds.
Implementations§
Trait Implementations§
Source§impl Clone for MigrationCheckpointPayload
impl Clone for MigrationCheckpointPayload
Source§fn clone(&self) -> MigrationCheckpointPayload
fn clone(&self) -> MigrationCheckpointPayload
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 MigrationCheckpointPayload
impl Debug for MigrationCheckpointPayload
Source§impl<'de> Deserialize<'de> for MigrationCheckpointPayload
impl<'de> Deserialize<'de> for MigrationCheckpointPayload
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<'__msgpack_de> FromMessagePack<'__msgpack_de> for MigrationCheckpointPayload
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for MigrationCheckpointPayload
Source§impl PartialEq for MigrationCheckpointPayload
impl PartialEq for MigrationCheckpointPayload
Source§fn eq(&self, other: &MigrationCheckpointPayload) -> bool
fn eq(&self, other: &MigrationCheckpointPayload) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for MigrationCheckpointPayload
impl StructuralPartialEq for MigrationCheckpointPayload
Auto Trait Implementations§
impl Freeze for MigrationCheckpointPayload
impl RefUnwindSafe for MigrationCheckpointPayload
impl Send for MigrationCheckpointPayload
impl Sync for MigrationCheckpointPayload
impl Unpin for MigrationCheckpointPayload
impl UnsafeUnpin for MigrationCheckpointPayload
impl UnwindSafe for MigrationCheckpointPayload
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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<'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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.