bench should update leader schedule cache (#22991)
This commit is contained in:
parent
f2d406ad5d
commit
e52e48076e
|
@ -11,6 +11,7 @@ use {
|
||||||
blockstore::Blockstore,
|
blockstore::Blockstore,
|
||||||
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
genesis_utils::{create_genesis_config, GenesisConfigInfo},
|
||||||
get_tmp_ledger_path,
|
get_tmp_ledger_path,
|
||||||
|
leader_schedule_cache::LeaderScheduleCache,
|
||||||
},
|
},
|
||||||
solana_measure::measure::Measure,
|
solana_measure::measure::Measure,
|
||||||
solana_perf::packet::to_packet_batches,
|
solana_perf::packet::to_packet_batches,
|
||||||
|
@ -218,8 +219,13 @@ fn main() {
|
||||||
let blockstore = Arc::new(
|
let blockstore = Arc::new(
|
||||||
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
||||||
);
|
);
|
||||||
let (exit, poh_recorder, poh_service, signal_receiver) =
|
let leader_schedule_cache = Arc::new(LeaderScheduleCache::new_from_bank(&bank));
|
||||||
create_test_recorder(&bank, &blockstore, None);
|
let (exit, poh_recorder, poh_service, signal_receiver) = create_test_recorder(
|
||||||
|
&bank,
|
||||||
|
&blockstore,
|
||||||
|
None,
|
||||||
|
Some(leader_schedule_cache.clone()),
|
||||||
|
);
|
||||||
let cluster_info = ClusterInfo::new(
|
let cluster_info = ClusterInfo::new(
|
||||||
Node::new_localhost().info,
|
Node::new_localhost().info,
|
||||||
Arc::new(Keypair::new()),
|
Arc::new(Keypair::new()),
|
||||||
|
@ -332,6 +338,7 @@ fn main() {
|
||||||
poh_recorder.lock().unwrap().set_bank(&bank);
|
poh_recorder.lock().unwrap().set_bank(&bank);
|
||||||
assert!(poh_recorder.lock().unwrap().bank().is_some());
|
assert!(poh_recorder.lock().unwrap().bank().is_some());
|
||||||
if bank.slot() > 32 {
|
if bank.slot() > 32 {
|
||||||
|
leader_schedule_cache.set_root(&bank);
|
||||||
bank_forks.set_root(root, &AbsRequestSender::default(), None);
|
bank_forks.set_root(root, &AbsRequestSender::default(), None);
|
||||||
root += 1;
|
root += 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ fn bench_consume_buffered(bencher: &mut Bencher) {
|
||||||
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
||||||
);
|
);
|
||||||
let (exit, poh_recorder, poh_service, _signal_receiver) =
|
let (exit, poh_recorder, poh_service, _signal_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, None);
|
create_test_recorder(&bank, &blockstore, None, None);
|
||||||
|
|
||||||
let recorder = poh_recorder.lock().unwrap().recorder();
|
let recorder = poh_recorder.lock().unwrap().recorder();
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ fn bench_banking(bencher: &mut Bencher, tx_type: TransactionType) {
|
||||||
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
Blockstore::open(&ledger_path).expect("Expected to be able to open database ledger"),
|
||||||
);
|
);
|
||||||
let (exit, poh_recorder, poh_service, signal_receiver) =
|
let (exit, poh_recorder, poh_service, signal_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, None);
|
create_test_recorder(&bank, &blockstore, None, None);
|
||||||
let cluster_info = ClusterInfo::new(
|
let cluster_info = ClusterInfo::new(
|
||||||
Node::new_localhost().info,
|
Node::new_localhost().info,
|
||||||
Arc::new(Keypair::new()),
|
Arc::new(Keypair::new()),
|
||||||
|
|
|
@ -1830,7 +1830,7 @@ mod tests {
|
||||||
.expect("Expected to be able to open database ledger"),
|
.expect("Expected to be able to open database ledger"),
|
||||||
);
|
);
|
||||||
let (exit, poh_recorder, poh_service, _entry_receiever) =
|
let (exit, poh_recorder, poh_service, _entry_receiever) =
|
||||||
create_test_recorder(&bank, &blockstore, None);
|
create_test_recorder(&bank, &blockstore, None, None);
|
||||||
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
||||||
let cluster_info = Arc::new(cluster_info);
|
let cluster_info = Arc::new(cluster_info);
|
||||||
let (gossip_vote_sender, _gossip_vote_receiver) = unbounded();
|
let (gossip_vote_sender, _gossip_vote_receiver) = unbounded();
|
||||||
|
@ -1878,7 +1878,7 @@ mod tests {
|
||||||
..PohConfig::default()
|
..PohConfig::default()
|
||||||
};
|
};
|
||||||
let (exit, poh_recorder, poh_service, entry_receiver) =
|
let (exit, poh_recorder, poh_service, entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, Some(poh_config));
|
create_test_recorder(&bank, &blockstore, Some(poh_config), None);
|
||||||
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
||||||
let cluster_info = Arc::new(cluster_info);
|
let cluster_info = Arc::new(cluster_info);
|
||||||
let (verified_gossip_vote_sender, verified_gossip_vote_receiver) = unbounded();
|
let (verified_gossip_vote_sender, verified_gossip_vote_receiver) = unbounded();
|
||||||
|
@ -1954,7 +1954,7 @@ mod tests {
|
||||||
..PohConfig::default()
|
..PohConfig::default()
|
||||||
};
|
};
|
||||||
let (exit, poh_recorder, poh_service, entry_receiver) =
|
let (exit, poh_recorder, poh_service, entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, Some(poh_config));
|
create_test_recorder(&bank, &blockstore, Some(poh_config), None);
|
||||||
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
||||||
let cluster_info = Arc::new(cluster_info);
|
let cluster_info = Arc::new(cluster_info);
|
||||||
let (gossip_vote_sender, _gossip_vote_receiver) = unbounded();
|
let (gossip_vote_sender, _gossip_vote_receiver) = unbounded();
|
||||||
|
@ -2106,7 +2106,7 @@ mod tests {
|
||||||
..PohConfig::default()
|
..PohConfig::default()
|
||||||
};
|
};
|
||||||
let (exit, poh_recorder, poh_service, entry_receiver) =
|
let (exit, poh_recorder, poh_service, entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, Some(poh_config));
|
create_test_recorder(&bank, &blockstore, Some(poh_config), None);
|
||||||
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
let cluster_info = new_test_cluster_info(Node::new_localhost().info);
|
||||||
let cluster_info = Arc::new(cluster_info);
|
let cluster_info = Arc::new(cluster_info);
|
||||||
let _banking_stage = BankingStage::new_num_threads(
|
let _banking_stage = BankingStage::new_num_threads(
|
||||||
|
@ -3456,7 +3456,7 @@ mod tests {
|
||||||
};
|
};
|
||||||
|
|
||||||
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, Some(poh_config));
|
create_test_recorder(&bank, &blockstore, Some(poh_config), None);
|
||||||
|
|
||||||
let local_node = Node::new_localhost_with_pubkey(validator_pubkey);
|
let local_node = Node::new_localhost_with_pubkey(validator_pubkey);
|
||||||
let cluster_info = new_test_cluster_info(local_node.info);
|
let cluster_info = new_test_cluster_info(local_node.info);
|
||||||
|
@ -3539,7 +3539,7 @@ mod tests {
|
||||||
};
|
};
|
||||||
|
|
||||||
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, Some(poh_config));
|
create_test_recorder(&bank, &blockstore, Some(poh_config), None);
|
||||||
|
|
||||||
let local_node = Node::new_localhost_with_pubkey(validator_pubkey);
|
let local_node = Node::new_localhost_with_pubkey(validator_pubkey);
|
||||||
let cluster_info = new_test_cluster_info(local_node.info);
|
let cluster_info = new_test_cluster_info(local_node.info);
|
||||||
|
|
|
@ -456,7 +456,7 @@ pub mod tests {
|
||||||
let blockstore = Arc::new(blockstore);
|
let blockstore = Arc::new(blockstore);
|
||||||
let bank = bank_forks.working_bank();
|
let bank = bank_forks.working_bank();
|
||||||
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
||||||
create_test_recorder(&bank, &blockstore, None);
|
create_test_recorder(&bank, &blockstore, None, None);
|
||||||
let vote_keypair = Keypair::new();
|
let vote_keypair = Keypair::new();
|
||||||
let leader_schedule_cache = Arc::new(LeaderScheduleCache::new_from_bank(&bank));
|
let leader_schedule_cache = Arc::new(LeaderScheduleCache::new_from_bank(&bank));
|
||||||
let block_commitment_cache = Arc::new(RwLock::new(BlockCommitmentCache::default()));
|
let block_commitment_cache = Arc::new(RwLock::new(BlockCommitmentCache::default()));
|
||||||
|
|
|
@ -822,12 +822,17 @@ pub fn create_test_recorder(
|
||||||
bank: &Arc<Bank>,
|
bank: &Arc<Bank>,
|
||||||
blockstore: &Arc<Blockstore>,
|
blockstore: &Arc<Blockstore>,
|
||||||
poh_config: Option<PohConfig>,
|
poh_config: Option<PohConfig>,
|
||||||
|
leader_schedule_cache: Option<Arc<LeaderScheduleCache>>,
|
||||||
) -> (
|
) -> (
|
||||||
Arc<AtomicBool>,
|
Arc<AtomicBool>,
|
||||||
Arc<Mutex<PohRecorder>>,
|
Arc<Mutex<PohRecorder>>,
|
||||||
PohService,
|
PohService,
|
||||||
Receiver<WorkingBankEntry>,
|
Receiver<WorkingBankEntry>,
|
||||||
) {
|
) {
|
||||||
|
let leader_schedule_cache = match leader_schedule_cache {
|
||||||
|
Some(provided_cache) => provided_cache,
|
||||||
|
None => Arc::new(LeaderScheduleCache::new_from_bank(bank)),
|
||||||
|
};
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let poh_config = Arc::new(poh_config.unwrap_or_default());
|
let poh_config = Arc::new(poh_config.unwrap_or_default());
|
||||||
let (mut poh_recorder, entry_receiver, record_receiver) = PohRecorder::new(
|
let (mut poh_recorder, entry_receiver, record_receiver) = PohRecorder::new(
|
||||||
|
@ -838,7 +843,7 @@ pub fn create_test_recorder(
|
||||||
bank.ticks_per_slot(),
|
bank.ticks_per_slot(),
|
||||||
&Pubkey::default(),
|
&Pubkey::default(),
|
||||||
blockstore,
|
blockstore,
|
||||||
&Arc::new(LeaderScheduleCache::new_from_bank(bank)),
|
&leader_schedule_cache,
|
||||||
&poh_config,
|
&poh_config,
|
||||||
exit.clone(),
|
exit.clone(),
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue