Skip to main content

EntryOf

Type Alias EntryOf 

Source
pub type EntryOf<D> = Entry<<D as DurableRing>::Ids, <D as DurableRing>::Buffer, <D as DurableRing>::Context>;
Expand description

An implementation’s queue entry.

Aliased Type§

pub enum EntryOf<D> {
    Op(OpCompletion<<D as DurableRing>::Ids, <D as DurableRing>::Buffer, <D as DurableRing>::Context>),
    Durable {
        through: Epoch<<D as DurableRing>::Ids>,
    },
    Failed(Failed<<D as DurableRing>::Ids>),
    Blocked {
        through: Epoch<<D as DurableRing>::Ids>,
        by: <<D as DurableRing>::Ids as Identities>::FailureId,
    },
    Abandoned {
        failure: <<D as DurableRing>::Ids as Identities>::FailureId,
        suspect: SuspectSet<<D as DurableRing>::Ids>,
        markings: Vec<Marking<<D as DurableRing>::Ids>>,
    },
    Healed {
        failure: <<D as DurableRing>::Ids as Identities>::FailureId,
        suspect: SuspectSet<<D as DurableRing>::Ids>,
        markings: Vec<Marking<<D as DurableRing>::Ids>>,
    },
    Marked {
        failure: <<D as DurableRing>::Ids as Identities>::FailureId,
        marking: Marking<<D as DurableRing>::Ids>,
    },
    LineageEnded {
        lineage: <<D as DurableRing>::Ids as Identities>::Lineage,
        abandoned_through: Option<<<D as DurableRing>::Ids as Identities>::EpochId>,
    },
}

Variants§

§

Op(OpCompletion<<D as DurableRing>::Ids, <D as DurableRing>::Buffer, <D as DurableRing>::Context>)

A consumer operation completed.

§

Durable

The high-water mark of through’s lineage has reached it.

Fields

§through: Epoch<<D as DurableRing>::Ids>

The epoch reached.

§

Failed(Failed<<D as DurableRing>::Ids>)

A durability failure was observed.

§

Blocked

A request’s flushes succeeded, but an unresolved failure at or below through prevents reporting it. Fixed-size and allocation-free, so producing it is cheap.

Fields

§through: Epoch<<D as DurableRing>::Ids>

The request’s epoch.

§by: <<D as DurableRing>::Ids as Identities>::FailureId

The failure in the way.

§

Abandoned

The consumer abandoned a failure: its final record.

Fields

§failure: <<D as DurableRing>::Ids as Identities>::FailureId

The failure abandoned.

§suspect: SuspectSet<<D as DurableRing>::Ids>

Its suspect set, now declared lost.

§markings: Vec<Marking<<D as DurableRing>::Ids>>

Every marking it gained up to this resolution, in the order observed. A suspect write still in flight now is reported only by its own completion (DI-D-47).

§

Healed

A heal took effect (DI-D-12 (c)): the failure is resolved as healed, and this is its final record.

Fields

§failure: <<D as DurableRing>::Ids as Identities>::FailureId

The failure healed.

§suspect: SuspectSet<<D as DurableRing>::Ids>

Its suspect set.

§markings: Vec<Marking<<D as DurableRing>::Ids>>

Every marking it gained up to this resolution, in the order observed. A suspect write still in flight now is reported only by its own completion (DI-D-47).

§

Marked

A failure not yet resolved gained a marking.

Fields

§failure: <<D as DurableRing>::Ids as Identities>::FailureId

The failure.

§marking: Marking<<D as DurableRing>::Ids>

The marking.

§

LineageEnded

end_lineage took effect: every epoch of lineage not yet durable, through abandoned_through, is abandoned (None if none was pending).

Fields

§lineage: <<D as DurableRing>::Ids as Identities>::Lineage

The lineage ended.

§abandoned_through: Option<<<D as DurableRing>::Ids as Identities>::EpochId>

The highest id abandoned, if any was.