This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new fbe584c0cc HDDS-8040. Increase ratis log segment default size in
datanode. (#5671)
fbe584c0cc is described below
commit fbe584c0cc6e33b737b9b6cf31ee592018d8e594
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Mon Nov 27 12:25:07 2023 -0800
HDDS-8040. Increase ratis log segment default size in datanode. (#5671)
---
.../org/apache/hadoop/hdds/scm/ScmConfigKeys.java | 8 ++++++--
.../org/apache/hadoop/ozone/OzoneConfigKeys.java | 4 ++++
.../common/src/main/resources/ozone-default.xml | 20 ++++++++++++++------
.../transport/server/ratis/XceiverServerRatis.java | 10 +++++++++-
4 files changed, 33 insertions(+), 9 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
index 2d8f8c06c8..1deff3e409 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
@@ -66,11 +66,15 @@ public final class ScmConfigKeys {
public static final String DFS_CONTAINER_RATIS_SEGMENT_SIZE_KEY =
"dfs.container.ratis.segment.size";
public static final String DFS_CONTAINER_RATIS_SEGMENT_SIZE_DEFAULT =
- "1MB";
+ "64MB";
+ public static final String DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_KEY =
+ "dfs.container.ratis.segment.buffer.size";
+ public static final String DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_DEFAULT =
+ "2MB";
public static final String DFS_CONTAINER_RATIS_SEGMENT_PREALLOCATED_SIZE_KEY
=
"dfs.container.ratis.segment.preallocated.size";
public static final String
- DFS_CONTAINER_RATIS_SEGMENT_PREALLOCATED_SIZE_DEFAULT = "16KB";
+ DFS_CONTAINER_RATIS_SEGMENT_PREALLOCATED_SIZE_DEFAULT = "4MB";
public static final String
DFS_CONTAINER_RATIS_STATEMACHINEDATA_SYNC_TIMEOUT =
"dfs.container.ratis.statemachinedata.sync.timeout";
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
index 0b62b887a3..338fd778b0 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
@@ -352,6 +352,10 @@ public final class OzoneConfigKeys {
= ScmConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_SIZE_KEY;
public static final String DFS_CONTAINER_RATIS_SEGMENT_SIZE_DEFAULT
= ScmConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_SIZE_DEFAULT;
+ public static final String DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_KEY
+ = ScmConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_KEY;
+ public static final String DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_DEFAULT
+ = ScmConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_DEFAULT;
public static final String DFS_CONTAINER_RATIS_SEGMENT_PREALLOCATED_SIZE_KEY
= ScmConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_PREALLOCATED_SIZE_KEY;
public static final String
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml
b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index c84aa91150..257fcbb77e 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -314,18 +314,26 @@
</property>
<property>
<name>dfs.container.ratis.segment.size</name>
- <value>1MB</value>
+ <value>64MB</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
- <description>The size of the raft segment used by Apache Ratis on
datanodes.
- (1 MB by default)
+ <description>The size of the raft segment file used
+ by Apache Ratis on datanodes. (64 MB by default)
+ </description>
+ </property>
+ <property>
+ <name>dfs.container.ratis.segment.buffer.size</name>
+ <value>2MB</value>
+ <tag>OZONE, RATIS, PERFORMANCE</tag>
+ <description>The size of the raft segment buffer used
+ by Apache Ratis on datanodes. (2 MB by default)
</description>
</property>
<property>
<name>dfs.container.ratis.segment.preallocated.size</name>
- <value>16KB</value>
+ <value>4MB</value>
<tag>OZONE, RATIS, PERFORMANCE</tag>
- <description>The size of the buffer which is preallocated for raft segment
- used by Apache Ratis on datanodes.(16 KB by default)
+ <description>The pre-allocated file size for raft segment used
+ by Apache Ratis on datanodes. (4 MB by default)
</description>
</property>
<property>
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
index eb5536faad..2a57a32b39 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
@@ -103,6 +103,7 @@ import org.apache.ratis.server.RaftServerConfigKeys;
import org.apache.ratis.server.RaftServerRpc;
import org.apache.ratis.server.protocol.TermIndex;
import org.apache.ratis.server.storage.RaftStorage;
+import org.apache.ratis.util.Preconditions;
import org.apache.ratis.util.SizeInBytes;
import org.apache.ratis.util.TimeDuration;
import org.apache.ratis.util.TraditionalBinaryPrefix;
@@ -455,8 +456,15 @@ public final class XceiverServerRatis implements
XceiverServerSpi {
StorageUnit.BYTES);
RaftServerConfigKeys.Log.setSegmentSizeMax(properties,
SizeInBytes.valueOf(raftSegmentSize));
+ final long raftSegmentBufferSize = (long) conf.getStorageSize(
+ OzoneConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_KEY,
+ OzoneConfigKeys.DFS_CONTAINER_RATIS_SEGMENT_BUFFER_SIZE_DEFAULT,
+ StorageUnit.BYTES);
RaftServerConfigKeys.Log.setWriteBufferSize(properties,
- SizeInBytes.valueOf(raftSegmentSize));
+ SizeInBytes.valueOf(raftSegmentBufferSize));
+ Preconditions.assertTrue(raftSegmentBufferSize <= raftSegmentSize,
+ () -> "raftSegmentBufferSize = " + raftSegmentBufferSize
+ + " > raftSegmentSize = " + raftSegmentSize);
}
private RpcType setRpcType(RaftProperties properties) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]