diff --git a/runtime/src/bucket_map_holder_stats.rs b/runtime/src/bucket_map_holder_stats.rs index ed016374f8..f836a220c9 100644 --- a/runtime/src/bucket_map_holder_stats.rs +++ b/runtime/src/bucket_map_holder_stats.rs @@ -39,6 +39,7 @@ pub struct BucketMapHolderStats { pub flush_scan_us: AtomicU64, pub flush_update_us: AtomicU64, pub flush_remove_us: AtomicU64, + pub flush_grow_us: AtomicU64, last_time: AtomicInterval, } @@ -233,6 +234,11 @@ impl BucketMapHolderStats { self.flush_update_us.swap(0, Ordering::Relaxed), i64 ), + ( + "flush_grow_us", + self.flush_remove_us.swap(0, Ordering::Relaxed), + i64 + ), ( "flush_remove_us", self.flush_remove_us.swap(0, Ordering::Relaxed), diff --git a/runtime/src/in_mem_accounts_index.rs b/runtime/src/in_mem_accounts_index.rs index 665c6e3665..167576cb14 100644 --- a/runtime/src/in_mem_accounts_index.rs +++ b/runtime/src/in_mem_accounts_index.rs @@ -729,7 +729,7 @@ impl InMemAccountsIndex { ); } - let m = Measure::start("flush_remove"); + let m = Measure::start("flush_remove_or_grow"); match disk_resize { Ok(_) => { if !self.flush_remove_from_cache(removes, current_age, startup, false) { @@ -751,6 +751,7 @@ impl InMemAccountsIndex { // grow the bucket, outside of all in-mem locks. // then, loop to try again disk.grow(err); + Self::update_time_stat(&self.stats().flush_grow_us, m); } } }