Skip to main content

SerializableReadSession

Struct SerializableReadSession 

Source
pub struct SerializableReadSession { /* private fields */ }
Expand description

A session that enforces monotonic read consistency via a fixed min_sequence_number floor.

StoreClient itself does not retain any client-global observed sequence. Plain query reads are stateless unless the caller passes an explicit min_sequence_number.

A SerializableReadSession is the explicit consistency mechanism. The first successful unary read seeds the session from the server-reported sequence, and every later read passes that fixed floor so the server guarantees all responses reflect at least that point in the write log.

Streamed query reads (get_many, range_stream) only expose their final sequence in stream trailers, so if one of those is the first successful read, the session is not pinned until that stream is fully drained.

Implementations§

Source§

impl SerializableReadSession

Source

pub fn fixed_sequence(&self) -> Option<u64>

Fixed sequence floor for this session, if one has been established yet.

Fresh sessions start with None unless created via StoreClient::create_session_with_sequence. A first streamed query read (get_many, range_stream) only sets this once the stream is fully drained and trailers are available.

Source

pub async fn get(&self, key: &Key) -> Result<Option<Bytes>, ClientError>

Source

pub async fn get_many( &self, keys: &[&Key], batch_size: u32, ) -> Result<GetManyStream, ClientError>

Source

pub async fn range( &self, start: &Key, end: &Key, limit: usize, ) -> Result<Vec<(Key, Bytes)>, ClientError>

Source

pub async fn range_with_mode( &self, start: &Key, end: &Key, limit: usize, mode: RangeMode, ) -> Result<Vec<(Key, Bytes)>, ClientError>

Source

pub async fn range_stream( &self, start: &Key, end: &Key, limit: usize, batch_size: usize, ) -> Result<RangeStream, ClientError>

Source

pub async fn range_stream_with_mode( &self, start: &Key, end: &Key, limit: usize, batch_size: usize, mode: RangeMode, ) -> Result<RangeStream, ClientError>

Source

pub async fn range_reduce( &self, start: &Key, end: &Key, request: &DomainRangeReduceRequest, ) -> Result<Vec<Option<KvReducedValue>>, ClientError>

Source

pub async fn range_reduce_response( &self, start: &Key, end: &Key, request: &DomainRangeReduceRequest, ) -> Result<ReduceResponse, ClientError>

Trait Implementations§

Source§

impl Clone for SerializableReadSession

Source§

fn clone(&self) -> SerializableReadSession

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 SerializableReadSession

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more