pub enum Membership {
Gossip,
Swim,
}Expand description
Membership / failure-detection backend selected by the pool’s
membership: directive.
Gossip is the historical default: Dynamo-style peer-state
dissemination with a phi-accrual failure detector
(crate::cluster::gossip, crate::cluster::failure_detector).
Swim selects the opt-in SWIM + Lifeguard backend
(crate::cluster::swim), which trades all-to-all heartbeating
for a randomised probe with indirect (PING-REQ) probes,
incarnation-number refutation, and Lifeguard local health
awareness – aimed at faster convergence and fewer false peer-down
verdicts as clusters grow and churn. SWIM is opt-in until the
large-scale churn data justifies making it the default.
§Examples
use dynomite::conf::Membership;
assert_eq!(Membership::parse("gossip").unwrap(), Membership::Gossip);
assert_eq!(Membership::parse("swim").unwrap(), Membership::Swim);
assert_eq!(Membership::default(), Membership::Gossip);Variants§
Gossip
Dynamo-style gossip plus phi-accrual. The historical default.
Swim
SWIM + Lifeguard probe-based membership. Opt-in.
Implementations§
Source§impl Membership
impl Membership
Sourcepub fn parse(s: &str) -> Result<Self, ConfError>
pub fn parse(s: &str) -> Result<Self, ConfError>
Parse a membership: value (case-insensitive).
§Errors
Returns ConfError::BadServer when the value is not a
recognised backend.
§Examples
use dynomite::conf::Membership;
assert_eq!(Membership::parse("SWIM").unwrap(), Membership::Swim);
assert!(Membership::parse("raft").is_err());Trait Implementations§
Source§impl Clone for Membership
impl Clone for Membership
Source§fn clone(&self) -> Membership
fn clone(&self) -> Membership
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Membership
Source§impl Debug for Membership
impl Debug for Membership
Source§impl Default for Membership
impl Default for Membership
Source§fn default() -> Membership
fn default() -> Membership
Source§impl<'de> Deserialize<'de> for Membership
impl<'de> Deserialize<'de> for Membership
Source§fn deserialize<D: Deserializer<'de>>(de: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(de: D) -> Result<Self, D::Error>
Source§impl Display for Membership
impl Display for Membership
impl Eq for Membership
Source§impl Hash for Membership
impl Hash for Membership
Source§impl PartialEq for Membership
impl PartialEq for Membership
Source§fn eq(&self, other: &Membership) -> bool
fn eq(&self, other: &Membership) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for Membership
impl Serialize for Membership
impl StructuralPartialEq for Membership
Auto Trait Implementations§
impl Freeze for Membership
impl RefUnwindSafe for Membership
impl Send for Membership
impl Sync for Membership
impl Unpin for Membership
impl UnsafeUnpin for Membership
impl UnwindSafe for Membership
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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
key and return true if they are equal.