slightly fewer msg/op for efficient broadcast

This commit is contained in:
Joe Ardent 2025-09-12 15:27:22 -07:00
parent f2af9d6a5a
commit 19cbde32fd

View file

@ -58,18 +58,22 @@ impl BCaster {
} else {
self.store.clone()
};
for v in self.store.iter().filter(|_| rng.gen_bool(0.20)) {
for v in self.store.iter().filter(|_| rng.gen_bool(0.10)) {
goss.insert(*v);
}
if !goss.is_empty() && rng.gen_bool(0.5) {
if !goss.is_empty() && rng.gen_bool(0.6) {
let goss: Vec<_> = goss.into_iter().collect();
let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect();
let body = Body::from_type("gossip").with_payload(payload);
runner.send(node, body.clone());
let other = &self.others[rng.gen_range(0..self.others.len())];
runner.send(other, body);
}
}
let other = &self.others[rng.gen_range(0..self.others.len())];
let goss: Vec<_> = self.store.iter().cloned().collect();
let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect();
let body = Body::from_type("gossip").with_payload(payload);
runner.send(other, body);
}
}