Dynamic erasure set configuration (#5018)

* Use local erasure session to create/broadcast coding blobs

* Individual session for each recovery (as the config might be different)

* address review comments

* new constructors for session and coding generator

* unit test for dynamic erasure config
This commit is contained in:
Pankaj Garg
2019-07-11 13:58:33 -07:00
committed by GitHub
parent a191f3fd90
commit 4c90898f0b
10 changed files with 314 additions and 84 deletions

View File

@@ -6,6 +6,7 @@ use crate::blocktree::Blocktree;
use crate::broadcast_stage::{BroadcastStage, BroadcastStageType};
use crate::cluster_info::ClusterInfo;
use crate::cluster_info_vote_listener::ClusterInfoVoteListener;
use crate::erasure::ErasureConfig;
use crate::fetch_stage::FetchStage;
use crate::poh_recorder::{PohRecorder, WorkingBankEntries};
use crate::service::Service;
@@ -37,6 +38,7 @@ impl Tpu {
sigverify_disabled: bool,
blocktree: &Arc<Blocktree>,
broadcast_type: &BroadcastStageType,
erasure_config: &ErasureConfig,
exit: &Arc<AtomicBool>,
) -> Self {
let (packet_sender, packet_receiver) = channel();
@@ -74,6 +76,7 @@ impl Tpu {
entry_receiver,
&exit,
blocktree,
erasure_config,
);
Self {