add `dirty_ancient_stores` to clean metrics (#27774)
This commit is contained in:
parent
416b45ac0f
commit
4f232250e5
|
@ -706,6 +706,8 @@ struct CleanKeyTimings {
|
||||||
delta_key_count: u64,
|
delta_key_count: u64,
|
||||||
dirty_pubkeys_count: u64,
|
dirty_pubkeys_count: u64,
|
||||||
oldest_dirty_slot: Slot,
|
oldest_dirty_slot: Slot,
|
||||||
|
/// number of ancient append vecs that were scanned because they were dirty when clean started
|
||||||
|
dirty_ancient_stores: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Persistent storage structure holding the accounts
|
/// Persistent storage structure holding the accounts
|
||||||
|
@ -2536,6 +2538,7 @@ impl AccountsDb {
|
||||||
});
|
});
|
||||||
let dirty_stores_len = dirty_stores.len();
|
let dirty_stores_len = dirty_stores.len();
|
||||||
let pubkeys = DashSet::new();
|
let pubkeys = DashSet::new();
|
||||||
|
let dirty_ancient_stores = AtomicUsize::default();
|
||||||
let mut dirty_store_routine = || {
|
let mut dirty_store_routine = || {
|
||||||
let chunk_size = 1.max(dirty_stores_len.saturating_div(rayon::current_num_threads()));
|
let chunk_size = 1.max(dirty_stores_len.saturating_div(rayon::current_num_threads()));
|
||||||
let oldest_dirty_slots: Vec<u64> = dirty_stores
|
let oldest_dirty_slots: Vec<u64> = dirty_stores
|
||||||
|
@ -2543,6 +2546,9 @@ impl AccountsDb {
|
||||||
.map(|dirty_store_chunk| {
|
.map(|dirty_store_chunk| {
|
||||||
let mut oldest_dirty_slot = max_slot_inclusive.saturating_add(1);
|
let mut oldest_dirty_slot = max_slot_inclusive.saturating_add(1);
|
||||||
dirty_store_chunk.iter().for_each(|(slot, store)| {
|
dirty_store_chunk.iter().for_each(|(slot, store)| {
|
||||||
|
if is_ancient(&store.accounts) {
|
||||||
|
dirty_ancient_stores.fetch_add(1, Ordering::Relaxed);
|
||||||
|
}
|
||||||
oldest_dirty_slot = oldest_dirty_slot.min(*slot);
|
oldest_dirty_slot = oldest_dirty_slot.min(*slot);
|
||||||
store.accounts.account_iter().for_each(|account| {
|
store.accounts.account_iter().for_each(|account| {
|
||||||
pubkeys.insert(account.meta.pubkey);
|
pubkeys.insert(account.meta.pubkey);
|
||||||
|
@ -2573,6 +2579,7 @@ impl AccountsDb {
|
||||||
timings.dirty_pubkeys_count = pubkeys.len() as u64;
|
timings.dirty_pubkeys_count = pubkeys.len() as u64;
|
||||||
dirty_store_processing_time.stop();
|
dirty_store_processing_time.stop();
|
||||||
timings.dirty_store_processing_us += dirty_store_processing_time.as_us();
|
timings.dirty_store_processing_us += dirty_store_processing_time.as_us();
|
||||||
|
timings.dirty_ancient_stores = dirty_ancient_stores.load(Ordering::Relaxed);
|
||||||
|
|
||||||
let mut collect_delta_keys = Measure::start("key_create");
|
let mut collect_delta_keys = Measure::start("key_create");
|
||||||
let delta_keys =
|
let delta_keys =
|
||||||
|
@ -2985,6 +2992,11 @@ impl AccountsDb {
|
||||||
pubkeys_removed_from_accounts_index.len(),
|
pubkeys_removed_from_accounts_index.len(),
|
||||||
i64
|
i64
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
"dirty_ancient_stores",
|
||||||
|
key_timings.dirty_ancient_stores,
|
||||||
|
i64
|
||||||
|
),
|
||||||
(
|
(
|
||||||
"dirty_store_processing_us",
|
"dirty_store_processing_us",
|
||||||
key_timings.dirty_store_processing_us,
|
key_timings.dirty_store_processing_us,
|
||||||
|
|
Loading…
Reference in New Issue