From 0d934d311ec81ca11cef1d5a93e47fa6adcf192d Mon Sep 17 00:00:00 2001 From: "Jeff Washington (jwash)" <75863576+jeffwashington@users.noreply.github.com> Date: Mon, 18 Oct 2021 09:06:32 -0500 Subject: [PATCH] sort shrink acct indexes (#20708) --- runtime/src/accounts_db.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/src/accounts_db.rs b/runtime/src/accounts_db.rs index babb55cd00..dc243594af 100644 --- a/runtime/src/accounts_db.rs +++ b/runtime/src/accounts_db.rs @@ -2471,7 +2471,7 @@ impl AccountsDb { unrefed_pubkeys: &mut Vec<&'a Pubkey>, ) -> usize where - I: Iterator)>, + I: Iterator)>, { let mut alive_total = 0; @@ -2544,6 +2544,10 @@ impl AccountsDb { num_stores += 1; } + // 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);