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()));