Add BlockstoreProcessorResult
This commit is contained in:
parent
79f3194d0c
commit
d62ed4f6b3
|
@ -1,9 +1,8 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
bank_forks::{BankForks, SnapshotConfig},
|
bank_forks::SnapshotConfig,
|
||||||
blockstore::Blockstore,
|
blockstore::Blockstore,
|
||||||
blockstore_processor::{self, BankForksInfo, BlockstoreProcessorError, ProcessOptions},
|
blockstore_processor::{self, BlockstoreProcessorResult, ProcessOptions},
|
||||||
entry::VerifyRecyclers,
|
entry::VerifyRecyclers,
|
||||||
leader_schedule_cache::LeaderScheduleCache,
|
|
||||||
snapshot_utils,
|
snapshot_utils,
|
||||||
};
|
};
|
||||||
use log::*;
|
use log::*;
|
||||||
|
@ -16,7 +15,7 @@ pub fn load(
|
||||||
account_paths: Vec<PathBuf>,
|
account_paths: Vec<PathBuf>,
|
||||||
snapshot_config: Option<&SnapshotConfig>,
|
snapshot_config: Option<&SnapshotConfig>,
|
||||||
process_options: ProcessOptions,
|
process_options: ProcessOptions,
|
||||||
) -> Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError> {
|
) -> BlockstoreProcessorResult {
|
||||||
if let Some(snapshot_config) = snapshot_config.as_ref() {
|
if let Some(snapshot_config) = snapshot_config.as_ref() {
|
||||||
info!(
|
info!(
|
||||||
"Initializing snapshot path: {:?}",
|
"Initializing snapshot path: {:?}",
|
||||||
|
|
|
@ -37,6 +37,9 @@ use std::{
|
||||||
};
|
};
|
||||||
use thiserror::Error;
|
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()
|
thread_local!(static PAR_THREAD_POOL: RefCell<ThreadPool> = RefCell::new(rayon::ThreadPoolBuilder::new()
|
||||||
.num_threads(get_thread_count())
|
.num_threads(get_thread_count())
|
||||||
.thread_name(|ix| format!("blockstore_processor_{}", ix))
|
.thread_name(|ix| format!("blockstore_processor_{}", ix))
|
||||||
|
@ -271,8 +274,7 @@ pub fn process_blockstore(
|
||||||
blockstore: &Blockstore,
|
blockstore: &Blockstore,
|
||||||
account_paths: Vec<PathBuf>,
|
account_paths: Vec<PathBuf>,
|
||||||
opts: ProcessOptions,
|
opts: ProcessOptions,
|
||||||
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError>
|
) -> BlockstoreProcessorResult {
|
||||||
{
|
|
||||||
if let Some(num_threads) = opts.override_num_threads {
|
if let Some(num_threads) = opts.override_num_threads {
|
||||||
PAR_THREAD_POOL.with(|pool| {
|
PAR_THREAD_POOL.with(|pool| {
|
||||||
*pool.borrow_mut() = rayon::ThreadPoolBuilder::new()
|
*pool.borrow_mut() = rayon::ThreadPoolBuilder::new()
|
||||||
|
@ -297,8 +299,7 @@ pub fn process_blockstore_from_root(
|
||||||
bank: Arc<Bank>,
|
bank: Arc<Bank>,
|
||||||
opts: &ProcessOptions,
|
opts: &ProcessOptions,
|
||||||
recyclers: &VerifyRecyclers,
|
recyclers: &VerifyRecyclers,
|
||||||
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlockstoreProcessorError>
|
) -> BlockstoreProcessorResult {
|
||||||
{
|
|
||||||
info!("processing ledger from root slot {}...", bank.slot());
|
info!("processing ledger from root slot {}...", bank.slot());
|
||||||
let allocated = thread_mem_usage::Allocatedp::default();
|
let allocated = thread_mem_usage::Allocatedp::default();
|
||||||
let initial_allocation = allocated.get();
|
let initial_allocation = allocated.get();
|
||||||
|
@ -357,7 +358,7 @@ pub fn process_blockstore_from_root(
|
||||||
};
|
};
|
||||||
|
|
||||||
info!(
|
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()),
|
duration_as_ms(&now.elapsed()),
|
||||||
allocated.since(initial_allocation) / 1_000_000,
|
allocated.since(initial_allocation) / 1_000_000,
|
||||||
bank_forks_info.len(),
|
bank_forks_info.len(),
|
||||||
|
@ -365,8 +366,15 @@ pub fn process_blockstore_from_root(
|
||||||
bank_forks_info
|
bank_forks_info
|
||||||
.iter()
|
.iter()
|
||||||
.map(|bfi| bfi.bank_slot.to_string())
|
.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))
|
Ok((bank_forks, bank_forks_info, leader_schedule_cache))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue