pub struct ClusterMetadata {
pub single_voter: bool,
pub total_voters: usize,
pub replication_targets: Vec<NodeMeta>,
}Expand description
Cached cluster topology metadata for hot path optimization.
This metadata is immutable during leadership and only updated on membership changes. Caching avoids repeated async calls to membership queries in hot paths like append_entries.
Fields§
§single_voter: boolSingle-voter cluster (quorum = 1, used for election and commit optimization)
total_voters: usizeTotal number of voters including self (updated on membership changes)
replication_targets: Vec<NodeMeta>Cached replication targets (voters + learners, excluding self)
Trait Implementations§
Source§impl Clone for ClusterMetadata
impl Clone for ClusterMetadata
Source§fn clone(&self) -> ClusterMetadata
fn clone(&self) -> ClusterMetadata
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ClusterMetadata
impl RefUnwindSafe for ClusterMetadata
impl Send for ClusterMetadata
impl Sync for ClusterMetadata
impl Unpin for ClusterMetadata
impl UnwindSafe for ClusterMetadata
Blanket Implementations§
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<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> 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