diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index 6cef402af0c18fde3231cf8c6778c6aaa52deb66..ae2735454fcd5a507e69663470a4b28aad7bb175 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -236,6 +236,8 @@ pub struct Config { pub rocksdb_compaction_prio_idle: bool, #[serde(default = "true_fn")] pub rocksdb_compaction_ioprio_idle: bool, + #[serde(default = "true_fn")] + pub rocksdb_compaction: bool, pub emergency_password: Option<String>, @@ -712,6 +714,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { "RocksDB Compaction Idle IOPriority", &self.rocksdb_compaction_ioprio_idle.to_string(), ); + line("RocksDB Compaction enabled", &self.rocksdb_compaction.to_string()); line("Media integrity checks on startup", &self.media_startup_check.to_string()); line("Media compatibility filesystem links", &self.media_compat_file_link.to_string()); line("Prevent Media Downloads From", { diff --git a/src/database/opts.rs b/src/database/opts.rs index d223645489a7a2825462ba38735da28a8ab5ab93..3c3ad4242b68bad365eec31260da0d0253befbd3 100644 --- a/src/database/opts.rs +++ b/src/database/opts.rs @@ -68,6 +68,7 @@ pub(crate) fn db_options(config: &Config, env: &mut Env, row_cache: &Cache, col_ set_compression_defaults(&mut opts, config); // Misc + opts.set_disable_auto_compactions(!config.rocksdb_compaction); opts.create_if_missing(true); // Default: https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes#ktoleratecorruptedtailrecords