mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat(rpc): Add flags to disable read tx timeout (#11856)
This commit is contained in:
@ -1,12 +1,14 @@
|
||||
//! clap [Args](clap::Args) for database configuration
|
||||
|
||||
use std::time::Duration;
|
||||
|
||||
use crate::version::default_client_version;
|
||||
use clap::{
|
||||
builder::{PossibleValue, TypedValueParser},
|
||||
error::ErrorKind,
|
||||
Arg, Args, Command, Error,
|
||||
};
|
||||
use reth_db::ClientVersion;
|
||||
use reth_db::{mdbx::MaxReadTransactionDuration, ClientVersion};
|
||||
use reth_storage_errors::db::LogLevel;
|
||||
|
||||
/// Parameters for database configuration
|
||||
@ -20,6 +22,9 @@ pub struct DatabaseArgs {
|
||||
/// NFS volume.
|
||||
#[arg(long = "db.exclusive")]
|
||||
pub exclusive: Option<bool>,
|
||||
/// Read transaction timeout in seconds, 0 means no timeout.
|
||||
#[arg(long = "db.read-transaction-timeout")]
|
||||
pub read_transaction_timeout: Option<u64>,
|
||||
}
|
||||
|
||||
impl DatabaseArgs {
|
||||
@ -33,9 +38,16 @@ impl DatabaseArgs {
|
||||
&self,
|
||||
client_version: ClientVersion,
|
||||
) -> reth_db::mdbx::DatabaseArguments {
|
||||
let max_read_transaction_duration = match self.read_transaction_timeout {
|
||||
None => None, // if not specified, use default value
|
||||
Some(0) => Some(MaxReadTransactionDuration::Unbounded), // if 0, disable timeout
|
||||
Some(secs) => Some(MaxReadTransactionDuration::Set(Duration::from_secs(secs))),
|
||||
};
|
||||
|
||||
reth_db::mdbx::DatabaseArguments::new(client_version)
|
||||
.with_log_level(self.log_level)
|
||||
.with_exclusive(self.exclusive)
|
||||
.with_max_read_transaction_duration(max_read_transaction_duration)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user