Skip to main content

TableWriteHandle

Trait TableWriteHandle 

Source
pub trait TableWriteHandle:
    Debug
    + Send
    + Sync {
    // Required methods
    fn append(
        &self,
        write_ts: Timestamp,
        advance_to: Timestamp,
        commands: Vec<(GlobalId, Vec<TableData>)>,
    ) -> Receiver<Result<(), StorageError>>;
    fn register(
        &self,
        register_ts: Timestamp,
        tables: Vec<TableRegistration>,
    ) -> Receiver<Result<(), StorageError>>;
    fn forget(
        &self,
        forget_ts: Timestamp,
        ids: Vec<GlobalId>,
    ) -> Receiver<Result<(), StorageError>>;
}
Expand description

Queues txns-shard operations on the storage table worker.

The adapter’s group committer is the sole runtime caller, preserving FIFO order across appends, registrations, and forgets. On StorageError::InvalidUppers, the writable implementation restores its bookkeeping and the caller must retry at a fresh timestamp.

Required Methods§

Source

fn append( &self, write_ts: Timestamp, advance_to: Timestamp, commands: Vec<(GlobalId, Vec<TableData>)>, ) -> Receiver<Result<(), StorageError>>

Appends commands at write_ts and advances all registered tables to advance_to.

Source

fn register( &self, register_ts: Timestamp, tables: Vec<TableRegistration>, ) -> Receiver<Result<(), StorageError>>

Registers tables at register_ts.

Source

fn forget( &self, forget_ts: Timestamp, ids: Vec<GlobalId>, ) -> Receiver<Result<(), StorageError>>

Forgets registered ids at forget_ts, ignoring unknown IDs.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§