From 5b386ec30ae35b9b84b43ddee0cc6b42e798f129 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 8 Mar 2019 11:16:13 -0800 Subject: [PATCH] Delete cluster_info::get_gossip_top_leader() --- bench-tps/src/main.rs | 2 +- core/src/cluster_info.rs | 36 ------------------------------------ core/src/cluster_tests.rs | 6 +++--- core/src/gossip_service.rs | 8 ++------ 4 files changed, 6 insertions(+), 46 deletions(-) diff --git a/bench-tps/src/main.rs b/bench-tps/src/main.rs index 2473a1644..d5f1ebead 100644 --- a/bench-tps/src/main.rs +++ b/bench-tps/src/main.rs @@ -40,7 +40,7 @@ fn main() { } = cfg; let cluster_entrypoint = ContactInfo::new_entry_point(&network); - let (_leader, nodes) = discover(&cluster_entrypoint, num_nodes).unwrap_or_else(|err| { + let nodes = discover(&cluster_entrypoint, num_nodes).unwrap_or_else(|err| { eprintln!("Failed to discover {} nodes: {:?}", num_nodes, err); exit(1); }); diff --git a/core/src/cluster_info.rs b/core/src/cluster_info.rs index 4e03fe355..9ad73b560 100644 --- a/core/src/cluster_info.rs +++ b/core/src/cluster_info.rs @@ -222,17 +222,11 @@ impl ClusterInfo { } pub fn node_info_trace(&self) -> String { let leader_id = self.leader_id(); - let gossip_top_leader = self.get_gossip_top_leader(); let nodes: Vec<_> = self .rpc_peers() .into_iter() .map(|node| { let mut annotation = String::new(); - if let Some(top_leader) = gossip_top_leader { - if node.id == top_leader.id { - annotation.push_str(" [gossip top leader]"); - } - } if node.id == leader_id { annotation.push_str(" [leader]"); } @@ -837,36 +831,6 @@ impl ClusterInfo { Ok(()) } - pub fn get_gossip_top_leader(&self) -> Option<&NodeInfo> { - let mut table = HashMap::new(); - let def = Pubkey::default(); - let cur = self - .gossip - .crds - .table - .values() - .filter_map(|x| x.value.leader_id()) - .filter(|x| x.leader_id != def); - for v in cur { - let cnt = table.entry(&v.leader_id).or_insert(0); - *cnt += 1; - trace!("leader {} {}", v.leader_id, *cnt); - } - let mut sorted: Vec<(&Pubkey, usize)> = table.into_iter().collect(); - for x in &sorted { - trace!("{}: sorted leaders {} votes: {}", self.gossip.id, x.0, x.1); - } - sorted.sort_by_key(|a| a.1); - let top_leader = sorted.last().map(|a| *a.0); - - top_leader - .and_then(|x| { - let leader_label = CrdsValueLabel::ContactInfo(x); - self.gossip.crds.lookup(&leader_label) - }) - .and_then(|x| x.contact_info()) - } - /// randomly pick a node and ask them for updates asynchronously pub fn gossip( obj: Arc>, diff --git a/core/src/cluster_tests.rs b/core/src/cluster_tests.rs index 6292ffa60..9464ef800 100644 --- a/core/src/cluster_tests.rs +++ b/core/src/cluster_tests.rs @@ -22,7 +22,7 @@ pub fn spend_and_verify_all_nodes( funding_keypair: &Keypair, nodes: usize, ) { - let (_leader_id, cluster_nodes) = discover(&entry_point_info, nodes).unwrap(); + let cluster_nodes = discover(&entry_point_info, nodes).unwrap(); assert!(cluster_nodes.len() >= nodes); for ingress_node in &cluster_nodes { let random_keypair = Keypair::new(); @@ -49,7 +49,7 @@ pub fn spend_and_verify_all_nodes( } pub fn fullnode_exit(entry_point_info: &ContactInfo, nodes: usize) { - let (_leader_id, cluster_nodes) = discover(&entry_point_info, nodes).unwrap(); + let cluster_nodes = discover(&entry_point_info, nodes).unwrap(); assert!(cluster_nodes.len() >= nodes); for node in &cluster_nodes { let mut client = mk_client(&node); @@ -101,7 +101,7 @@ pub fn kill_entry_and_spend_and_verify_rest( nodes: usize, ) { solana_logger::setup(); - let (_leader_id, cluster_nodes) = discover(&entry_point_info, nodes).unwrap(); + let cluster_nodes = discover(&entry_point_info, nodes).unwrap(); assert!(cluster_nodes.len() >= nodes); let mut client = mk_client(&entry_point_info); info!("sleeping for an epoch"); diff --git a/core/src/gossip_service.rs b/core/src/gossip_service.rs index eb03b7498..901811bed 100644 --- a/core/src/gossip_service.rs +++ b/core/src/gossip_service.rs @@ -49,10 +49,7 @@ impl GossipService { } } -pub fn discover( - entry_point_info: &NodeInfo, - num_nodes: usize, -) -> std::io::Result<(Option, Vec)> { +pub fn discover(entry_point_info: &NodeInfo, num_nodes: usize) -> std::io::Result> { let exit = Arc::new(AtomicBool::new(false)); let (gossip_service, spy_ref) = make_spy_node(entry_point_info, &exit); let id = spy_ref.read().unwrap().keypair.pubkey(); @@ -74,10 +71,9 @@ pub fn discover( spy_ref.read().unwrap().node_info_trace() ); - let leader = spy_ref.read().unwrap().get_gossip_top_leader().cloned(); exit.store(true, Ordering::Relaxed); gossip_service.join().unwrap(); - return Ok((leader, rpc_peers)); + return Ok(rpc_peers); } if i % 20 == 0 { info!(