Skip to main content

Log

Trait Log 

Source
pub trait Log: Sequence {
    // Required methods
    fn get_batch(
        &self,
        sequence_number: u64,
    ) -> impl Future<Output = Result<Option<Vec<(Bytes, Bytes)>>, String>> + Send;
    fn oldest_retained_batch(
        &self,
    ) -> impl Future<Output = Result<Option<u64>, String>> + Send;
}
Expand description

Retained per-sequence batch-log access for stream replay and lookups.

Required Methods§

Source

fn get_batch( &self, sequence_number: u64, ) -> impl Future<Output = Result<Option<Vec<(Bytes, Bytes)>>, String>> + Send

Return the (key, value) pairs written by the put_batch call that was assigned sequence_number. Return Ok(None) when the batch is not available from this log.

Engines that don’t retain a log return Ok(None) unconditionally, which disables GetBatch and since-cursored Subscribe for that deployment.

The stream service maps unavailable batches to BATCH_NOT_FOUND when they are beyond the visible sequence frontier and BATCH_EVICTED otherwise.

Source

fn oldest_retained_batch( &self, ) -> impl Future<Output = Result<Option<u64>, String>> + Send

Lowest retained batch sequence number, or None when the log is empty. Surfaced in BATCH_EVICTED error details so clients know where to resume from.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§