Rename BroadcastService back to BroadcastStage

This commit is contained in:
Greg Fitzgerald 2019-03-01 20:43:30 -07:00
parent 041a06b432
commit 2782922f7a
3 changed files with 26 additions and 26 deletions

View File

@ -1,4 +1,4 @@
//! The `broadcast_service` broadcasts data from a leader node to validators //! A stage to broadcast data from a leader node to validators
//! //!
use crate::blocktree::Blocktree; use crate::blocktree::Blocktree;
use crate::cluster_info::{ClusterInfo, ClusterInfoError, NodeInfo, DATA_PLANE_FANOUT}; use crate::cluster_info::{ClusterInfo, ClusterInfoError, NodeInfo, DATA_PLANE_FANOUT};
@ -24,7 +24,7 @@ use std::thread::{self, Builder, JoinHandle};
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
#[derive(Debug, PartialEq, Eq, Clone)] #[derive(Debug, PartialEq, Eq, Clone)]
pub enum BroadcastServiceReturnType { pub enum BroadcastStageReturnType {
LeaderRotation, LeaderRotation,
ChannelDisconnected, ChannelDisconnected,
ExitSignal, ExitSignal,
@ -138,7 +138,7 @@ impl Broadcast {
} }
} }
// Implement a destructor for the BroadcastService3 thread to signal it exited // Implement a destructor for the BroadcastStage thread to signal it exited
// even on panics // even on panics
struct Finalizer { struct Finalizer {
exit_sender: Arc<AtomicBool>, exit_sender: Arc<AtomicBool>,
@ -156,11 +156,11 @@ impl Drop for Finalizer {
} }
} }
pub struct BroadcastService { pub struct BroadcastStage {
thread_hdl: JoinHandle<BroadcastServiceReturnType>, thread_hdl: JoinHandle<BroadcastStageReturnType>,
} }
impl BroadcastService { impl BroadcastStage {
#[allow(clippy::too_many_arguments)] #[allow(clippy::too_many_arguments)]
fn run( fn run(
slot_height: u64, slot_height: u64,
@ -171,7 +171,7 @@ impl BroadcastService {
receiver: &Receiver<Vec<(Entry, u64)>>, receiver: &Receiver<Vec<(Entry, u64)>>,
exit_signal: &Arc<AtomicBool>, exit_signal: &Arc<AtomicBool>,
blocktree: &Arc<Blocktree>, blocktree: &Arc<Blocktree>,
) -> BroadcastServiceReturnType { ) -> BroadcastStageReturnType {
let me = cluster_info.read().unwrap().my_data().clone(); let me = cluster_info.read().unwrap().my_data().clone();
let mut broadcast = Broadcast { let mut broadcast = Broadcast {
@ -185,7 +185,7 @@ impl BroadcastService {
loop { loop {
if exit_signal.load(Ordering::Relaxed) { if exit_signal.load(Ordering::Relaxed) {
return BroadcastServiceReturnType::ExitSignal; return BroadcastStageReturnType::ExitSignal;
} }
let mut broadcast_table = cluster_info let mut broadcast_table = cluster_info
.read() .read()
@ -204,7 +204,7 @@ impl BroadcastService {
) { ) {
match e { match e {
Error::RecvTimeoutError(RecvTimeoutError::Disconnected) | Error::SendError => { Error::RecvTimeoutError(RecvTimeoutError::Disconnected) | Error::SendError => {
return BroadcastServiceReturnType::ChannelDisconnected; return BroadcastStageReturnType::ChannelDisconnected;
} }
Error::RecvTimeoutError(RecvTimeoutError::Timeout) => (), Error::RecvTimeoutError(RecvTimeoutError::Timeout) => (),
Error::ClusterInfoError(ClusterInfoError::NoPeers) => (), // TODO: Why are the unit-tests throwing hundreds of these? Error::ClusterInfoError(ClusterInfoError::NoPeers) => (), // TODO: Why are the unit-tests throwing hundreds of these?
@ -267,10 +267,10 @@ impl BroadcastService {
} }
} }
impl Service for BroadcastService { impl Service for BroadcastStage {
type JoinReturnType = BroadcastServiceReturnType; type JoinReturnType = BroadcastStageReturnType;
fn join(self) -> thread::Result<BroadcastServiceReturnType> { fn join(self) -> thread::Result<BroadcastStageReturnType> {
self.thread_hdl.join() self.thread_hdl.join()
} }
} }
@ -291,9 +291,9 @@ mod test {
use std::thread::sleep; use std::thread::sleep;
use std::time::Duration; use std::time::Duration;
struct MockBroadcastService { struct MockBroadcastStage {
blocktree: Arc<Blocktree>, blocktree: Arc<Blocktree>,
broadcast_service: BroadcastService, broadcast_service: BroadcastStage,
} }
fn setup_dummy_broadcast_service( fn setup_dummy_broadcast_service(
@ -302,7 +302,7 @@ mod test {
ledger_path: &str, ledger_path: &str,
entry_receiver: Receiver<Vec<(Entry, u64)>>, entry_receiver: Receiver<Vec<(Entry, u64)>>,
blob_index: u64, blob_index: u64,
) -> MockBroadcastService { ) -> MockBroadcastStage {
// Make the database ledger // Make the database ledger
let blocktree = Arc::new(Blocktree::open(ledger_path).unwrap()); let blocktree = Arc::new(Blocktree::open(ledger_path).unwrap());
@ -322,7 +322,7 @@ mod test {
let bank = Arc::new(Bank::default()); let bank = Arc::new(Bank::default());
// Start up the broadcast stage // Start up the broadcast stage
let broadcast_service = BroadcastService::new( let broadcast_service = BroadcastStage::new(
slot_height, slot_height,
&bank, &bank,
leader_info.sockets.broadcast, leader_info.sockets.broadcast,
@ -333,7 +333,7 @@ mod test {
&blocktree, &blocktree,
); );
MockBroadcastService { MockBroadcastStage {
blocktree, blocktree,
broadcast_service, broadcast_service,
} }

View File

@ -10,7 +10,7 @@
pub mod bank_forks; pub mod bank_forks;
pub mod banking_stage; pub mod banking_stage;
pub mod blob_fetch_stage; pub mod blob_fetch_stage;
pub mod broadcast_service; pub mod broadcast_stage;
#[cfg(feature = "chacha")] #[cfg(feature = "chacha")]
pub mod chacha; pub mod chacha;
#[cfg(all(feature = "chacha", feature = "cuda"))] #[cfg(all(feature = "chacha", feature = "cuda"))]

View File

@ -3,7 +3,7 @@
use crate::banking_stage::{BankingStage, UnprocessedPackets}; use crate::banking_stage::{BankingStage, UnprocessedPackets};
use crate::blocktree::Blocktree; use crate::blocktree::Blocktree;
use crate::broadcast_service::BroadcastService; use crate::broadcast_stage::BroadcastStage;
use crate::cluster_info::ClusterInfo; use crate::cluster_info::ClusterInfo;
use crate::cluster_info_vote_listener::ClusterInfoVoteListener; use crate::cluster_info_vote_listener::ClusterInfoVoteListener;
use crate::fetch_stage::FetchStage; use crate::fetch_stage::FetchStage;
@ -29,7 +29,7 @@ pub struct LeaderServices {
sigverify_stage: SigVerifyStage, sigverify_stage: SigVerifyStage,
banking_stage: BankingStage, banking_stage: BankingStage,
cluster_info_vote_listener: ClusterInfoVoteListener, cluster_info_vote_listener: ClusterInfoVoteListener,
broadcast_service: BroadcastService, broadcast_stage: BroadcastStage,
} }
impl LeaderServices { impl LeaderServices {
@ -38,14 +38,14 @@ impl LeaderServices {
sigverify_stage: SigVerifyStage, sigverify_stage: SigVerifyStage,
banking_stage: BankingStage, banking_stage: BankingStage,
cluster_info_vote_listener: ClusterInfoVoteListener, cluster_info_vote_listener: ClusterInfoVoteListener,
broadcast_service: BroadcastService, broadcast_stage: BroadcastStage,
) -> Self { ) -> Self {
LeaderServices { LeaderServices {
fetch_stage, fetch_stage,
sigverify_stage, sigverify_stage,
banking_stage, banking_stage,
cluster_info_vote_listener, cluster_info_vote_listener,
broadcast_service, broadcast_stage,
} }
} }
@ -59,7 +59,7 @@ impl LeaderServices {
results.push(self.sigverify_stage.join()); results.push(self.sigverify_stage.join());
results.push(self.cluster_info_vote_listener.join()); results.push(self.cluster_info_vote_listener.join());
results.push(self.banking_stage.join()); results.push(self.banking_stage.join());
let broadcast_result = self.broadcast_service.join(); let broadcast_result = self.broadcast_stage.join();
for result in results { for result in results {
result?; result?;
} }
@ -217,7 +217,7 @@ impl Tpu {
let (sigverify_stage, verified_receiver) = let (sigverify_stage, verified_receiver) =
SigVerifyStage::new(packet_receiver, sigverify_disabled); SigVerifyStage::new(packet_receiver, sigverify_disabled);
// TODO: Fix BankingStage/BroadcastService to operate on `slot` directly instead of // TODO: Fix BankingStage/BroadcastStage to operate on `slot` directly instead of
// `max_tick_height` // `max_tick_height`
let max_tick_height = (slot + 1) * bank.ticks_per_slot() - 1; let max_tick_height = (slot + 1) * bank.ticks_per_slot() - 1;
let blob_index = blocktree let blob_index = blocktree
@ -234,7 +234,7 @@ impl Tpu {
self.id, self.id,
); );
let broadcast_service = BroadcastService::new( let broadcast_stage = BroadcastStage::new(
slot, slot,
bank, bank,
broadcast_socket, broadcast_socket,
@ -250,7 +250,7 @@ impl Tpu {
sigverify_stage, sigverify_stage,
banking_stage, banking_stage,
cluster_info_vote_listener, cluster_info_vote_listener,
broadcast_service, broadcast_stage,
); );
self.tpu_mode = Some(TpuMode::Leader(svcs)); self.tpu_mode = Some(TpuMode::Leader(svcs));
} }