slightly fewer msg/op for efficient broadcast
This commit is contained in:
parent
f2af9d6a5a
commit
19cbde32fd
1 changed files with 8 additions and 4 deletions
|
@ -58,20 +58,24 @@ 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())];
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Node for BCaster {
|
||||
fn handle(&mut self, runner: &Runner, req: Message) {
|
||||
|
|
Loading…
Reference in a new issue