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 349736a8da HDDS-9120. Add separate timeout config for 
ECXceiverClientGrpc (#5148)
349736a8da is described below

commit 349736a8da6039237a033d6120796193ab9af2d3
Author: hao guo <[email protected]>
AuthorDate: Fri Oct 27 23:24:34 2023 +0800

    HDDS-9120. Add separate timeout config for ECXceiverClientGrpc (#5148)
---
 .../java/org/apache/hadoop/hdds/scm/ECXceiverClientGrpc.java   |  5 +++++
 .../java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java     | 10 +++++++---
 .../src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java |  4 ++++
 hadoop-hdds/common/src/main/resources/ozone-default.xml        |  9 +++++++++
 4 files changed, 25 insertions(+), 3 deletions(-)

diff --git 
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/ECXceiverClientGrpc.java
 
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/ECXceiverClientGrpc.java
index 91f33cb778..dbf32c377b 100644
--- 
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/ECXceiverClientGrpc.java
+++ 
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/ECXceiverClientGrpc.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.hdds.conf.ConfigurationSource;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
 import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
 import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
+import org.apache.hadoop.ozone.OzoneConfigKeys;
 import org.apache.ratis.thirdparty.io.grpc.Status;
 import org.apache.ratis.thirdparty.io.grpc.netty.NettyChannelBuilder;
 
@@ -31,6 +32,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_CLIENT_EC_GRPC_RETRIES_ENABLED;
 import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_CLIENT_EC_GRPC_RETRIES_ENABLED_DEFAULT;
@@ -56,6 +58,9 @@ public class ECXceiverClientGrpc extends XceiverClientGrpc {
     super(pipeline, config, caCerts);
     this.enableRetries = 
config.getBoolean(OZONE_CLIENT_EC_GRPC_RETRIES_ENABLED,
         OZONE_CLIENT_EC_GRPC_RETRIES_ENABLED_DEFAULT);
+    setTimeout(config.getTimeDuration(OzoneConfigKeys.
+        OZONE_CLIENT_EC_GRPC_WRITE_TIMEOUT, OzoneConfigKeys
+        .OZONE_CLIENT_EC_GRPC_WRITE_TIMEOUT_DEFAULT, TimeUnit.SECONDS));
   }
 
   /**
diff --git 
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java
 
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java
index 4d6c4ccfd3..32767c77ec 100644
--- 
a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java
+++ 
b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java
@@ -91,7 +91,7 @@ public class XceiverClientGrpc extends XceiverClientSpi {
   private final XceiverClientMetrics metrics;
   private final Map<UUID, ManagedChannel> channels;
   private final Semaphore semaphore;
-  private final long timeout;
+  private long timeout;
   private final SecurityConfig secConfig;
   private final boolean topologyAwareRead;
   private final List<X509Certificate> caCerts;
@@ -114,9 +114,9 @@ public class XceiverClientGrpc extends XceiverClientSpi {
     super();
     Preconditions.checkNotNull(pipeline);
     Preconditions.checkNotNull(config);
-    timeout = config.getTimeDuration(OzoneConfigKeys.
+    setTimeout(config.getTimeDuration(OzoneConfigKeys.
         OZONE_CLIENT_READ_TIMEOUT, OzoneConfigKeys
-        .OZONE_CLIENT_READ_TIMEOUT_DEFAULT, TimeUnit.SECONDS);
+        .OZONE_CLIENT_READ_TIMEOUT_DEFAULT, TimeUnit.SECONDS));
     this.pipeline = pipeline;
     this.config = config;
     this.secConfig = new SecurityConfig(config);
@@ -615,4 +615,8 @@ public class XceiverClientGrpc extends XceiverClientSpi {
   public static Logger getLogger() {
     return LOG;
   }
+
+  public void setTimeout(long timeout) {
+    this.timeout = 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 9cf74c6cd8..3ac5555965 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
@@ -183,6 +183,10 @@ public final class OzoneConfigKeys {
   public static final String OZONE_GPRC_METRICS_PERCENTILES_INTERVALS_KEY
       = "ozone.grpc.metrics.percentiles.intervals";
 
+  public static final String OZONE_CLIENT_EC_GRPC_WRITE_TIMEOUT =
+      "ozone.client.ec.grpc.write.timeout";
+  public static final String OZONE_CLIENT_EC_GRPC_WRITE_TIMEOUT_DEFAULT = 
"30s";
+
   /**
    * Ozone administrator users delimited by comma.
    * If not set, only the user who launches an ozone service will be the
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml 
b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index 3dd65220d7..6d0116d006 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -1910,6 +1910,15 @@
     </description>
   </property>
 
+  <property>
+    <name>ozone.client.ec.grpc.write.timeout</name>
+    <value>30s</value>
+    <tag>OZONE, CLIENT, MANAGEMENT</tag>
+    <description>
+      Timeout for ozone ec grpc client during write.
+    </description>
+  </property>
+
   <property>
     <name>ozone.om.unflushed.transaction.max.count</name>
     <value>10000</value>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to