generate_index timings (#17983) (#18049)

(cherry picked from commit 1feaaf009d)

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
This commit is contained in:
mergify[bot]
2021-06-21 10:12:27 -05:00
committed by GitHub
parent 5637acb799
commit cef9e0de0c

View File

@ -161,6 +161,23 @@ pub struct ErrorCounters {
pub not_allowed_during_cluster_maintenance: usize, pub not_allowed_during_cluster_maintenance: usize,
} }
#[derive(Default, Debug)]
struct GenerateIndexTimings {
pub index_time: u64,
pub scan_time: u64,
}
impl GenerateIndexTimings {
pub fn report(&self) {
datapoint_info!(
"generate_index",
// we cannot accurately measure index insertion time because of many threads and lock contention
("total_us", self.index_time, i64),
("scan_stores_us", self.scan_time, i64),
);
}
}
#[derive(Default, Debug, PartialEq, Clone)] #[derive(Default, Debug, PartialEq, Clone)]
pub struct AccountInfo { pub struct AccountInfo {
/// index identifying the append storage /// index identifying the append storage
@ -5846,13 +5863,11 @@ impl AccountsDb {
}) })
.sum(); .sum();
index_time.stop(); index_time.stop();
let timings = GenerateIndexTimings {
datapoint_info!( scan_time,
"generate_index", index_time: index_time.as_us(),
// we cannot accurately measure index insertion time because of many threads and lock contention };
("total_us", index_time.as_us(), i64), timings.report();
("scan_stores_us", scan_time, i64),
);
// Need to add these last, otherwise older updates will be cleaned // Need to add these last, otherwise older updates will be cleaned
for slot in slots { for slot in slots {