pub trait TwoPhaseJournal: Send + Sync {
// Required methods
fn on_prepared<'a>(
&'a self,
tx_id: &'a [u8],
step: usize,
total: usize,
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>;
fn on_committed<'a>(
&'a self,
tx_id: &'a [u8],
step: usize,
total: usize,
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>;
fn on_completed<'a>(
&'a self,
tx_id: &'a [u8],
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>;
fn load<'a>(
&'a self,
tx_id: &'a [u8],
) -> Pin<Box<dyn Future<Output = Result<Option<TwoPhaseJournalRecord>, TwoPhaseJournalError>> + Send + 'a>>;
}Expand description
Optional journal hook for propose_cross_shard_2pc / resume_cross_shard_2pc.
Required Methods§
Sourcefn on_prepared<'a>(
&'a self,
tx_id: &'a [u8],
step: usize,
total: usize,
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
fn on_prepared<'a>( &'a self, tx_id: &'a [u8], step: usize, total: usize, ) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
Persist progress after a successful prepare step.
Sourcefn on_committed<'a>(
&'a self,
tx_id: &'a [u8],
step: usize,
total: usize,
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
fn on_committed<'a>( &'a self, tx_id: &'a [u8], step: usize, total: usize, ) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
Persist progress after a successful commit step.
Sourcefn on_completed<'a>(
&'a self,
tx_id: &'a [u8],
) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
fn on_completed<'a>( &'a self, tx_id: &'a [u8], ) -> Pin<Box<dyn Future<Output = Result<(), TwoPhaseJournalError>> + Send + 'a>>
Mark the transaction fully committed (may delete the journal row).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".