MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / replicate_to_all

Method replicate_to_all

nodedb-raft/src/node/internal.rs:145–161  ·  view source on GitHub ↗

Send `AppendEntries` to every tracked peer (voters + learners + observers). Observers are skipped when their advisory send queue is full — source commits are never gated on observer apply pace.

(&mut self)

Source from the content-addressed store, hash-verified

143 /// Observers are skipped when their advisory send queue is full — source
144 /// commits are never gated on observer apply pace.
145 pub(super) fn replicate_to_all(&mut self) {
146 let voters_and_learners: Vec<u64> = self
147 .config
148 .peers
149 .iter()
150 .chain(self.config.learners.iter())
151 .copied()
152 .collect();
153 for peer in voters_and_learners {
154 self.send_append_entries(peer);
155 }
156
157 let observers: Vec<u64> = self.config.observers.clone();
158 for observer in observers {
159 self.send_append_entries_to_observer(observer);
160 }
161 }
162
163 pub(super) fn send_append_entries(&mut self, peer: u64) {
164 let leader = match &self.leader_state {

Callers 5

become_leaderMethod · 0.80
tickMethod · 0.80
proposeMethod · 0.80

Calls 5

collectMethod · 0.80
send_append_entriesMethod · 0.80
iterMethod · 0.45
cloneMethod · 0.45