Skip to content

Commit ef78593

Browse files
committed
HDDS-11420. OM rocksdb manual WAL flush control
1 parent 3e1188a commit ef78593

File tree

5 files changed

+32
-0
lines changed

5 files changed

+32
-0
lines changed

hadoop-hdds/common/src/main/resources/ozone-default.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4512,4 +4512,12 @@
45124512
maximum number of buckets across all volumes.
45134513
</description>
45144514
</property>
4515+
<property>
4516+
<name>ozone.om.rocksdb.manual.wal.flush</name>
4517+
<value>false</value>
4518+
<tag>OZONE, OM</tag>
4519+
<description>
4520+
control the manual flush of Rocksdb WAL log when db commit happens.
4521+
</description>
4522+
</property>
45154523
</configuration>

hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/DBStoreBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ private ManagedDBOptions getDefaultDBOptions(
420420
// Apply WAL settings.
421421
dbOptions.setWalTtlSeconds(rocksDBConfiguration.getWalTTL());
422422
dbOptions.setWalSizeLimitMB(rocksDBConfiguration.getWalSizeLimit());
423+
dbOptions.setManualWalFlush(rocksDBConfiguration.getManualWalFlush());
423424

424425
return dbOptions;
425426
}

hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/utils/db/RocksDBConfiguration.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ public class RocksDBConfiguration {
7676
description = "The lifetime of WAL log files. Default 1200 seconds.")
7777
private long walTTL = 1200;
7878

79+
@Config(key = "rocksdb.manual_wal_flush",
80+
type = ConfigType.BOOLEAN,
81+
defaultValue = "false",
82+
tags = {OM, SCM, DATANODE},
83+
description = "The disable auto flush for WAL logs.")
84+
private boolean manualWalFlush = false;
85+
7986
@Config(key = "rocksdb.WAL_size_limit_MB",
8087
type = ConfigType.SIZE,
8188
defaultValue = "0MB",
@@ -140,4 +147,12 @@ public void setKeepLogFileNum(int fileNum) {
140147
public int getKeepLogFileNum() {
141148
return rocksdbKeepLogFileNum;
142149
}
150+
151+
public void setManualWalFlush(boolean bManualWallFlush) {
152+
this.manualWalFlush = bManualWallFlush;
153+
}
154+
155+
public boolean getManualWalFlush() {
156+
return manualWalFlush;
157+
}
143158
}

hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/OMConfigKeys.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,4 +623,7 @@ private OMConfigKeys() {
623623
public static final String OZONE_OM_MAX_BUCKET =
624624
"ozone.om.max.buckets";
625625
public static final int OZONE_OM_MAX_BUCKET_DEFAULT = 100000;
626+
627+
public static final String OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH = "ozone.om.rocksdb.manual.wal.flush";
628+
public static final boolean OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH_DEFAULT = false;
626629
}

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OmMetadataManagerImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@
109109
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_FS_SNAPSHOT_MAX_LIMIT_DEFAULT;
110110
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_DB_MAX_OPEN_FILES;
111111
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_DB_MAX_OPEN_FILES_DEFAULT;
112+
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH;
113+
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH_DEFAULT;
112114
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_SNAPSHOT_CHECKPOINT_DIR_CREATION_POLL_TIMEOUT;
113115
import static org.apache.hadoop.ozone.om.OMConfigKeys.OZONE_SNAPSHOT_CHECKPOINT_DIR_CREATION_POLL_TIMEOUT_DEFAULT;
114116
import static org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.BUCKET_NOT_FOUND;
@@ -605,8 +607,11 @@ public static DBStore loadDB(OzoneConfiguration configuration, File metaDir,
605607
throws IOException {
606608
final int maxFSSnapshots = configuration.getInt(
607609
OZONE_OM_FS_SNAPSHOT_MAX_LIMIT, OZONE_OM_FS_SNAPSHOT_MAX_LIMIT_DEFAULT);
610+
final boolean manualWalFlush = configuration.getBoolean(
611+
OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH, OZONE_OM_ROCKSDB_MANUAL_WAL_FLUSH_DEFAULT);
608612
RocksDBConfiguration rocksDBConfiguration =
609613
configuration.getObject(RocksDBConfiguration.class);
614+
rocksDBConfiguration.setManualWalFlush(manualWalFlush);
610615
DBStoreBuilder dbStoreBuilder = DBStoreBuilder.newBuilder(configuration,
611616
rocksDBConfiguration).setName(dbName)
612617
.setOpenReadOnly(readOnly)

0 commit comments

Comments
 (0)