Add BlockstoreProcessorResult

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

View File

@ -1,9 +1,8 @@
use crate::{
bank_forks::{BankForks, SnapshotConfig},
bank_forks::SnapshotConfig,
blockstore::Blockstore,
blockstore_processor::{self, BankForksInfo, BlockstoreProcessorError, ProcessOptions},
blockstore_processor::{self, BlockstoreProcessorResult, ProcessOptions},
entry::VerifyRecyclers,
leader_schedule_cache::LeaderScheduleCache,
snapshot_utils,
};
use log::*;
@ -16,7 +15,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

@ -37,6 +37,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))
@ -271,8 +274,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()
@ -297,8 +299,7 @@ pub fn process_blockstore_from_root(
bank: Arc<Bank>,
opts: &ProcessOptions,
recyclers: &VerifyRecyclers,
) -> 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();
@ -357,7 +358,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(),
@ -365,8 +366,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))
}