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