Rindle docs and package mapSkip to main content

ClusterEvent

Enum ClusterEvent 

Source
pub enum ClusterEvent {
    Update {
        query_id: QueryId,
        update: Update,
    },
    Faulted {
        query_id: QueryId,
        reason: String,
        cause: FaultCause,
    },
    Progressed {
        worker: usize,
        tx_id: TxId,
    },
}
Expand description

Events from a Cluster’s bounded channel. Registration emits a committed Hydrated baseline. Later Changed slices can arrive before the transaction commits. Buffer them until Progressed from the worker that hosts the query. For a combined result across workers, wait for every relevant worker.

Faulted is terminal. Discard provisional changes for that query and re-register for a fresh baseline. Derivation failures, worker loss, and rollback after speculative delivery can fault a query; no further updates follow for that registration.

Faulted lives here, not as an Update variant, because it is an out-of-band lifecycle signal, not an incremental data change — and the single-thread Db never produces it (its ordinary derive errors abort the transaction; a delta-overflow shed re-delivers Update::Hydrated instead).

Variants§

§

Update

A query’s incremental update.

Fields

§query_id: QueryId
§update: Update
§

Faulted

A query was destroyed after a derivation fault on its worker; reason describes the underlying error and cause classifies it — a push-deadline bail must survive to the host distinguishable from an ordinary derive fault (FOLLOWER-LAG-SHED §6.6: it is shed trigger (b)). No further events arrive for this query.

Fields

§query_id: QueryId
§reason: String
§

Progressed

Transaction tx_id committed, and worker emitted all its Changed slices before this marker on the same ordered channel. Receiving this event permits release of that worker’s buffered changes. It does not acknowledge application callbacks or downstream transport delivery.

A combined subscription waits for every relevant worker before advancing cv_min. The marker also advances queries whose results did not change.

Fields

§worker: usize
§tx_id: TxId

Trait Implementations§

Source§

impl Clone for ClusterEvent

Source§

fn clone(&self) -> ClusterEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClusterEvent

Source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
§

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

§

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

§

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