pub struct RoutingTable { /* private fields */ }Expand description
Driver-consumable routing table derived from a topology advertisement plus the current replication term.
Implementations§
Source§impl RoutingTable
impl RoutingTable
Sourcepub fn from_membership(membership: ClusterMembership, term: u64) -> Self
pub fn from_membership(membership: ClusterMembership, term: u64) -> Self
Build a routing table from a merged membership snapshot and the
current replication term. The primary becomes the write
endpoint; the advertised replicas become the read pool.
Sourcepub fn write_endpoint(&self) -> &WriteEndpoint
pub fn write_endpoint(&self) -> &WriteEndpoint
The write endpoint — the current primary, keyed by term.
Sourcepub fn read_endpoints(&self, bookmark: BookmarkTarget) -> Vec<ReadEndpoint>
pub fn read_endpoints(&self, bookmark: BookmarkTarget) -> Vec<ReadEndpoint>
The read endpoints with per-node frontier and bookmark
eligibility computed against bookmark. Order matches the
advertisement.
Sourcepub fn route_causal_read(
&self,
bookmark: BookmarkTarget,
opts: &CausalReadOptions,
waiter: &mut dyn BookmarkWaiter,
) -> RouteDecision
pub fn route_causal_read( &self, bookmark: BookmarkTarget, opts: &CausalReadOptions, waiter: &mut dyn BookmarkWaiter, ) -> RouteDecision
Resolve a causal read with bounded-wait-then-fallback.
Never errors: a lagging target degrades to a fallback hop (another caught-up replica, else the primary).
Trait Implementations§
Source§impl Clone for RoutingTable
impl Clone for RoutingTable
Source§fn clone(&self) -> RoutingTable
fn clone(&self) -> RoutingTable
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RoutingTable
impl Debug for RoutingTable
Source§impl PartialEq for RoutingTable
impl PartialEq for RoutingTable
Source§fn eq(&self, other: &RoutingTable) -> bool
fn eq(&self, other: &RoutingTable) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for RoutingTable
impl StructuralPartialEq for RoutingTable
Auto Trait Implementations§
impl Freeze for RoutingTable
impl RefUnwindSafe for RoutingTable
impl Send for RoutingTable
impl Sync for RoutingTable
impl Unpin for RoutingTable
impl UnsafeUnpin for RoutingTable
impl UnwindSafe for RoutingTable
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request