pub struct AppendEntries {
pub term: Term,
pub leader: NodeId,
pub prev_log_index: Index,
pub prev_log_term: Term,
pub entries: Vec<LogEntry>,
pub leader_commit: Index,
}Expand description
The leader’s replicate-and-heartbeat RPC.
The leader sends this to each follower. With an empty
entries list it is a pure heartbeat that asserts
leadership and resets the follower’s election timer; with entries it
replicates the log (from v0.3). The prev_log_index / prev_log_term
pair lets the follower verify its log matches the leader’s up to that point
before accepting anything new.
§Examples
use raft_io::AppendEntries;
// An empty heartbeat for term 4 from node 1.
let hb = AppendEntries {
term: 4,
leader: 1,
prev_log_index: 9,
prev_log_term: 3,
entries: Vec::new(),
leader_commit: 7,
};
assert!(hb.entries.is_empty());Fields§
§term: TermThe leader’s term.
leader: NodeIdThe leader sending the RPC, so followers can record it.
prev_log_index: IndexIndex of the log entry immediately preceding the new ones.
prev_log_term: TermTerm of the entry at prev_log_index.
entries: Vec<LogEntry>Entries to store (empty for a heartbeat). Replication uses this in v0.3.
leader_commit: IndexThe leader’s commit index, so followers can advance their own.
Trait Implementations§
Source§impl Clone for AppendEntries
impl Clone for AppendEntries
Source§fn clone(&self) -> AppendEntries
fn clone(&self) -> AppendEntries
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AppendEntries
impl Debug for AppendEntries
Source§impl Deserialize for AppendEntries
impl Deserialize for AppendEntries
impl Eq for AppendEntries
Source§impl PartialEq for AppendEntries
impl PartialEq for AppendEntries
Source§fn eq(&self, other: &AppendEntries) -> bool
fn eq(&self, other: &AppendEntries) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for AppendEntries
impl Serialize for AppendEntries
impl StructuralPartialEq for AppendEntries
Auto Trait Implementations§
impl Freeze for AppendEntries
impl RefUnwindSafe for AppendEntries
impl Send for AppendEntries
impl Sync for AppendEntries
impl Unpin for AppendEntries
impl UnsafeUnpin for AppendEntries
impl UnwindSafe for AppendEntries
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