pub struct CausalCluster<S: Lattice + Clone> {
replicas: Vec<CausalReplica<S>>,
network: CausalNetworkSimulator<S>,
}Expand description
Cluster coordinator for causal anti-entropy
Fields§
§replicas: Vec<CausalReplica<S>>All replicas
network: CausalNetworkSimulator<S>Network simulator
Implementations§
Source§impl<S: Lattice + Clone> CausalCluster<S>
impl<S: Lattice + Clone> CausalCluster<S>
Sourcepub fn replica(&self, idx: usize) -> &CausalReplica<S>
pub fn replica(&self, idx: usize) -> &CausalReplica<S>
Get replica by index
Sourcepub fn replica_mut(&mut self, idx: usize) -> &mut CausalReplica<S>
pub fn replica_mut(&mut self, idx: usize) -> &mut CausalReplica<S>
Get mutable replica
Sourcepub fn broadcast_intervals(&mut self, from_idx: usize)
pub fn broadcast_intervals(&mut self, from_idx: usize)
Initiate sync from one replica to all its peers
Sourcepub fn process_one(&mut self) -> bool
pub fn process_one(&mut self) -> bool
Process one network message
Sourcepub fn drain_network(&mut self)
pub fn drain_network(&mut self)
Drain all messages
Sourcepub fn full_sync_round(&mut self)
pub fn full_sync_round(&mut self)
Full sync round
Sourcepub fn is_converged(&self) -> bool
pub fn is_converged(&self) -> bool
Check if converged
Sourcepub fn retransmit_and_process(&mut self)
pub fn retransmit_and_process(&mut self)
Retransmit and process
Sourcepub fn crash_and_recover(&mut self, idx: usize)
pub fn crash_and_recover(&mut self, idx: usize)
Simulate a crash and recovery for a replica
Sourcepub fn total_pending(&self) -> usize
pub fn total_pending(&self) -> usize
Get total pending out-of-order intervals across all replicas
Trait Implementations§
Auto Trait Implementations§
impl<S> Freeze for CausalCluster<S>
impl<S> RefUnwindSafe for CausalCluster<S>where
S: RefUnwindSafe,
impl<S> Send for CausalCluster<S>where
S: Send,
impl<S> Sync for CausalCluster<S>where
S: Sync,
impl<S> Unpin for CausalCluster<S>where
S: Unpin,
impl<S> UnwindSafe for CausalCluster<S>where
S: UnwindSafe,
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