Skip to content
Snippets Groups Projects
Commit bd2a206e authored by Benjamin Kampmann's avatar Benjamin Kampmann Committed by GitHub
Browse files

Add cli param to limit database cache size (#1261)

* Add cli param to limit datbase cache size

* fixing tests
parent 8606595a
No related merge requests found
......@@ -228,7 +228,10 @@ where
.into();
config.database_path = db_path(&base_path, config.chain_spec.id()).to_string_lossy().into();
config.database_cache_size = match matches.value_of("database_cache_size") {
Some(s) => Some(s.parse().map_err(|_| "Invalid Database Cache size specified")?),
_=> None
};
config.pruning = match matches.value_of("pruning") {
Some("archive") => PruningMode::ArchiveAll,
None => PruningMode::default(),
......
......@@ -45,6 +45,10 @@ pub struct CoreParams {
#[structopt(long = "light")]
light: bool,
/// Limit the memory the database cache can use
#[structopt(long = "db-cache", value_name = "MiB")]
database_cache_size: Option<u32>,
/// Listen on this multiaddress
#[structopt(long = "listen-addr", value_name = "LISTEN_ADDR")]
listen_addr: Vec<String>,
......
......@@ -415,7 +415,7 @@ impl<Factory: ServiceFactory> Components for FullComponents<Factory> {
), error::Error>
{
let db_settings = client_db::DatabaseSettings {
cache_size: None,
cache_size: config.database_cache_size.map(|u| u as usize),
path: config.database_path.as_str().into(),
pruning: config.pruning.clone(),
};
......
......@@ -45,6 +45,8 @@ pub struct Configuration<C, G: Serialize + DeserializeOwned + BuildStorage> {
pub keystore_path: String,
/// Path to the database.
pub database_path: String,
/// Cache Size for internal database in MiB
pub database_cache_size: Option<u32>,
/// Pruning settings.
pub pruning: PruningMode,
/// Additional key seeds.
......@@ -81,6 +83,7 @@ impl<C: Default, G: Serialize + DeserializeOwned + BuildStorage> Configuration<C
network: Default::default(),
keystore_path: Default::default(),
database_path: Default::default(),
database_cache_size: Default::default(),
keys: Default::default(),
custom: Default::default(),
pruning: PruningMode::default(),
......
......@@ -123,6 +123,7 @@ fn node_config<F: ServiceFactory> (
network: network_config,
keystore_path: root.join("key").to_str().unwrap().into(),
database_path: root.join("db").to_str().unwrap().into(),
database_cache_size: None,
pruning: Default::default(),
keys: keys,
chain_spec: (*spec).clone(),
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment