Skip to main content

PeerMigrationManager

Struct PeerMigrationManager 

Source
pub struct PeerMigrationManager { /* private fields */ }
Expand description

Manages peer state migrations for seamless node handoff.

Implementations§

Source§

impl PeerMigrationManager

Source

pub fn new(config: PeerMigrationConfig) -> Self

Create a new migration manager with the given configuration.

Source

pub fn start_migration( &mut self, source: &str, target: &str, total_items: u64, ) -> Result<u64, String>

Start a new migration from source to target.

Returns the migration ID on success, or an error if the concurrent migration limit has been reached or the parameters are invalid.

Source

pub fn add_items( &mut self, migration_id: u64, new_items: Vec<MigrationItem>, ) -> Result<(), String>

Add items to an active migration.

The migration must be in the Transferring state. Each item’s bytes are counted toward the transfer total.

Source

pub fn advance_state( &mut self, migration_id: u64, ) -> Result<PeerMigrationState, String>

Advance the migration to its next state.

State transitions follow: Preparing -> Transferring -> Verifying -> Completed

The Verifying -> Completed transition only succeeds if all items have been transferred (when verify_after_transfer is enabled).

Source

pub fn complete_migration( &mut self, migration_id: u64, checksum: u64, ) -> Result<(), String>

Mark a migration as completed with a final checksum.

The migration must be in the Verifying state. If verify_after_transfer is enabled, the provided checksum is compared against the computed one.

Source

pub fn fail_migration( &mut self, migration_id: u64, reason: &str, ) -> Result<(), String>

Mark a migration as failed with the given reason.

Source

pub fn get_migration(&self, migration_id: u64) -> Option<&PeerMigrationRecord>

Get a reference to a migration record by ID.

Searches both active and completed migrations.

Source

pub fn progress(&self, migration_id: u64) -> Option<f64>

Get the progress of a migration as a value between 0.0 and 1.0.

Returns None if the migration does not exist.

Source

pub fn active_count(&self) -> usize

Return the number of currently active (non-completed, non-failed) migrations.

Source

pub fn cleanup_completed(&mut self, before: u64) -> usize

Remove completed/failed migrations with completed_at before the given timestamp.

Returns the number of records removed.

Source

pub fn stats(&self) -> &PeerMigrationStats

Get a reference to the aggregate migration statistics.

Source

pub fn migrations_for_peer(&self, peer: &str) -> Vec<&PeerMigrationRecord>

Find all migrations (active and completed) involving a given peer, either as source or target.

Source

pub fn config(&self) -> &PeerMigrationConfig

Get the configuration of this manager.

Source

pub fn get_items(&self, migration_id: u64) -> Option<&[MigrationItem]>

Get the stored items for a migration (if still active).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more