feat: support disable RocksDB auto-compaction by configuration (#2586)

This commit is contained in:
haohao0103 2024-07-16 16:40:44 +08:00 committed by GitHub
parent 899dc8e0f0
commit 5dfcc3f694
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions

View File

@ -120,6 +120,13 @@ public class RocksDBOptions extends OptionHolder {
disallowEmpty(),
"rocksdb-snapshot"
);
public static final ConfigOption<Boolean> DISABLE_AUTO_COMPACTION =
new ConfigOption<>(
"rocksdb.disable_auto_compaction",
"Set disable auto compaction.",
disallowEmpty(),
false
);
public static final ConfigConvOption<String, CompactionStyle> COMPACTION_STYLE =
new ConfigConvOption<>(
"rocksdb.compaction_style",

View File

@ -430,6 +430,9 @@ public class RocksDBSession implements AutoCloseable, Cloneable {
List<byte[]> columnFamilyBytes = RocksDB.listColumnFamilies(new Options(), dbPath);
ColumnFamilyOptions cfOptions = new ColumnFamilyOptions();
if (hugeConfig.get(RocksDBOptions.DISABLE_AUTO_COMPACTION)) {
cfOptions.setDisableAutoCompactions(true);
}
RocksDBSession.initOptions(this.hugeConfig, null, null, cfOptions, cfOptions);
if (columnFamilyBytes.size() > 0) {