Refactor validator bigtable config
This commit is contained in:
parent
99f1a43262
commit
63ee00e647
|
@ -146,13 +146,11 @@ pub struct JsonRpcConfig {
|
|||
pub enable_cpi_and_log_storage: bool,
|
||||
pub faucet_addr: Option<SocketAddr>,
|
||||
pub health_check_slot_distance: u64,
|
||||
pub enable_bigtable_ledger_storage: bool,
|
||||
pub enable_bigtable_ledger_upload: bool,
|
||||
pub rpc_bigtable_config: Option<RpcBigtableConfig>,
|
||||
pub max_multiple_accounts: Option<usize>,
|
||||
pub account_indexes: AccountSecondaryIndexes,
|
||||
pub rpc_threads: usize,
|
||||
pub rpc_niceness_adj: i8,
|
||||
pub rpc_bigtable_timeout: Option<Duration>,
|
||||
pub full_api: bool,
|
||||
pub obsolete_v1_7_api: bool,
|
||||
pub rpc_scan_and_fix_roots: bool,
|
||||
|
@ -167,6 +165,12 @@ impl JsonRpcConfig {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone)]
|
||||
pub struct RpcBigtableConfig {
|
||||
pub enable_bigtable_ledger_upload: bool,
|
||||
pub timeout: Option<Duration>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct JsonRpcRequestProcessor {
|
||||
bank_forks: Arc<RwLock<BankForks>>,
|
||||
|
|
|
@ -376,18 +376,21 @@ impl JsonRpcService {
|
|||
let exit_bigtable_ledger_upload_service = Arc::new(AtomicBool::new(false));
|
||||
|
||||
let (bigtable_ledger_storage, _bigtable_ledger_upload_service) =
|
||||
if config.enable_bigtable_ledger_storage || config.enable_bigtable_ledger_upload {
|
||||
if let Some(RpcBigtableConfig {
|
||||
enable_bigtable_ledger_upload,
|
||||
timeout,
|
||||
}) = config.rpc_bigtable_config
|
||||
{
|
||||
runtime
|
||||
.block_on(solana_storage_bigtable::LedgerStorage::new(
|
||||
!config.enable_bigtable_ledger_upload,
|
||||
config.rpc_bigtable_timeout,
|
||||
!enable_bigtable_ledger_upload,
|
||||
timeout,
|
||||
None,
|
||||
))
|
||||
.map(|bigtable_ledger_storage| {
|
||||
info!("BigTable ledger storage initialized");
|
||||
|
||||
let bigtable_ledger_upload_service = if config.enable_bigtable_ledger_upload
|
||||
{
|
||||
let bigtable_ledger_upload_service = if enable_bigtable_ledger_upload {
|
||||
Some(Arc::new(BigTableUploadService::new(
|
||||
runtime.clone(),
|
||||
bigtable_ledger_storage.clone(),
|
||||
|
|
|
@ -40,7 +40,10 @@ use {
|
|||
solana_perf::recycler::enable_recycler_warming,
|
||||
solana_poh::poh_service,
|
||||
solana_replica_lib::accountsdb_repl_server::AccountsDbReplServiceConfig,
|
||||
solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig},
|
||||
solana_rpc::{
|
||||
rpc::{JsonRpcConfig, RpcBigtableConfig},
|
||||
rpc_pubsub_service::PubSubConfig,
|
||||
},
|
||||
solana_runtime::{
|
||||
accounts_db::{
|
||||
AccountShrinkThreshold, AccountsDbConfig, DEFAULT_ACCOUNTS_SHRINK_OPTIMIZE_TOTAL_SPACE,
|
||||
|
@ -2274,6 +2277,19 @@ pub fn main() {
|
|||
warn!("--minimal-rpc-api is now the default behavior. This flag is deprecated and can be removed from the launch args")
|
||||
}
|
||||
|
||||
let rpc_bigtable_config = if matches.is_present("enable_rpc_bigtable_ledger_storage")
|
||||
|| matches.is_present("enable_bigtable_ledger_upload")
|
||||
{
|
||||
Some(RpcBigtableConfig {
|
||||
enable_bigtable_ledger_upload: matches.is_present("enable_bigtable_ledger_upload"),
|
||||
timeout: value_t!(matches, "rpc_bigtable_timeout", u64)
|
||||
.ok()
|
||||
.map(Duration::from_secs),
|
||||
})
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let mut validator_config = ValidatorConfig {
|
||||
require_tower: matches.is_present("require_tower"),
|
||||
tower_storage,
|
||||
|
@ -2289,9 +2305,7 @@ pub fn main() {
|
|||
rpc_config: JsonRpcConfig {
|
||||
enable_rpc_transaction_history: matches.is_present("enable_rpc_transaction_history"),
|
||||
enable_cpi_and_log_storage: matches.is_present("enable_cpi_and_log_storage"),
|
||||
enable_bigtable_ledger_storage: matches
|
||||
.is_present("enable_rpc_bigtable_ledger_storage"),
|
||||
enable_bigtable_ledger_upload: matches.is_present("enable_bigtable_ledger_upload"),
|
||||
rpc_bigtable_config,
|
||||
faucet_addr: matches.value_of("rpc_faucet_addr").map(|address| {
|
||||
solana_net_utils::parse_host_port(address).expect("failed to parse faucet address")
|
||||
}),
|
||||
|
@ -2309,9 +2323,6 @@ pub fn main() {
|
|||
),
|
||||
rpc_threads: value_t_or_exit!(matches, "rpc_threads", usize),
|
||||
rpc_niceness_adj: value_t_or_exit!(matches, "rpc_niceness_adj", i8),
|
||||
rpc_bigtable_timeout: value_t!(matches, "rpc_bigtable_timeout", u64)
|
||||
.ok()
|
||||
.map(Duration::from_secs),
|
||||
account_indexes: account_indexes.clone(),
|
||||
rpc_scan_and_fix_roots: matches.is_present("rpc_scan_and_fix_roots"),
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue