avoid zeroing out root stats with empty data (#25111)
This commit is contained in:
parent
b91cc87680
commit
e9a9604ca7
|
@ -1258,22 +1258,22 @@ struct LatestAccountsIndexRootsStats {
|
||||||
|
|
||||||
impl LatestAccountsIndexRootsStats {
|
impl LatestAccountsIndexRootsStats {
|
||||||
fn update(&self, accounts_index_roots_stats: &AccountsIndexRootsStats) {
|
fn update(&self, accounts_index_roots_stats: &AccountsIndexRootsStats) {
|
||||||
self.roots_len
|
if let Some(value) = accounts_index_roots_stats.roots_len {
|
||||||
.store(accounts_index_roots_stats.roots_len, Ordering::Relaxed);
|
self.roots_len.store(value, Ordering::Relaxed);
|
||||||
self.uncleaned_roots_len.store(
|
}
|
||||||
accounts_index_roots_stats.uncleaned_roots_len,
|
if let Some(value) = accounts_index_roots_stats.uncleaned_roots_len {
|
||||||
Ordering::Relaxed,
|
self.uncleaned_roots_len.store(value, Ordering::Relaxed);
|
||||||
);
|
}
|
||||||
self.previous_uncleaned_roots_len.store(
|
if let Some(value) = accounts_index_roots_stats.previous_uncleaned_roots_len {
|
||||||
accounts_index_roots_stats.previous_uncleaned_roots_len,
|
self.previous_uncleaned_roots_len
|
||||||
Ordering::Relaxed,
|
.store(value, Ordering::Relaxed);
|
||||||
);
|
}
|
||||||
self.historical_roots_len.store(
|
if let Some(value) = accounts_index_roots_stats.historical_roots_len {
|
||||||
accounts_index_roots_stats.historical_roots_len,
|
self.historical_roots_len.store(value, Ordering::Relaxed);
|
||||||
Ordering::Relaxed,
|
}
|
||||||
);
|
if let Some(value) = accounts_index_roots_stats.roots_range {
|
||||||
self.roots_range
|
self.roots_range.store(value, Ordering::Relaxed);
|
||||||
.store(accounts_index_roots_stats.roots_range, Ordering::Relaxed);
|
}
|
||||||
self.rooted_cleaned_count.fetch_add(
|
self.rooted_cleaned_count.fetch_add(
|
||||||
accounts_index_roots_stats.rooted_cleaned_count,
|
accounts_index_roots_stats.rooted_cleaned_count,
|
||||||
Ordering::Relaxed,
|
Ordering::Relaxed,
|
||||||
|
|
|
@ -458,11 +458,11 @@ impl RootsTracker {
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct AccountsIndexRootsStats {
|
pub struct AccountsIndexRootsStats {
|
||||||
pub roots_len: usize,
|
pub roots_len: Option<usize>,
|
||||||
pub uncleaned_roots_len: usize,
|
pub uncleaned_roots_len: Option<usize>,
|
||||||
pub previous_uncleaned_roots_len: usize,
|
pub previous_uncleaned_roots_len: Option<usize>,
|
||||||
pub roots_range: u64,
|
pub roots_range: Option<u64>,
|
||||||
pub historical_roots_len: usize,
|
pub historical_roots_len: Option<usize>,
|
||||||
pub rooted_cleaned_count: usize,
|
pub rooted_cleaned_count: usize,
|
||||||
pub unrooted_cleaned_count: usize,
|
pub unrooted_cleaned_count: usize,
|
||||||
pub clean_unref_from_storage_us: u64,
|
pub clean_unref_from_storage_us: u64,
|
||||||
|
@ -1832,11 +1832,12 @@ impl<T: IndexValue> AccountsIndex<T> {
|
||||||
}
|
}
|
||||||
false
|
false
|
||||||
} else {
|
} else {
|
||||||
stats.roots_len = w_roots_tracker.alive_roots.len();
|
stats.roots_len = Some(w_roots_tracker.alive_roots.len());
|
||||||
stats.uncleaned_roots_len = w_roots_tracker.uncleaned_roots.len();
|
stats.uncleaned_roots_len = Some(w_roots_tracker.uncleaned_roots.len());
|
||||||
stats.previous_uncleaned_roots_len = w_roots_tracker.previous_uncleaned_roots.len();
|
stats.previous_uncleaned_roots_len =
|
||||||
stats.roots_range = w_roots_tracker.alive_roots.range_width();
|
Some(w_roots_tracker.previous_uncleaned_roots.len());
|
||||||
stats.historical_roots_len = w_roots_tracker.historical_roots.len();
|
stats.roots_range = Some(w_roots_tracker.alive_roots.range_width());
|
||||||
|
stats.historical_roots_len = Some(w_roots_tracker.historical_roots.len());
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue