collect rent in parallel for partitions (#19478)

* collect rent in parallel for partitions

* combine use

* use fg accounts db thread pool
This commit is contained in:
Jeff Washington (jwash)
2021-09-07 11:51:59 -05:00
committed by GitHub
parent 01a7ec8198
commit 1560d5e3c3

View File

@ -65,7 +65,10 @@ use crate::{
use byteorder::{ByteOrder, LittleEndian};
use itertools::Itertools;
use log::*;
use rayon::ThreadPool;
use rayon::{
iter::{IntoParallelIterator, ParallelIterator},
ThreadPool,
};
use solana_measure::measure::Measure;
use solana_metrics::{datapoint_debug, inc_new_counter_debug, inc_new_counter_info};
use solana_program_runtime::{ExecuteDetailsTimings, Executors};
@ -3858,9 +3861,13 @@ impl Bank {
}
let mut measure = Measure::start("collect_rent_eagerly-ms");
for partition in self.rent_collection_partitions() {
self.collect_rent_in_partition(partition);
}
self.rc.accounts.accounts_db.thread_pool.install(|| {
self.rent_collection_partitions()
.into_par_iter()
.for_each(|partition| {
self.collect_rent_in_partition(partition);
});
});
measure.stop();
inc_new_counter_info!("collect_rent_eagerly-ms", measure.as_ms() as usize);
}