diff --git a/Cargo.toml b/Cargo.toml index 537813f1..0f40ab78 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,14 +77,14 @@ lru-cache = "0.1.2" rusqlite = { version = "0.25.3", optional = true, features = ["bundled"] } parking_lot = { version = "0.11.1", optional = true } crossbeam = { version = "0.8.1", optional = true } -num_cpus = { version = "1.13.0", optional = true } +num_cpus = "1.13.0" [features] default = ["conduit_bin", "backend_sqlite"] backend_sled = ["sled"] backend_rocksdb = ["rocksdb"] backend_sqlite = ["sqlite"] -sqlite = ["rusqlite", "parking_lot", "crossbeam", "num_cpus", "tokio/signal"] +sqlite = ["rusqlite", "parking_lot", "crossbeam", "tokio/signal"] conduit_bin = [] # TODO: add rocket to this when it is optional [[bin]] diff --git a/src/database.rs b/src/database.rs index c39f0fbd..85beee80 100644 --- a/src/database.rs +++ b/src/database.rs @@ -45,6 +45,8 @@ pub struct Config { database_path: String, #[serde(default = "default_db_cache_capacity_mb")] db_cache_capacity_mb: f64, + #[serde(default = "default_sled_cache_capacity_bytes")] + sled_cache_capacity_bytes: u64, #[serde(default = "default_sqlite_read_pool_size")] sqlite_read_pool_size: usize, #[serde(default = "true_fn")] @@ -109,6 +111,10 @@ fn default_db_cache_capacity_mb() -> f64 { 200.0 } +fn default_sled_cache_capacity_bytes() -> u64 { + 1024 * 1024 * 1024 +} + fn default_sqlite_read_pool_size() -> usize { num_cpus::get().max(1) } diff --git a/src/database/abstraction/sled.rs b/src/database/abstraction/sled.rs index e58184df..1aa631fe 100644 --- a/src/database/abstraction/sled.rs +++ b/src/database/abstraction/sled.rs @@ -14,7 +14,7 @@ impl DatabaseEngine for Engine { Ok(Arc::new(Engine( sled::Config::default() .path(&config.database_path) - .cache_capacity((config.db_cache_capacity_mb * 1024 * 1024) as u64) + .cache_capacity(config.sled_cache_capacity_bytes) .use_compression(true) .open()?, )))