Add BlockstoreProcessorResult

This commit is contained in:
Michael Vines
2020-01-23 16:09:32 -07:00
parent 5d8dc78718
commit d2c15b596f
2 changed files with 17 additions and 10 deletions

View File

@ -1,8 +1,7 @@
use crate::{
bank_forks::{BankForks, SnapshotConfig},
bank_forks::SnapshotConfig,
blockstore::Blockstore,
blockstore_processor::{self, BankForksInfo, BlockstoreProcessorError, ProcessOptions},
leader_schedule_cache::LeaderScheduleCache,
blockstore_processor::{self, BlockstoreProcessorResult, ProcessOptions},
snapshot_utils,
};
use log::*;
@ -15,7 +14,7 @@ pub fn load(
account_paths: Vec<PathBuf>,
snapshot_config: Option<&SnapshotConfig>,
process_options: ProcessOptions,
) -> Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError> {
) -> BlockstoreProcessorResult {
if let Some(snapshot_config) = snapshot_config.as_ref() {
info!(
"Initializing snapshot path: {:?}",

View File

@ -36,6 +36,9 @@ use std::{
};
use thiserror::Error;
pub type BlockstoreProcessorResult =
result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError>;
thread_local!(static PAR_THREAD_POOL: RefCell<ThreadPool> = RefCell::new(rayon::ThreadPoolBuilder::new()
.num_threads(get_thread_count())
.thread_name(|ix| format!("blockstore_processor_{}", ix))
@ -270,8 +273,7 @@ pub fn process_blockstore(
blockstore: &Blockstore,
account_paths: Vec<PathBuf>,
opts: ProcessOptions,
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError>
{
) -> BlockstoreProcessorResult {
if let Some(num_threads) = opts.override_num_threads {
PAR_THREAD_POOL.with(|pool| {
*pool.borrow_mut() = rayon::ThreadPoolBuilder::new()
@ -294,8 +296,7 @@ pub fn process_blockstore_from_root(
blockstore: &Blockstore,
bank: Arc<Bank>,
opts: &ProcessOptions,
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError>
{
) -> BlockstoreProcessorResult {
info!("processing ledger from root slot {}...", bank.slot());
let allocated = thread_mem_usage::Allocatedp::default();
let initial_allocation = allocated.get();
@ -353,7 +354,7 @@ pub fn process_blockstore_from_root(
};
info!(
"ledger processed in {}ms. {} MB allocated. {} fork{} at {}",
"ledger processed in {}ms. {} MB allocated. {} fork{} at {}, with {} frozen bank{}",
duration_as_ms(&now.elapsed()),
allocated.since(initial_allocation) / 1_000_000,
bank_forks_info.len(),
@ -361,8 +362,15 @@ pub fn process_blockstore_from_root(
bank_forks_info
.iter()
.map(|bfi| bfi.bank_slot.to_string())
.join(", ")
.join(", "),
bank_forks.frozen_banks().len(),
if bank_forks.frozen_banks().len() > 1 {
"s"
} else {
""
},
);
assert!(bank_forks.active_banks().is_empty());
Ok((bank_forks, bank_forks_info, leader_schedule_cache))
}