diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index bf15e975b92d..16387561c2df 100644 --- a/hadoop-hdds/common/src/main/resources/ozone-default.xml +++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml @@ -2183,6 +2183,20 @@ Byte limit for Raft's Log Worker queue. + + ozone.om.ratis.server.pending.write.byte-limit + 64MB + OZONE, DEBUG, OM, RATIS + Maximum byte size of all pending write requests. + + + + ozone.om.ratis.server.pending.write.element-limit + 4096 + OZONE, DEBUG, OM, RATIS + Maximum number of pending write requests. + + ozone.om.ratis.log.purge.gap 1000000 diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/OMConfigKeys.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/OMConfigKeys.java index 751e0a669f66..fc35ea378cc8 100644 --- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/OMConfigKeys.java +++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/OMConfigKeys.java @@ -199,6 +199,15 @@ public final class OMConfigKeys { "ozone.om.ratis.log.appender.queue.byte-limit"; public static final String OZONE_OM_RATIS_LOG_APPENDER_QUEUE_BYTE_LIMIT_DEFAULT = "32MB"; + + // OM Ratis Pending Write configurations + public static final String OZONE_OM_RATIS_PENDING_WRITE_ELEMENT_LIMIT = + "ozone.om.ratis.server.pending.write.element-limit"; + public static final int OZONE_OM_RATIS_PENDING_WRITE_NUM_LIMIT_DEFAULT = 4096; + + public static final String OZONE_OM_RATIS_PENDING_WRITE_BYTE_LIMIT = "ozone.om.ratis.server.pending.write.byte-limit"; + public static final String OZONE_OM_RATIS_PENDING_WRITE_BYTE_LIMIT_DEFAULT = "64MB"; + public static final String OZONE_OM_RATIS_LOG_PURGE_GAP = "ozone.om.ratis.log.purge.gap"; public static final int OZONE_OM_RATIS_LOG_PURGE_GAP_DEFAULT = 1000000; diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java index 76ca50b4124b..e1ef528d16ac 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java @@ -729,6 +729,13 @@ private static void setRaftLogProperties(RaftProperties properties, // Set the number of maximum cached segments RaftServerConfigKeys.Log.setSegmentCacheNumMax(properties, 2); + + RaftServerConfigKeys.Write.setByteLimit(properties, SizeInBytes.valueOf((long) conf.getStorageSize( + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_BYTE_LIMIT, + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_BYTE_LIMIT_DEFAULT, StorageUnit.BYTES))); + RaftServerConfigKeys.Write.setElementLimit(properties, conf.getInt( + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_ELEMENT_LIMIT, + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_NUM_LIMIT_DEFAULT)); } private static void setRaftRpcProperties(RaftProperties properties, ConfigurationSource conf) {