mz_storage_client::controller

Trait StorageTxn

Source
pub trait StorageTxn<T> {
    // Required methods
    fn get_collection_metadata(&self) -> BTreeMap<GlobalId, ShardId>;
    fn insert_collection_metadata(
        &mut self,
        s: BTreeMap<GlobalId, ShardId>,
    ) -> Result<(), StorageError<T>>;
    fn delete_collection_metadata(
        &mut self,
        ids: BTreeSet<GlobalId>,
    ) -> Vec<(GlobalId, ShardId)>;
    fn get_unfinalized_shards(&self) -> BTreeSet<ShardId>;
    fn insert_unfinalized_shards(
        &mut self,
        s: BTreeSet<ShardId>,
    ) -> Result<(), StorageError<T>>;
    fn mark_shards_as_finalized(&mut self, shards: BTreeSet<ShardId>);
    fn get_txn_wal_shard(&self) -> Option<ShardId>;
    fn write_txn_wal_shard(
        &mut self,
        shard: ShardId,
    ) -> Result<(), StorageError<T>>;
}
Expand description

Provides an interface for the storage controller to read and write data that is recorded elsewhere.

Data written to the implementor of this trait should make a consistent view of the data available through StorageMetadata.

Required Methods§

Source

fn get_collection_metadata(&self) -> BTreeMap<GlobalId, ShardId>

Retrieve all of the visible storage metadata.

The value of this map should be treated as opaque.

Source

fn insert_collection_metadata( &mut self, s: BTreeMap<GlobalId, ShardId>, ) -> Result<(), StorageError<T>>

Add new storage metadata for a collection.

Subsequent calls to StorageTxn::get_collection_metadata must include this data.

Source

fn delete_collection_metadata( &mut self, ids: BTreeSet<GlobalId>, ) -> Vec<(GlobalId, ShardId)>

Remove the metadata associated with the identified collections.

Subsequent calls to StorageTxn::get_collection_metadata must not include these keys.

Source

fn get_unfinalized_shards(&self) -> BTreeSet<ShardId>

Retrieve all of the shards that are no longer in use by an active collection but are yet to be finalized.

Source

fn insert_unfinalized_shards( &mut self, s: BTreeSet<ShardId>, ) -> Result<(), StorageError<T>>

Insert the specified values as unfinalized shards.

Source

fn mark_shards_as_finalized(&mut self, shards: BTreeSet<ShardId>)

Mark the specified shards as finalized, deleting them from the unfinalized shard collection.

Source

fn get_txn_wal_shard(&self) -> Option<ShardId>

Get the txn WAL shard for this environment if it exists.

Source

fn write_txn_wal_shard(&mut self, shard: ShardId) -> Result<(), StorageError<T>>

Store the specified shard as the environment’s txn WAL shard.

The implementor should error if the shard is already specified.

Implementors§