Skip to main content

Membership

Struct Membership 

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

Tracks cluster peers from beamr’s ordered connection-event stream.

Cloning shares one tracker: the arm, the peer set, the effect FIFO, and the counters all live behind a single Arc.

Implementations§

Source§

impl Membership

Source

pub fn new(connections: ConnectionManager, atoms: Arc<AtomTable>) -> Self

Arms a membership tracker on connections.

The subscription is established here, not later: before this returns, the callback has been handed a synthetic Up for every live peer under beamr’s dispatch gate, so the tracker’s initial view is atomic with respect to the ordered stream that follows. Peers already connected by seed discovery therefore appear immediately, and their join effects are queued for the consumer.

Source

pub fn peers(&self) -> Vec<Atom>

The currently-tracked peers, sorted by atom index.

Source

pub fn peer_names(&self) -> Vec<String>

The currently-tracked peers as resolved node-name strings.

Source

pub fn events_observed(&self) -> u64

How many connection events this tracker has been handed. Flat means the backend told us nothing, which is the only reason membership may be flat.

Source

pub fn consumer_wakes(&self) -> u64

How many times the effect FIFO has been drained — the consumer-side wake count. A drain runs only because a delta was pushed or shutdown was signalled; spurious condvar wakeups are absorbed by the wait predicate and perform no work, so they are not counted. Includes the one synchronous drain that applies the initial view at bring-up.

Source

pub fn source_snapshots(&self) -> u64

How many times this tracker has asked the backend for an initial view. Exactly one per arm, for the lifetime of the tracker — there is no cadence, so this never grows again.

Source

pub fn queue_high_water(&self) -> usize

The deepest the lossless effect FIFO has ever been. The disclosed bound on the unbounded-queue tradeoff.

Source

pub fn pending_effects(&self) -> usize

Effects queued but not yet applied by the consumer.

Trait Implementations§

Source§

impl Clone for Membership

Source§

fn clone(&self) -> Membership

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Membership

Source§

fn fmt(&self, formatter: &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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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