Increase polling frequency to report convergence quicker

This commit is contained in:
Michael Vines 2019-03-06 20:54:43 -08:00
parent 83f551d9b9
commit 8f034280dc
1 changed files with 22 additions and 13 deletions

View File

@ -13,7 +13,7 @@ use std::sync::mpsc::channel;
use std::sync::{Arc, RwLock}; use std::sync::{Arc, RwLock};
use std::thread::sleep; use std::thread::sleep;
use std::thread::{self, JoinHandle}; use std::thread::{self, JoinHandle};
use std::time::Duration; use std::time::{Duration, Instant};
pub struct GossipService { pub struct GossipService {
thread_hdls: Vec<JoinHandle<()>>, thread_hdls: Vec<JoinHandle<()>>,
@ -93,24 +93,33 @@ pub fn discover(
); );
// Wait for the cluster to converge // Wait for the cluster to converge
for _ in 0..15 { let now = Instant::now();
let mut i = 0;
while now.elapsed() < Duration::from_secs(15) {
let rpc_peers = spy_ref.read().unwrap().rpc_peers(); let rpc_peers = spy_ref.read().unwrap().rpc_peers();
info!( if i % 20 == 0 {
"discover: spy_node {} found {}/{} nodes", info!(
id, "discover: spy_node {} found {}/{} nodes",
rpc_peers.len(), id,
num_nodes, rpc_peers.len(),
); num_nodes,
);
}
if rpc_peers.len() >= num_nodes { if rpc_peers.len() >= num_nodes {
exit.store(true, Ordering::Relaxed); exit.store(true, Ordering::Relaxed);
gossip_service.join().unwrap(); gossip_service.join().unwrap();
return Ok(rpc_peers); return Ok(rpc_peers);
} }
debug!( if i % 20 == 0 {
"discover: expecting an additional {} nodes", debug!(
num_nodes - rpc_peers.len() "discover: expecting an additional {} nodes",
); num_nodes - rpc_peers.len()
sleep(Duration::new(1, 0)); );
}
sleep(Duration::from_millis(
crate::cluster_info::GOSSIP_SLEEP_MILLIS,
));
i += 1;
} }
Err("Failed to converge") Err("Failed to converge")
} }