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,18 +58,22 @@ impl BCaster {
|
||||||
} else {
|
} else {
|
||||||
self.store.clone()
|
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);
|
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 goss: Vec<_> = goss.into_iter().collect();
|
||||||
let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect();
|
let payload: Payload = [("goss".to_string(), goss.into())].into_iter().collect();
|
||||||
let body = Body::from_type("gossip").with_payload(payload);
|
let body = Body::from_type("gossip").with_payload(payload);
|
||||||
runner.send(node, body.clone());
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue