Skip to main content

PostgresFaultState

Struct PostgresFaultState 

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

Durable PostgreSQL retry-reservation state for one step execution.

A reservation is one short metadata-only transaction that runs after a known rollback and before backoff. It reads the retained state under a row lock, requires the supplied ordinal to follow the persisted one, and advances the phase retry count, the acknowledged rollback count, and the retained envelope with an optimistic version check. A stale or concurrent writer loses instead of spending the same ordinal twice.

The retained state is cleared by the enlisted chunk commit, because the commit that advances the checkpoint supersedes the whole generation.

Implementations§

Source§

impl PostgresFaultState

Source

pub fn new(repository: PostgresJobRepository, policy: &FaultPolicy) -> Self

Constructs durable state for the step that installs policy.

The runtime binds the step execution before the first chunk attempt.

Trait Implementations§

Source§

impl Debug for PostgresFaultState

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FaultStateStore for PostgresFaultState

Source§

fn bind( &self, context: ChunkTransactionContext, ) -> BoxFuture<'_, Result<(), FaultStateError>>

Binds durable state to the step execution about to run. Read more
Source§

fn reserved_ordinal( &self, key: RetryKey, ) -> BoxFuture<'_, Result<Option<RetryOrdinal>, FaultStateError>>

Returns the ordinal already reserved for key, when one exists.
Source§

fn reserve( &self, reservation: RetryReservation, ) -> BoxFuture<'_, Result<(), FaultStateError>>

Commits one reservation, consuming its ordinal.
Source§

fn resolve(&self, _key: RetryKey) -> BoxFuture<'_, Result<(), FaultStateError>>

Marks key resolved because its unit of work succeeded or was skipped. Read more
Source§

fn clear_resolved(&self) -> BoxFuture<'_, Result<(), FaultStateError>>

Clears every resolved key in the commit that advances the checkpoint.
Source§

fn unresolved(&self) -> BoxFuture<'_, Result<u32, FaultStateError>>

Returns the number of retained unresolved keys.

Auto Trait Implementations§

Blanket Implementations§

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<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<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> 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<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