Skip to content

Commit

Permalink
add stats for stakes_cache_check_and_store_us (solana-labs#24349)
Browse files Browse the repository at this point in the history
* add stats for stakes_cache_check_and_store_us

* remove redundant metrics
  • Loading branch information
jeffwashington authored May 5, 2022
1 parent 6a9a7df commit 0cc9768
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
12 changes: 10 additions & 2 deletions runtime/src/accounts_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1052,7 +1052,7 @@ pub struct AccountsDb {

pub bank_hashes: RwLock<HashMap<Slot, BankHashInfo>>,

stats: AccountsStats,
pub stats: AccountsStats,

clean_accounts_stats: CleanAccountsStats,

Expand Down Expand Up @@ -1113,7 +1113,7 @@ pub struct AccountsDb {
}

#[derive(Debug, Default)]
struct AccountsStats {
pub struct AccountsStats {
delta_hash_scan_time_total_us: AtomicU64,
delta_hash_accumulate_time_total_us: AtomicU64,
delta_hash_num: AtomicU64,
Expand All @@ -1125,6 +1125,7 @@ struct AccountsStats {
store_update_index: AtomicU64,
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,
Expand Down Expand Up @@ -6574,6 +6575,13 @@ impl AccountsDb {
self.stats.store_append_accounts.swap(0, Ordering::Relaxed),
i64
),
(
"stakes_cache_check_and_store_us",
self.stats
.stakes_cache_check_and_store_us
.swap(0, Ordering::Relaxed),
i64
),
(
"find_storage",
self.stats.store_find_store.swap(0, Ordering::Relaxed),
Expand Down
11 changes: 10 additions & 1 deletion runtime/src/bank.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5815,8 +5815,15 @@ impl Bank {
self.rc
.accounts
.store_slow_cached(self.slot(), pubkey, account);

let mut m = Measure::start("stakes_cache.check_and_store");
self.stakes_cache.check_and_store(pubkey, account);
m.stop();
self.rc
.accounts
.accounts_db
.stats
.stakes_cache_check_and_store_us
.fetch_add(m.as_us(), Relaxed);
}

pub fn force_flush_accounts_cache(&self) {
Expand Down Expand Up @@ -6543,6 +6550,8 @@ impl Bank {
load_result,
execution_results[i].was_executed_successfully(),
) {
// note that this could get timed to: self.rc.accounts.accounts_db.stats.stakes_cache_check_and_store_us,
// but this code path is captured separately in ExecuteTimingType::UpdateStakesCacheUs
let message = tx.message();
for (_i, (pubkey, account)) in
(0..message.account_keys().len()).zip(loaded_transaction.accounts.iter())
Expand Down

0 comments on commit 0cc9768

Please sign in to comment.