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

Method remove_group_member

nodedb-cluster/src/routing.rs:196–208  ·  view source on GitHub ↗

Remove a node from a group's voter and learner lists. If the removed node was the current leader hint, the hint is cleared so the next query drives a fresh discovery. Returns `true` if the group existed and anything was actually removed. The caller is responsible for safety: dropping below the configured replication factor must be gated by `decommission::safety::check_can_decommission`.

(&mut self, group_id: u64, node_id: u64)

Source from the content-addressed store, hash-verified

194 /// configured replication factor must be gated by
195 /// `decommission::safety::check_can_decommission`.
196 pub fn remove_group_member(&mut self, group_id: u64, node_id: u64) -> bool {
197 let Some(info) = self.group_members.get_mut(&group_id) else {
198 return false;
199 };
200 let before_members = info.members.len();
201 let before_learners = info.learners.len();
202 info.members.retain(|&id| id != node_id);
203 info.learners.retain(|&id| id != node_id);
204 if info.leader == node_id {
205 info.leader = 0;
206 }
207 info.members.len() != before_members || info.learners.len() != before_learners
208 }
209
210 /// Update the learner list for a Raft group.
211 pub fn set_group_learners(&mut self, group_id: u64, learners: Vec<u64>) {

Callers 2

apply_routing_changeMethod · 0.80
apply_compensationFunction · 0.80

Calls 2

get_mutMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected