remove type SnapshotStoragesOne (#29750)

This commit is contained in:
Jeff Washington (jwash) 2023-01-18 13:51:08 -06:00 committed by GitHub
parent df92d8ff3d
commit 9d2c71b9a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 27 deletions

View File

@ -600,9 +600,6 @@ impl<'a> MultiThreadProgress<'a> {
/// An offset into the AccountsDb::storage vector /// An offset into the AccountsDb::storage vector
pub type AtomicAppendVecId = AtomicU32; pub type AtomicAppendVecId = AtomicU32;
pub type AppendVecId = u32; pub type AppendVecId = u32;
pub type SnapshotStorages = Vec<Vec<Arc<AccountStorageEntry>>>;
/// exactly 1 append vec per slot
pub type SnapshotStoragesOne = Vec<Arc<AccountStorageEntry>>;
type AccountSlots = HashMap<Pubkey, HashSet<Slot>>; type AccountSlots = HashMap<Pubkey, HashSet<Slot>>;
type AppendVecOffsets = HashMap<AppendVecId, HashSet<usize>>; type AppendVecOffsets = HashMap<AppendVecId, HashSet<usize>>;
@ -8257,7 +8254,7 @@ impl AccountsDb {
&self, &self,
requested_slots: impl RangeBounds<Slot> + Sync, requested_slots: impl RangeBounds<Slot> + Sync,
ancestors: Option<&Ancestors>, ancestors: Option<&Ancestors>,
) -> (SnapshotStoragesOne, Vec<Slot>) { ) -> (Vec<Arc<AccountStorageEntry>>, Vec<Slot>) {
let mut m = Measure::start("get slots"); let mut m = Measure::start("get slots");
let mut slots_and_storages = self let mut slots_and_storages = self
.storage .storage
@ -9556,7 +9553,10 @@ pub mod tests {
fn sample_storages_and_account_in_slot( fn sample_storages_and_account_in_slot(
slot: Slot, slot: Slot,
accounts: &AccountsDb, accounts: &AccountsDb,
) -> (SnapshotStoragesOne, Vec<CalculateHashIntermediate>) { ) -> (
Vec<Arc<AccountStorageEntry>>,
Vec<CalculateHashIntermediate>,
) {
let pubkey0 = Pubkey::new(&[0u8; 32]); let pubkey0 = Pubkey::new(&[0u8; 32]);
let pubkey127 = Pubkey::new(&[0x7fu8; 32]); let pubkey127 = Pubkey::new(&[0x7fu8; 32]);
let pubkey128 = Pubkey::new(&[0x80u8; 32]); let pubkey128 = Pubkey::new(&[0x80u8; 32]);
@ -9618,7 +9618,10 @@ pub mod tests {
fn sample_storages_and_accounts( fn sample_storages_and_accounts(
accounts: &AccountsDb, accounts: &AccountsDb,
) -> (SnapshotStoragesOne, Vec<CalculateHashIntermediate>) { ) -> (
Vec<Arc<AccountStorageEntry>>,
Vec<CalculateHashIntermediate>,
) {
sample_storages_and_account_in_slot(1, accounts) sample_storages_and_account_in_slot(1, accounts)
} }
@ -9963,7 +9966,7 @@ pub mod tests {
assert_eq!(result, (expected_accounts_hash, sum)); assert_eq!(result, (expected_accounts_hash, sum));
} }
fn sample_storage() -> (SnapshotStoragesOne, usize, Slot) { fn sample_storage() -> (Vec<Arc<AccountStorageEntry>>, usize, Slot) {
let (_temp_dirs, paths) = get_temp_accounts_paths(1).unwrap(); let (_temp_dirs, paths) = get_temp_accounts_paths(1).unwrap();
let slot_expected: Slot = 0; let slot_expected: Slot = 0;
let size: usize = 123; let size: usize = 123;
@ -10144,7 +10147,7 @@ pub mod tests {
} }
fn append_sample_data_to_storage( fn append_sample_data_to_storage(
storages: &SnapshotStoragesOne, storages: &[Arc<AccountStorageEntry>],
pubkey: &Pubkey, pubkey: &Pubkey,
write_version: StoredMetaWriteVersion, write_version: StoredMetaWriteVersion,
) { ) {
@ -10157,7 +10160,7 @@ pub mod tests {
write_version: StoredMetaWriteVersion, write_version: StoredMetaWriteVersion,
slot: Slot, slot: Slot,
pubkey: &Pubkey, pubkey: &Pubkey,
) -> SnapshotStoragesOne { ) -> Vec<Arc<AccountStorageEntry>> {
sample_storage_with_entries_id(tf, write_version, slot, pubkey, 0) sample_storage_with_entries_id(tf, write_version, slot, pubkey, 0)
} }
@ -10167,7 +10170,7 @@ pub mod tests {
slot: Slot, slot: Slot,
pubkey: &Pubkey, pubkey: &Pubkey,
id: AppendVecId, id: AppendVecId,
) -> SnapshotStoragesOne { ) -> Vec<Arc<AccountStorageEntry>> {
let (_temp_dirs, paths) = get_temp_accounts_paths(1).unwrap(); let (_temp_dirs, paths) = get_temp_accounts_paths(1).unwrap();
let size: usize = 123; let size: usize = 123;
let mut data = AccountStorageEntry::new(&paths[0], slot, id, size as u64); let mut data = AccountStorageEntry::new(&paths[0], slot, id, size as u64);

View File

@ -1,6 +1,6 @@
use { use {
crate::{ crate::{
accounts_db::{SnapshotStoragesOne, PUBKEY_BINS_FOR_CALCULATING_HASHES}, accounts_db::{AccountStorageEntry, PUBKEY_BINS_FOR_CALCULATING_HASHES},
ancestors::Ancestors, ancestors::Ancestors,
rent_collector::RentCollector, rent_collector::RentCollector,
}, },
@ -22,7 +22,7 @@ use {
io::{BufWriter, Write}, io::{BufWriter, Write},
sync::{ sync::{
atomic::{AtomicU64, AtomicUsize, Ordering}, atomic::{AtomicU64, AtomicUsize, Ordering},
Mutex, Arc, Mutex,
}, },
}, },
tempfile::tempfile, tempfile::tempfile,
@ -162,7 +162,7 @@ pub struct HashStats {
pub count_ancient_scans: AtomicU64, pub count_ancient_scans: AtomicU64,
} }
impl HashStats { impl HashStats {
pub fn calc_storage_size_quartiles(&mut self, storages: &SnapshotStoragesOne) { pub fn calc_storage_size_quartiles(&mut self, storages: &[Arc<AccountStorageEntry>]) {
let mut sum = 0; let mut sum = 0;
let mut sizes = storages let mut sizes = storages
.iter() .iter()

View File

@ -44,8 +44,8 @@ use {
TransactionLoadResult, TransactionLoadResult,
}, },
accounts_db::{ accounts_db::{
AccountShrinkThreshold, AccountsDbConfig, CalcAccountsHashDataSource, AccountShrinkThreshold, AccountStorageEntry, AccountsDbConfig,
IncludeSlotInHash, SnapshotStoragesOne, ACCOUNTS_DB_CONFIG_FOR_BENCHMARKS, CalcAccountsHashDataSource, IncludeSlotInHash, ACCOUNTS_DB_CONFIG_FOR_BENCHMARKS,
ACCOUNTS_DB_CONFIG_FOR_TESTING, ACCOUNTS_DB_CONFIG_FOR_TESTING,
}, },
accounts_hash::AccountsHash, accounts_hash::AccountsHash,
@ -6828,7 +6828,7 @@ impl Bank {
/// Get this bank's storages to use for snapshots. /// Get this bank's storages to use for snapshots.
/// ///
/// If a base slot is provided, return only the storages that are *higher* than this slot. /// If a base slot is provided, return only the storages that are *higher* than this slot.
pub fn get_snapshot_storages(&self, base_slot: Option<Slot>) -> SnapshotStoragesOne { pub fn get_snapshot_storages(&self, base_slot: Option<Slot>) -> Vec<Arc<AccountStorageEntry>> {
// if a base slot is provided, request storages starting at the slot *after* // if a base slot is provided, request storages starting at the slot *after*
let start_slot = base_slot.map_or(0, |slot| slot.saturating_add(1)); let start_slot = base_slot.map_or(0, |slot| slot.saturating_add(1));
// we want to *include* the storage at our slot // we want to *include* the storage at our slot

View File

@ -1,7 +1,7 @@
use { use {
crate::{ crate::{
accounts::Accounts, accounts::Accounts,
accounts_db::SnapshotStoragesOne, accounts_db::AccountStorageEntry,
accounts_hash::AccountsHash, accounts_hash::AccountsHash,
bank::{Bank, BankSlotDelta}, bank::{Bank, BankSlotDelta},
epoch_accounts_hash::EpochAccountsHash, epoch_accounts_hash::EpochAccountsHash,
@ -36,7 +36,7 @@ pub struct AccountsPackage {
pub package_type: AccountsPackageType, pub package_type: AccountsPackageType,
pub slot: Slot, pub slot: Slot,
pub block_height: Slot, pub block_height: Slot,
pub snapshot_storages: SnapshotStoragesOne, pub snapshot_storages: Vec<Arc<AccountStorageEntry>>,
pub expected_capitalization: u64, pub expected_capitalization: u64,
pub accounts_hash_for_testing: Option<AccountsHash>, pub accounts_hash_for_testing: Option<AccountsHash>,
pub accounts: Arc<Accounts>, pub accounts: Arc<Accounts>,
@ -62,7 +62,7 @@ impl AccountsPackage {
slot_deltas: Vec<BankSlotDelta>, slot_deltas: Vec<BankSlotDelta>,
full_snapshot_archives_dir: impl AsRef<Path>, full_snapshot_archives_dir: impl AsRef<Path>,
incremental_snapshot_archives_dir: impl AsRef<Path>, incremental_snapshot_archives_dir: impl AsRef<Path>,
snapshot_storages: SnapshotStoragesOne, snapshot_storages: Vec<Arc<AccountStorageEntry>>,
archive_format: ArchiveFormat, archive_format: ArchiveFormat,
snapshot_version: SnapshotVersion, snapshot_version: SnapshotVersion,
accounts_hash_for_testing: Option<AccountsHash>, accounts_hash_for_testing: Option<AccountsHash>,
@ -125,7 +125,7 @@ impl AccountsPackage {
pub fn new_for_epoch_accounts_hash( pub fn new_for_epoch_accounts_hash(
package_type: AccountsPackageType, package_type: AccountsPackageType,
bank: &Bank, bank: &Bank,
snapshot_storages: SnapshotStoragesOne, snapshot_storages: Vec<Arc<AccountStorageEntry>>,
accounts_hash_for_testing: Option<AccountsHash>, accounts_hash_for_testing: Option<AccountsHash>,
) -> Self { ) -> Self {
assert_eq!(package_type, AccountsPackageType::EpochAccountsHash); assert_eq!(package_type, AccountsPackageType::EpochAccountsHash);
@ -141,7 +141,7 @@ impl AccountsPackage {
fn _new( fn _new(
package_type: AccountsPackageType, package_type: AccountsPackageType,
bank: &Bank, bank: &Bank,
snapshot_storages: SnapshotStoragesOne, snapshot_storages: Vec<Arc<AccountStorageEntry>>,
accounts_hash_for_testing: Option<AccountsHash>, accounts_hash_for_testing: Option<AccountsHash>,
snapshot_info: Option<SupplementalSnapshotInfo>, snapshot_info: Option<SupplementalSnapshotInfo>,
) -> Self { ) -> Self {
@ -167,7 +167,7 @@ impl AccountsPackage {
package_type: AccountsPackageType::AccountsHashVerifier, package_type: AccountsPackageType::AccountsHashVerifier,
slot: Slot::default(), slot: Slot::default(),
block_height: Slot::default(), block_height: Slot::default(),
snapshot_storages: SnapshotStoragesOne::default(), snapshot_storages: Vec::default(),
expected_capitalization: u64::default(), expected_capitalization: u64::default(),
accounts_hash_for_testing: Option::default(), accounts_hash_for_testing: Option::default(),
accounts: Arc::new(Accounts::default_for_tests()), accounts: Arc::new(Accounts::default_for_tests()),
@ -239,7 +239,7 @@ pub struct SnapshotPackage {
pub block_height: Slot, pub block_height: Slot,
pub slot_deltas: Vec<BankSlotDelta>, pub slot_deltas: Vec<BankSlotDelta>,
pub snapshot_links: TempDir, pub snapshot_links: TempDir,
pub snapshot_storages: SnapshotStoragesOne, pub snapshot_storages: Vec<Arc<AccountStorageEntry>>,
pub snapshot_version: SnapshotVersion, pub snapshot_version: SnapshotVersion,
pub snapshot_type: SnapshotType, pub snapshot_type: SnapshotType,
} }

View File

@ -3,7 +3,7 @@ use {
account_storage::AccountStorageMap, account_storage::AccountStorageMap,
accounts_db::{ accounts_db::{
AccountShrinkThreshold, AccountStorageEntry, AccountsDbConfig, AtomicAppendVecId, AccountShrinkThreshold, AccountStorageEntry, AccountsDbConfig, AtomicAppendVecId,
CalcAccountsHashDataSource, SnapshotStoragesOne, CalcAccountsHashDataSource,
}, },
accounts_index::AccountSecondaryIndexes, accounts_index::AccountSecondaryIndexes,
accounts_update_notifier_interface::AccountsUpdateNotifier, accounts_update_notifier_interface::AccountsUpdateNotifier,
@ -2181,7 +2181,7 @@ pub fn purge_old_bank_snapshots(bank_snapshots_dir: impl AsRef<Path>) {
} }
/// Get the snapshot storages for this bank /// Get the snapshot storages for this bank
pub fn get_snapshot_storages(bank: &Bank) -> SnapshotStoragesOne { pub fn get_snapshot_storages(bank: &Bank) -> Vec<Arc<AccountStorageEntry>> {
let mut measure_snapshot_storages = Measure::start("snapshot-storages"); let mut measure_snapshot_storages = Measure::start("snapshot-storages");
let snapshot_storages = bank.get_snapshot_storages(None); let snapshot_storages = bank.get_snapshot_storages(None);
measure_snapshot_storages.stop(); measure_snapshot_storages.stop();
@ -2297,7 +2297,7 @@ pub fn package_and_archive_full_snapshot(
bank_snapshots_dir: impl AsRef<Path>, bank_snapshots_dir: impl AsRef<Path>,
full_snapshot_archives_dir: impl AsRef<Path>, full_snapshot_archives_dir: impl AsRef<Path>,
incremental_snapshot_archives_dir: impl AsRef<Path>, incremental_snapshot_archives_dir: impl AsRef<Path>,
snapshot_storages: SnapshotStoragesOne, snapshot_storages: Vec<Arc<AccountStorageEntry>>,
archive_format: ArchiveFormat, archive_format: ArchiveFormat,
snapshot_version: SnapshotVersion, snapshot_version: SnapshotVersion,
maximum_full_snapshot_archives_to_retain: usize, maximum_full_snapshot_archives_to_retain: usize,
@ -2349,7 +2349,7 @@ pub fn package_and_archive_incremental_snapshot(
bank_snapshots_dir: impl AsRef<Path>, bank_snapshots_dir: impl AsRef<Path>,
full_snapshot_archives_dir: impl AsRef<Path>, full_snapshot_archives_dir: impl AsRef<Path>,
incremental_snapshot_archives_dir: impl AsRef<Path>, incremental_snapshot_archives_dir: impl AsRef<Path>,
snapshot_storages: SnapshotStoragesOne, snapshot_storages: Vec<Arc<AccountStorageEntry>>,
archive_format: ArchiveFormat, archive_format: ArchiveFormat,
snapshot_version: SnapshotVersion, snapshot_version: SnapshotVersion,
maximum_full_snapshot_archives_to_retain: usize, maximum_full_snapshot_archives_to_retain: usize,