Don't insert coding shreds into blocktree on leader (#6831)

This commit is contained in:
Pankaj Garg 2019-11-08 13:54:23 -08:00 committed by GitHub
parent 346213da4c
commit da425cc225
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 7 deletions

View File

@ -77,7 +77,6 @@ impl BroadcastRun for BroadcastFakeBlobsRun {
}
blocktree.insert_shreds(data_shreds.clone(), None)?;
blocktree.insert_shreds(coding_shreds.clone(), None)?;
// 3) Start broadcast step
let peers = cluster_info.read().unwrap().tvu_peers();

View File

@ -170,9 +170,17 @@ impl StandardBroadcastRun {
let bank_epoch = bank.get_leader_schedule_epoch(bank.slot());
let stakes = staking_utils::staked_nodes_at_epoch(&bank, bank_epoch);
self.insert_and_broadcast(data_shreds, blocktree, cluster_info, stakes.as_ref(), sock)?;
self.insert_and_broadcast(
self.maybe_insert_and_broadcast(
data_shreds,
true,
blocktree,
cluster_info,
stakes.as_ref(),
sock,
)?;
self.maybe_insert_and_broadcast(
coding_shreds,
false,
blocktree,
cluster_info,
stakes.as_ref(),
@ -193,9 +201,10 @@ impl StandardBroadcastRun {
Ok(())
}
fn insert_and_broadcast(
fn maybe_insert_and_broadcast(
&mut self,
shreds: Vec<Shred>,
insert: bool,
blocktree: &Arc<Blocktree>,
cluster_info: &Arc<RwLock<ClusterInfo>>,
stakes: Option<&HashMap<Pubkey, u64>>,
@ -207,9 +216,11 @@ impl StandardBroadcastRun {
// Insert shreds into blocktree
let insert_shreds_start = Instant::now();
blocktree
.insert_shreds(shreds.clone(), None)
.expect("Failed to insert shreds in blocktree");
if insert {
blocktree
.insert_shreds(shreds.clone(), None)
.expect("Failed to insert shreds in blocktree");
}
let insert_shreds_elapsed = insert_shreds_start.elapsed();
// Broadcast the shreds