This is an automated email from the ASF dual-hosted git repository.
hanishakoneru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 9292b39 HDDS-4068. Client should not retry same OM on network
connection failure (#1324)
9292b39 is described below
commit 9292b392207d976ce070940d8979c23bef818969
Author: Hanisha Koneru <[email protected]>
AuthorDate: Wed Aug 26 15:18:17 2020 -0700
HDDS-4068. Client should not retry same OM on network connection failure
(#1324)
---
.../hadoop/ozone/om/ha/OMFailoverProxyProvider.java | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/ha/OMFailoverProxyProvider.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/ha/OMFailoverProxyProvider.java
index 3b2692d..1abe5ab 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/ha/OMFailoverProxyProvider.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/ha/OMFailoverProxyProvider.java
@@ -37,6 +37,8 @@ import
org.apache.hadoop.hdds.utils.LegacyHadoopConfigurationSource;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.retry.FailoverProxyProvider;
import org.apache.hadoop.io.retry.RetryInvocationHandler;
+import org.apache.hadoop.io.retry.RetryPolicies;
+import org.apache.hadoop.io.retry.RetryPolicy;
import org.apache.hadoop.ipc.ProtobufRpcEngine;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.net.NetUtils;
@@ -172,9 +174,17 @@ public class OMFailoverProxyProvider implements
LegacyHadoopConfigurationSource.asHadoopConfiguration(conf);
RPC.setProtocolEngine(hadoopConf, OzoneManagerProtocolPB.class,
ProtobufRpcEngine.class);
- return RPC.getProxy(OzoneManagerProtocolPB.class, omVersion, omAddress,
ugi,
- hadoopConf, NetUtils.getDefaultSocketFactory(hadoopConf),
- (int) OmUtils.getOMClientRpcTimeOut(conf));
+
+ // FailoverOnNetworkException ensures that the IPC layer does not attempt
+ // retries on the same OM in case of connection exception. This retry
+ // policy essentially results in TRY_ONCE_THEN_FAIL.
+ RetryPolicy connectionRetryPolicy = RetryPolicies
+ .failoverOnNetworkException(0);
+
+ return RPC.getProtocolProxy(OzoneManagerProtocolPB.class, omVersion,
+ omAddress, ugi, hadoopConf, NetUtils.getDefaultSocketFactory(
+ hadoopConf), (int) OmUtils.getOMClientRpcTimeOut(conf),
+ connectionRetryPolicy).getProxy();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]