use write cache by default in some tests (#28876)

This commit is contained in:
Jeff Washington (jwash) 2022-11-18 14:35:52 -08:00 committed by GitHub
parent aa1d319d48
commit f22104d46b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 30 additions and 10 deletions

View File

@ -63,6 +63,7 @@ fn test_bench_tps_local_cluster(config: Config) {
cluster_lamports: 200_000_000, cluster_lamports: 200_000_000,
validator_configs: make_identical_validator_configs( validator_configs: make_identical_validator_configs(
&ValidatorConfig { &ValidatorConfig {
accounts_db_caching_enabled: true,
rpc_config: JsonRpcConfig { rpc_config: JsonRpcConfig {
faucet_addr: Some(faucet_addr), faucet_addr: Some(faucet_addr),
..JsonRpcConfig::default_for_test() ..JsonRpcConfig::default_for_test()

View File

@ -14,7 +14,7 @@ use {
accounts_db::AccountShrinkThreshold, accounts_db::AccountShrinkThreshold,
accounts_hash::CalcAccountsHashConfig, accounts_hash::CalcAccountsHashConfig,
accounts_index::AccountSecondaryIndexes, accounts_index::AccountSecondaryIndexes,
bank::Bank, bank::{bank_test_config_caching_enabled, Bank},
bank_forks::BankForks, bank_forks::BankForks,
epoch_accounts_hash::{self, EpochAccountsHash}, epoch_accounts_hash::{self, EpochAccountsHash},
genesis_utils::{self, GenesisConfigInfo}, genesis_utils::{self, GenesisConfigInfo},
@ -107,8 +107,10 @@ impl TestEnvironment {
..snapshot_config ..snapshot_config
}; };
let mut bank_forks = let mut bank_forks = BankForks::new(Bank::new_for_tests_with_config(
BankForks::new(Bank::new_for_tests(&genesis_config_info.genesis_config)); &genesis_config_info.genesis_config,
bank_test_config_caching_enabled(),
));
bank_forks.set_snapshot_config(Some(snapshot_config.clone())); bank_forks.set_snapshot_config(Some(snapshot_config.clone()));
bank_forks.set_accounts_hash_interval_slots(Self::ACCOUNTS_HASH_INTERVAL); bank_forks.set_accounts_hash_interval_slots(Self::ACCOUNTS_HASH_INTERVAL);
let bank_forks = Arc::new(RwLock::new(bank_forks)); let bank_forks = Arc::new(RwLock::new(bank_forks));
@ -219,7 +221,7 @@ impl BackgroundServices {
snapshot_request_handler, snapshot_request_handler,
pruned_banks_request_handler, pruned_banks_request_handler,
}, },
false, true,
false, false,
None, None,
); );
@ -581,6 +583,14 @@ fn test_epoch_accounts_hash_and_warping() {
let eah_stop_offset = epoch_accounts_hash::calculation_offset_stop(&bank); let eah_stop_offset = epoch_accounts_hash::calculation_offset_stop(&bank);
let eah_stop_slot_in_next_epoch = let eah_stop_slot_in_next_epoch =
epoch_schedule.get_first_slot_in_epoch(bank.epoch() + 1) + eah_stop_offset; epoch_schedule.get_first_slot_in_epoch(bank.epoch() + 1) + eah_stop_offset;
// have to set root here so that we can flush the write cache
bank_forks.write().unwrap().set_root(
bank.slot(),
&test_environment
.background_services
.accounts_background_request_sender,
None,
);
let bank = bank_forks.write().unwrap().insert(Bank::warp_from_parent( let bank = bank_forks.write().unwrap().insert(Bank::warp_from_parent(
&bank, &bank,
&Pubkey::default(), &Pubkey::default(),

View File

@ -101,7 +101,7 @@ impl SnapshotTestConfig {
Arc::<RuntimeConfig>::default(), Arc::<RuntimeConfig>::default(),
vec![accounts_dir.path().to_path_buf()], vec![accounts_dir.path().to_path_buf()],
AccountSecondaryIndexes::default(), AccountSecondaryIndexes::default(),
false, true,
accounts_db::AccountShrinkThreshold::default(), accounts_db::AccountShrinkThreshold::default(),
); );
bank0.freeze(); bank0.freeze();
@ -252,7 +252,7 @@ fn run_bank_forks_snapshot_n<F>(
// set_root should send a snapshot request // set_root should send a snapshot request
bank_forks.set_root(bank.slot(), &request_sender, None); bank_forks.set_root(bank.slot(), &request_sender, None);
bank.update_accounts_hash_for_tests(); bank.update_accounts_hash_for_tests();
snapshot_request_handler.handle_snapshot_requests(false, false, 0, &mut None); snapshot_request_handler.handle_snapshot_requests(true, false, 0, &mut None);
} }
} }
@ -784,7 +784,7 @@ fn test_bank_forks_incremental_snapshot(
bank_forks.set_root(bank.slot(), &request_sender, None); bank_forks.set_root(bank.slot(), &request_sender, None);
bank.update_accounts_hash_for_tests(); bank.update_accounts_hash_for_tests();
snapshot_request_handler.handle_snapshot_requests( snapshot_request_handler.handle_snapshot_requests(
false, true,
false, false,
0, 0,
&mut last_full_snapshot_slot, &mut last_full_snapshot_slot,
@ -1041,7 +1041,7 @@ fn test_snapshots_with_background_services(
bank_forks.clone(), bank_forks.clone(),
&exit, &exit,
abs_request_handler, abs_request_handler,
false, true,
false, false,
None, None,
); );

View File

@ -4791,6 +4791,7 @@ pub mod tests {
let (bank_forks, mint_keypair, leader_vote_keypair) = let (bank_forks, mint_keypair, leader_vote_keypair) =
new_bank_forks_with_config(BankTestConfig { new_bank_forks_with_config(BankTestConfig {
secondary_indexes: config.account_indexes.clone(), secondary_indexes: config.account_indexes.clone(),
accounts_db_caching_enabled: true,
}); });
let ledger_path = get_tmp_ledger_path!(); let ledger_path = get_tmp_ledger_path!();

View File

@ -1150,6 +1150,14 @@ pub struct NewBankOptions {
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct BankTestConfig { pub struct BankTestConfig {
pub secondary_indexes: AccountSecondaryIndexes, pub secondary_indexes: AccountSecondaryIndexes,
pub accounts_db_caching_enabled: bool,
}
pub fn bank_test_config_caching_enabled() -> BankTestConfig {
BankTestConfig {
accounts_db_caching_enabled: true,
..BankTestConfig::default()
}
} }
#[derive(Debug)] #[derive(Debug)]
@ -1224,7 +1232,7 @@ impl Bank {
Self::new_with_config_for_tests( Self::new_with_config_for_tests(
genesis_config, genesis_config,
test_config.secondary_indexes, test_config.secondary_indexes,
false, test_config.accounts_db_caching_enabled,
AccountShrinkThreshold::default(), AccountShrinkThreshold::default(),
) )
} }

View File

@ -152,7 +152,7 @@ impl Default for TestValidatorGenesis {
max_ledger_shreds: Option::<u64>::default(), max_ledger_shreds: Option::<u64>::default(),
max_genesis_archive_unpacked_size: Option::<u64>::default(), max_genesis_archive_unpacked_size: Option::<u64>::default(),
geyser_plugin_config_files: Option::<Vec<PathBuf>>::default(), geyser_plugin_config_files: Option::<Vec<PathBuf>>::default(),
accounts_db_caching_enabled: bool::default(), accounts_db_caching_enabled: true,
deactivate_feature_set: HashSet::<Pubkey>::default(), deactivate_feature_set: HashSet::<Pubkey>::default(),
compute_unit_limit: Option::<u64>::default(), compute_unit_limit: Option::<u64>::default(),
log_messages_bytes_limit: Option::<usize>::default(), log_messages_bytes_limit: Option::<usize>::default(),