fix hash calc # storages, # slots (#20832)

This commit is contained in:
Jeff Washington (jwash)
2021-10-25 14:37:50 -05:00
committed by GitHub
parent f4f281e7c7
commit 9e85499d4c
3 changed files with 14 additions and 2 deletions

View File

@ -5538,7 +5538,8 @@ impl AccountsDb {
let bin_calculator = PubkeyBinCalculator24::new(bins);
assert!(bin_range.start < bins && bin_range.end <= bins && bin_range.start < bin_range.end);
let mut time = Measure::start("scan all accounts");
stats.num_snapshot_storage = storage.slot_count();
stats.num_snapshot_storage = storage.storage_count();
stats.num_slots = storage.slot_count();
let mismatch_found = AtomicU64::new(0);
let range = bin_range.end - bin_range.start;
let sort_time = AtomicU64::new(0);

View File

@ -27,6 +27,7 @@ pub struct HashStats {
pub hash_total: usize,
pub unreduced_entries: usize,
pub num_snapshot_storage: usize,
pub num_slots: usize,
pub collect_snapshots_us: u64,
pub storage_sort_us: u64,
pub min_bin_size: usize,
@ -59,6 +60,7 @@ impl HashStats {
self.num_snapshot_storage as i64,
i64
),
("num_slots", self.num_slots as i64, i64),
("min_bin_size", self.min_bin_size as i64, i64),
("max_bin_size", self.max_bin_size as i64, i64),
("total", total_time_us as i64, i64),

View File

@ -8,6 +8,7 @@ pub struct SortedStorages<'a> {
range: Range<Slot>,
storages: Vec<Option<&'a SnapshotStorage>>,
slot_count: usize,
storage_count: usize,
}
impl<'a> SortedStorages<'a> {
@ -32,6 +33,10 @@ impl<'a> SortedStorages<'a> {
self.slot_count
}
pub fn storage_count(&self) -> usize {
self.storage_count
}
// assumptions:
// 1. each SnapshotStorage.!is_empty()
// 2. SnapshotStorage.first().unwrap().get_slot() is unique from all other SnapshotStorage items.
@ -79,7 +84,9 @@ impl<'a> SortedStorages<'a> {
let mut slot_count = 0;
let mut time = Measure::start("get slot");
let source_ = source.clone();
source_.for_each(|(_, slot)| {
let mut storage_count = 0;
source_.for_each(|(storages, slot)| {
storage_count += storages.len();
slot_count += 1;
adjust_min_max(*slot);
});
@ -109,6 +116,7 @@ impl<'a> SortedStorages<'a> {
range,
storages,
slot_count,
storage_count,
}
}
}
@ -132,6 +140,7 @@ pub mod tests {
range,
storages,
slot_count,
storage_count: 0,
}
}
}