pub struct MigrationStateTable { /* private fields */ }Expand description
In-memory mirror of _cluster.migration_state.
Mutations go through MigrationStateTable methods which update both
the in-memory HashMap and the backing redb table atomically.
The Arc<Mutex<_>> wrapper allows the table to be shared across the
CacheApplier and MigrationExecutor without a lifetime tie-in.
ClusterCatalog is held as Arc to survive actor hand-offs.
Implementations§
Source§impl MigrationStateTable
impl MigrationStateTable
pub const TABLE: TableDefinition<'static, &'static str, &'static [u8]>
Sourcepub fn load_all(&mut self) -> Result<()>
pub fn load_all(&mut self) -> Result<()>
Load all persisted checkpoints from redb into the in-memory map.
Called once at startup before recovery runs.
Sourcepub fn upsert(&mut self, row: PersistedMigrationCheckpoint) -> Result<()>
pub fn upsert(&mut self, row: PersistedMigrationCheckpoint) -> Result<()>
Upsert a checkpoint row (in-memory + redb).
Idempotent: if the exact (migration_id, phase, attempt) tuple
is already stored, this is a no-op.
Sourcepub fn remove(&mut self, migration_id: &MigrationId) -> Result<()>
pub fn remove(&mut self, migration_id: &MigrationId) -> Result<()>
Remove a checkpoint row (in-memory + redb). No-op if not present.
Sourcepub fn all_checkpoints(&self) -> Vec<PersistedMigrationCheckpoint>
pub fn all_checkpoints(&self) -> Vec<PersistedMigrationCheckpoint>
Get a snapshot of all in-flight checkpoints (in-memory view).
Sourcepub fn get(
&self,
migration_id: &MigrationId,
) -> Option<&PersistedMigrationCheckpoint>
pub fn get( &self, migration_id: &MigrationId, ) -> Option<&PersistedMigrationCheckpoint>
Lookup the latest checkpoint for a migration ID.
Auto Trait Implementations§
impl Freeze for MigrationStateTable
impl !RefUnwindSafe for MigrationStateTable
impl Send for MigrationStateTable
impl Sync for MigrationStateTable
impl Unpin for MigrationStateTable
impl UnsafeUnpin for MigrationStateTable
impl !UnwindSafe for MigrationStateTable
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> 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.