From d52e28ac22e140f3b6eae7843f637e75a1c2fc14 Mon Sep 17 00:00:00 2001 From: "Jeff Washington (jwash)" Date: Tue, 18 Oct 2022 11:52:48 -0700 Subject: [PATCH] combine sort into get_unique_accounts_from_storages (#28450) --- runtime/src/accounts_db.rs | 18 ++++++------------ runtime/src/snapshot_minimizer.rs | 2 -- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/runtime/src/accounts_db.rs b/runtime/src/accounts_db.rs index e344229717..bca9090fb3 100644 --- a/runtime/src/accounts_db.rs +++ b/runtime/src/accounts_db.rs @@ -225,7 +225,7 @@ pub const ACCOUNTS_DB_CONFIG_FOR_BENCHMARKS: AccountsDbConfig = AccountsDbConfig pub type BinnedHashData = Vec>; pub struct GetUniqueAccountsResult<'a> { - pub stored_accounts: HashMap>, + pub stored_accounts: Vec<(Pubkey, FoundStoredAccount<'a>)>, pub original_bytes: u64, store_ids: Vec, } @@ -3608,6 +3608,11 @@ impl AccountsDb { store.append_vec_id() }) .collect(); + + // sort by pubkey to keep account index lookups close + let mut stored_accounts = stored_accounts.into_iter().collect::>(); + stored_accounts.sort_unstable_by(|a, b| a.0.cmp(&b.0)); + GetUniqueAccountsResult { stored_accounts, original_bytes, @@ -3626,10 +3631,6 @@ impl AccountsDb { store_ids, } = self.get_unique_accounts_from_storages(stores); - // sort by pubkey to keep account index lookups close - let mut stored_accounts = stored_accounts.into_iter().collect::>(); - stored_accounts.sort_unstable_by(|a, b| a.0.cmp(&b.0)); - let mut index_read_elapsed = Measure::start("index_read_elapsed"); let alive_total_collect = AtomicUsize::new(0); @@ -4280,13 +4281,6 @@ impl AccountsDb { store_ids: _, } = self.get_unique_accounts_from_storages(old_storages.iter()); - // sort by pubkey to keep account index lookups close - let stored_accounts = { - let mut stored_accounts = stored_accounts.into_iter().collect::>(); - stored_accounts.sort_unstable_by(|a, b| a.0.cmp(&b.0)); - stored_accounts - }; - let mut index_read_elapsed = Measure::start("index_read_elapsed"); let alive_total_collect = AtomicUsize::new(0); diff --git a/runtime/src/snapshot_minimizer.rs b/runtime/src/snapshot_minimizer.rs index 7a710e63a3..2f69ee78f0 100644 --- a/runtime/src/snapshot_minimizer.rs +++ b/runtime/src/snapshot_minimizer.rs @@ -309,8 +309,6 @@ impl<'a> SnapshotMinimizer<'a> { } = self .accounts_db() .get_unique_accounts_from_storages(storages.iter()); - let mut stored_accounts = stored_accounts.into_iter().collect::>(); - stored_accounts.sort_unstable_by(|a, b| a.0.cmp(&b.0)); let keep_accounts_collect = Mutex::new(Vec::with_capacity(stored_accounts.len())); let purge_pubkeys_collect = Mutex::new(Vec::with_capacity(stored_accounts.len()));