diff --git a/runtime/src/accounts_db.rs b/runtime/src/accounts_db.rs index 10e1b3071..513c961e7 100644 --- a/runtime/src/accounts_db.rs +++ b/runtime/src/accounts_db.rs @@ -1452,7 +1452,6 @@ pub struct AccountsStats { store_handle_reclaims: AtomicU64, store_append_accounts: AtomicU64, pub stakes_cache_check_and_store_us: AtomicU64, - store_find_store: AtomicU64, store_num_accounts: AtomicU64, store_total_data: AtomicU64, recycle_store_count: AtomicU64, @@ -6043,29 +6042,18 @@ impl AccountsDb { fn write_accounts_to_storage< 'a, 'b, - F: FnMut(Slot, usize) -> Arc, T: ReadableAccount + Sync, U: StorableAccounts<'a, T>, V: Borrow, >( &self, slot: Slot, - mut storage_finder: F, + storage: &AccountStorageEntry, accounts_and_meta_to_store: &StorableAccountsWithHashesAndWriteVersions<'a, 'b, T, U, V>, ) -> Vec { let mut infos: Vec = Vec::with_capacity(accounts_and_meta_to_store.len()); let mut total_append_accounts_us = 0; - let mut total_storage_find_us = 0; while infos.len() < accounts_and_meta_to_store.len() { - let mut storage_find = Measure::start("storage_finder"); - let account = accounts_and_meta_to_store.account(infos.len()); - let data_len = account - .map(|account| account.data().len()) - .unwrap_or_default(); - // ok if storage can't hold data + alignment at end - we just need the unaligned data to fit - let storage = storage_finder(slot, data_len + STORE_META_OVERHEAD); - storage_find.stop(); - total_storage_find_us += storage_find.as_us(); let mut append_accounts = Measure::start("append_accounts"); let rvs = storage .accounts @@ -6076,6 +6064,10 @@ impl AccountsDb { storage.set_status(AccountStorageStatus::Full); // See if an account overflows the append vecs in the slot. + let account = accounts_and_meta_to_store.account(infos.len()); + let data_len = account + .map(|account| account.data().len()) + .unwrap_or_default(); let data_len = (data_len + STORE_META_OVERHEAD) as u64; if !self.has_space_available(slot, data_len) { let special_store_size = std::cmp::max(data_len * 2, self.file_size); @@ -6109,9 +6101,6 @@ impl AccountsDb { self.stats .store_append_accounts .fetch_add(total_append_accounts_us, Ordering::Relaxed); - self.stats - .store_find_store - .fetch_add(total_storage_find_us, Ordering::Relaxed); infos } @@ -6609,12 +6598,10 @@ impl AccountsDb { ) } StoreTo::Storage(storage) => { - let storage_finder = Box::new(move |_slot, _size| Arc::clone(storage)); - if accounts.has_hash_and_write_version() { self.write_accounts_to_storage( slot, - storage_finder, + storage, &StorableAccountsWithHashesAndWriteVersions::<'_, '_, _, _, &Hash>::new( accounts, ), @@ -6626,7 +6613,7 @@ impl AccountsDb { match hashes { Some(hashes) => self.write_accounts_to_storage( slot, - storage_finder, + storage, &StorableAccountsWithHashesAndWriteVersions::new_with_hashes_and_write_versions( accounts, hashes, @@ -6655,7 +6642,7 @@ impl AccountsDb { self.write_accounts_to_storage( slot, - storage_finder, + storage, &StorableAccountsWithHashesAndWriteVersions::new_with_hashes_and_write_versions(accounts, hashes, write_versions), ) } @@ -8215,11 +8202,6 @@ impl AccountsDb { .swap(0, Ordering::Relaxed), i64 ), - ( - "find_storage", - self.stats.store_find_store.swap(0, Ordering::Relaxed), - i64 - ), ( "num_accounts", self.stats.store_num_accounts.swap(0, Ordering::Relaxed),