From da425cc2259b6172c4e5d2381b5fb994f2717d51 Mon Sep 17 00:00:00 2001 From: Pankaj Garg Date: Fri, 8 Nov 2019 13:54:23 -0800 Subject: [PATCH] Don't insert coding shreds into blocktree on leader (#6831) --- .../broadcast_fake_blobs_run.rs | 1 - .../broadcast_stage/standard_broadcast_run.rs | 23 ++++++++++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/core/src/broadcast_stage/broadcast_fake_blobs_run.rs b/core/src/broadcast_stage/broadcast_fake_blobs_run.rs index 619cca45e9..b20ea3976e 100644 --- a/core/src/broadcast_stage/broadcast_fake_blobs_run.rs +++ b/core/src/broadcast_stage/broadcast_fake_blobs_run.rs @@ -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(); diff --git a/core/src/broadcast_stage/standard_broadcast_run.rs b/core/src/broadcast_stage/standard_broadcast_run.rs index e75158e88a..e3f21d6643 100644 --- a/core/src/broadcast_stage/standard_broadcast_run.rs +++ b/core/src/broadcast_stage/standard_broadcast_run.rs @@ -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, + insert: bool, blocktree: &Arc, cluster_info: &Arc>, stakes: Option<&HashMap>, @@ -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