From bf2fd72a13d8b6ba1033794eaed1607a6f4bcf71 Mon Sep 17 00:00:00 2001 From: Swaminathan Balachandran Date: Fri, 20 Jun 2025 12:41:41 -0400 Subject: [PATCH 1/2] HDDS-13308. OM should expose ratis config for increasing ratis pending write byte limit Change-Id: Ief5ca5e8241a5a1457537927d4827bce761bbe59 --- .../common/src/main/resources/ozone-default.xml | 14 ++++++++++++++ .../org/apache/hadoop/ozone/om/OMConfigKeys.java | 8 ++++++++ .../ozone/om/ratis/OzoneManagerRatisServer.java | 7 +++++++ 3 files changed, 29 insertions(+) diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index 1544492cd72b..02769a2cb354 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.pending.write.byte-limit + 32MB + OZONE, DEBUG, OM, RATIS + Raft's Pending writes Byte limit. + + + + ozone.om.ratis.pending.write.num-limit + 4096 + OZONE, DEBUG, OM, RATIS + Raft's number of pending writes. + + 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 1a7cafd8ee27..3b5f6786b0ab 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,14 @@ 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_NUM_LIMIT = "ozone.om.ratis.pending.write.num-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.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 afa3151a8c3e..980d0e2ebb34 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 @@ -724,6 +724,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_NUM_LIMIT, + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_NUM_LIMIT_DEFAULT)); } private static void setRaftRpcProperties(RaftProperties properties, ConfigurationSource conf) { From d79f6e3830c4f460c558976e1cafed100d0bb0dc Mon Sep 17 00:00:00 2001 From: Swaminathan Balachandran Date: Wed, 16 Jul 2025 15:04:42 -0400 Subject: [PATCH 2/2] HDDS-13308. Address review comments Change-Id: If1b45518746793c4ac0a13af69f88e640396419c --- .../common/src/main/resources/ozone-default.xml | 10 +++++----- .../java/org/apache/hadoop/ozone/om/OMConfigKeys.java | 5 +++-- .../hadoop/ozone/om/ratis/OzoneManagerRatisServer.java | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml index 02769a2cb354..d0bc7a5fe782 100644 --- a/hadoop-hdds/common/src/main/resources/ozone-default.xml +++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml @@ -2184,17 +2184,17 @@ - ozone.om.ratis.pending.write.byte-limit - 32MB + ozone.om.ratis.server.pending.write.byte-limit + 64MB OZONE, DEBUG, OM, RATIS - Raft's Pending writes Byte limit. + Maximum byte size of all pending write requests. - ozone.om.ratis.pending.write.num-limit + ozone.om.ratis.server.pending.write.element-limit 4096 OZONE, DEBUG, OM, RATIS - Raft's number of pending writes. + Maximum number of pending write requests. 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 3b5f6786b0ab..d6b87691d12b 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 @@ -201,10 +201,11 @@ public final class OMConfigKeys { OZONE_OM_RATIS_LOG_APPENDER_QUEUE_BYTE_LIMIT_DEFAULT = "32MB"; // OM Ratis Pending Write configurations - public static final String OZONE_OM_RATIS_PENDING_WRITE_NUM_LIMIT = "ozone.om.ratis.pending.write.num-limit"; + 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.pending.write.byte-limit"; + 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 = 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 980d0e2ebb34..1062051dd7d7 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,7 +729,7 @@ private static void setRaftLogProperties(RaftProperties properties, 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_NUM_LIMIT, + OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_ELEMENT_LIMIT, OMConfigKeys.OZONE_OM_RATIS_PENDING_WRITE_NUM_LIMIT_DEFAULT)); }