diff --git a/runtime/src/accounts_index_storage.rs b/runtime/src/accounts_index_storage.rs index aeafffe56e..0f31d3ef8c 100644 --- a/runtime/src/accounts_index_storage.rs +++ b/runtime/src/accounts_index_storage.rs @@ -109,11 +109,13 @@ impl AccountsIndexStorage { break; } + storage.stats.active_threads.fetch_add(1, Ordering::Relaxed); for bucket in &in_mem { bucket.flush(); } storage.stats.report_stats(); + storage.stats.active_threads.fetch_sub(1, Ordering::Relaxed); } } } diff --git a/runtime/src/bucket_map_holder_stats.rs b/runtime/src/bucket_map_holder_stats.rs index e9f937e3f9..a48a2b0faa 100644 --- a/runtime/src/bucket_map_holder_stats.rs +++ b/runtime/src/bucket_map_holder_stats.rs @@ -19,6 +19,7 @@ pub struct BucketMapHolderStats { pub inserts: AtomicU64, pub count_in_mem: AtomicU64, pub per_bucket_count: Vec, + pub active_threads: AtomicU64, pub get_range_us: AtomicU64, last_time: AtomicInterval, } @@ -125,6 +126,11 @@ impl BucketMapHolderStats { ), ("inserts", self.inserts.swap(0, Ordering::Relaxed), i64), ("deletes", self.deletes.swap(0, Ordering::Relaxed), i64), + ( + "active_threads", + self.active_threads.load(Ordering::Relaxed), + i64 + ), ("items", self.items.swap(0, Ordering::Relaxed), i64), ("keys", self.keys.swap(0, Ordering::Relaxed), i64), );