pub enum SyncupAction {
RolledBack {
matchpoint_vlsn: u64,
start_vlsn: u64,
},
NeedsRestore,
}Expand description
A replicated database environment.
This is the entry point for replication. It wraps a standard Environment and adds replication capabilities including master election, replica streaming, and commit acknowledgments.
High Availability (HA) provides a replicated, embedded database
management system which provides fast, reliable, and scalable data
management. HA enables replication of an environment across a Replication
Group. A ReplicatedEnvironment is a single node in the replication group.
ReplicatedEnvironment wraps a standard Environment. All database
operations are executed in the same fashion in both replicated and
non-replicated applications. A ReplicatedEnvironment must be
transactional. All replicated databases created in the replicated
environment must be transactional as well.
A ReplicatedEnvironment joins its replication group when it is created.
When new() returns, the node will have established contact with the other
members of the group and will be ready to service operations.
Replicated environments can be created with node type Electable or Secondary. Electable nodes can be masters or replicas, and participate in both master elections and commit durability decisions. Secondary nodes can only be replicas, not masters, and do not participate in either elections or durability decisions.
§Example
use noxu_rep::{ReplicatedEnvironment, RepConfig};
let config = RepConfig::builder("my_group", "node1", "localhost")
.node_port(5001)
.build();
let rep_env = ReplicatedEnvironment::new(config).unwrap();Outcome of ReplicatedEnvironment::syncup_with_feeder — the action taken
by a live diverged-tail syncup. Port of the branch in JE
ReplicaFeederSyncup.execute between a soft rollback and a network restore.
Variants§
RolledBack
The divergent tail was rolled back to the matchpoint; resume streaming
from start_vlsn (matchpoint + 1). matchpoint_vlsn == last VLSN
means the replica was not diverged and nothing was truncated.
NeedsRestore
No safe rollback (no common matchpoint, or it would cross a committed txn); the replica must do a full network restore.
Trait Implementations§
Source§impl Clone for SyncupAction
impl Clone for SyncupAction
Source§fn clone(&self) -> SyncupAction
fn clone(&self) -> SyncupAction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SyncupAction
impl Debug for SyncupAction
impl Eq for SyncupAction
Source§impl PartialEq for SyncupAction
impl PartialEq for SyncupAction
Source§fn eq(&self, other: &SyncupAction) -> bool
fn eq(&self, other: &SyncupAction) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SyncupAction
Auto Trait Implementations§
impl Freeze for SyncupAction
impl RefUnwindSafe for SyncupAction
impl Send for SyncupAction
impl Sync for SyncupAction
impl Unpin for SyncupAction
impl UnsafeUnpin for SyncupAction
impl UnwindSafe for SyncupAction
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
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
key and return true if they are equal.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>
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>
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 more