This is an automated email from the ASF dual-hosted git repository.
siyao pushed a commit to branch HDDS-7593
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/HDDS-7593 by this push:
new a33af1dbce HDDS-11226. Make ExponentialBackoffPolicy maxRetries
configurable (#6985)
a33af1dbce is described below
commit a33af1dbce25ca3c1f71d833f506d8d8290a4213
Author: Ashish Kumar <[email protected]>
AuthorDate: Sat Aug 3 02:26:30 2024 +0530
HDDS-11226. Make ExponentialBackoffPolicy maxRetries configurable (#6985)
---
.../apache/hadoop/hdds/ratis/conf/RatisClientConfig.java | 15 +++++++++++++++
.../RequestTypeDependentRetryPolicyCreator.java | 2 ++
.../hadoop/hdds/ratis/conf/TestRatisClientConfig.java | 5 +++++
3 files changed, 22 insertions(+)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/conf/RatisClientConfig.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/conf/RatisClientConfig.java
index 680470187d..8fef494294 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/conf/RatisClientConfig.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/conf/RatisClientConfig.java
@@ -203,6 +203,21 @@ public class RatisClientConfig {
exponentialPolicyMaxSleep = duration;
}
+ @Config(key = "client.exponential.backoff.max.retries",
+ defaultValue = "2147483647",
+ type = ConfigType.INT,
+ tags = { OZONE, CLIENT, PERFORMANCE },
+ description = "Client's max retry value for the exponential backoff
policy.")
+ private int exponentialPolicyMaxRetries = Integer.MAX_VALUE;
+
+ public int getExponentialPolicyMaxRetries() {
+ return exponentialPolicyMaxRetries;
+ }
+
+ public void setExponentialPolicyMaxRetries(int retry) {
+ exponentialPolicyMaxRetries = retry;
+ }
+
@Config(key = "client.retrylimited.retry.interval",
defaultValue = "1s",
type = ConfigType.TIME,
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/retrypolicy/RequestTypeDependentRetryPolicyCreator.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/retrypolicy/RequestTypeDependentRetryPolicyCreator.java
index f8cda814f4..ff00743b25 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/retrypolicy/RequestTypeDependentRetryPolicyCreator.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/retrypolicy/RequestTypeDependentRetryPolicyCreator.java
@@ -96,6 +96,8 @@ public class RequestTypeDependentRetryPolicyCreator
toTimeDuration(ratisClientConfig.getExponentialPolicyBaseSleep()))
.setMaxSleepTime(
toTimeDuration(ratisClientConfig.getExponentialPolicyMaxSleep()))
+ .setMaxAttempts(
+ ratisClientConfig.getExponentialPolicyMaxRetries())
.build();
}
diff --git
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/ratis/conf/TestRatisClientConfig.java
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/ratis/conf/TestRatisClientConfig.java
index 2d16af2a0c..d0e710cb81 100644
---
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/ratis/conf/TestRatisClientConfig.java
+++
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/ratis/conf/TestRatisClientConfig.java
@@ -44,6 +44,8 @@ class TestRatisClientConfig {
subject.getWatchRequestTimeout());
assertEquals(fromConfig.getWriteRequestTimeout(),
subject.getWriteRequestTimeout());
+ assertEquals(fromConfig.getExponentialPolicyMaxRetries(),
+ subject.getExponentialPolicyMaxRetries());
}
@Test
@@ -53,16 +55,19 @@ class TestRatisClientConfig {
final Duration maxSleep = Duration.ofMinutes(2);
final Duration watchRequestTimeout = Duration.ofMillis(555);
final Duration writeRequestTimeout = Duration.ofMillis(444);
+ final int maxRetry = 10;
subject.setExponentialPolicyBaseSleep(baseSleep);
subject.setExponentialPolicyMaxSleep(maxSleep);
subject.setWatchRequestTimeout(watchRequestTimeout);
subject.setWriteRequestTimeout(writeRequestTimeout);
+ subject.setExponentialPolicyMaxRetries(maxRetry);
assertEquals(baseSleep, subject.getExponentialPolicyBaseSleep());
assertEquals(maxSleep, subject.getExponentialPolicyMaxSleep());
assertEquals(watchRequestTimeout, subject.getWatchRequestTimeout());
assertEquals(writeRequestTimeout, subject.getWriteRequestTimeout());
+ assertEquals(maxRetry, subject.getExponentialPolicyMaxRetries());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]