pub enum Compensation {
RemoveLearner {
group_id: u64,
peer_id: u64,
},
RemoveVoter {
group_id: u64,
peer_id: u64,
},
RestoreLeaderHint {
group_id: u64,
peer_id: u64,
},
RemoveGhostStub {
vshard_id: u32,
},
}Expand description
A single compensation step emitted as part of a MigrationAbort entry.
Applied by CacheApplier in the order listed; all must succeed or
the abort itself is fatal.
Variants§
RemoveLearner
Remove a learner that was added by Phase 1 but never promoted.
Safe to apply idempotently: if the learner is already absent,
the routing-table remove_group_member call is a no-op.
RemoveVoter
Remove a voter that was promoted in Phase 2 but the cut-over never committed.
Safe to apply idempotently for the same reason as RemoveLearner.
RestoreLeaderHint
Restore the routing hint for a group leader.
Applied when the source-leader was changed by a Phase 2
PromoteLearner but the LeadershipTransfer never committed.
Tells the routing table to point back to the original leader.
RemoveGhostStub
Remove a ghost stub that was speculatively inserted before the cut-over commit, and the commit subsequently failed.
Trait Implementations§
Source§impl Clone for Compensation
impl Clone for Compensation
Source§fn clone(&self) -> Compensation
fn clone(&self) -> Compensation
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 Compensation
impl Debug for Compensation
Source§impl<'de> Deserialize<'de> for Compensation
impl<'de> Deserialize<'de> for Compensation
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>,
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for Compensation
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for Compensation
Source§impl PartialEq for Compensation
impl PartialEq for Compensation
Source§fn eq(&self, other: &Compensation) -> bool
fn eq(&self, other: &Compensation) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Compensation
impl Serialize for Compensation
Source§impl ToMessagePack for Compensation
impl ToMessagePack for Compensation
impl Eq for Compensation
impl StructuralPartialEq for Compensation
Auto Trait Implementations§
impl Freeze for Compensation
impl RefUnwindSafe for Compensation
impl Send for Compensation
impl Sync for Compensation
impl Unpin for Compensation
impl UnsafeUnpin for Compensation
impl UnwindSafe for Compensation
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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>
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
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.