pub trait CollectionManagement: Debug + Send + StorageController {
    fn append_to_managed_collection<'life0, 'async_trait>(
        &'life0 mut self,
        global_id: GlobalId,
        updates: Vec<(Row, Diff)>
    ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn truncate_managed_collection<'life0, 'async_trait>(
        &'life0 mut self,
        global_id: GlobalId
    ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn initialize_shard_mapping<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn register_shard_mapping<'life0, 'async_trait>(
        &'life0 mut self,
        global_id: GlobalId
    ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }

Required Methods

Appends updates to the collection correlated with global_id at a timestamp decided on by the implementor.

Truncates the collection associated with global_id.

Initializes the data expressing which global IDs correlate to which shards. Necessary because we cannot write any of these mappings that we discover before the shard mapping collection exists.

Writes a new global ID, shard ID pair to the appropriate collection.

Implementors