diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 61d29f43ae..23e82b7946 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -390,6 +390,9 @@ Release 2.4.0 - UNRELEASED
HADOOP-10126. LightWeightGSet log message is confusing. (Vinay via suresh)
+ HADOOP-10127. Add ipc.client.connect.retry.interval to control the frequency
+ of connection retries (Karthik Kambatla via Sandy Ryza)
+
OPTIMIZATIONS
HADOOP-9748. Reduce blocking on UGI.ensureInitialized (daryn)
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
index 5a75cbdf15..87746bbe39 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java
@@ -192,6 +192,11 @@ public class CommonConfigurationKeysPublic {
/** Default value for IPC_CLIENT_CONNECT_MAX_RETRIES_KEY */
public static final int IPC_CLIENT_CONNECT_MAX_RETRIES_DEFAULT = 10;
/** See core-default.xml */
+ public static final String IPC_CLIENT_CONNECT_RETRY_INTERVAL_KEY =
+ "ipc.client.connect.retry.interval";
+ /** Default value for IPC_CLIENT_CONNECT_RETRY_INTERVAL_KEY */
+ public static final int IPC_CLIENT_CONNECT_RETRY_INTERVAL_DEFAULT = 1000;
+ /** See core-default.xml */
public static final String IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_KEY =
"ipc.client.connect.max.retries.on.timeouts";
/** Default value for IPC_CLIENT_CONNECT_MAX_RETRIES_ON_SOCKET_TIMEOUTS_KEY */
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java
index b444a115cb..764c7dca5c 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java
@@ -1562,8 +1562,13 @@ static ConnectionId getConnectionId(InetSocketAddress addr,
final int max = conf.getInt(
CommonConfigurationKeysPublic.IPC_CLIENT_CONNECT_MAX_RETRIES_KEY,
CommonConfigurationKeysPublic.IPC_CLIENT_CONNECT_MAX_RETRIES_DEFAULT);
+ final int retryInterval = conf.getInt(
+ CommonConfigurationKeysPublic.IPC_CLIENT_CONNECT_RETRY_INTERVAL_KEY,
+ CommonConfigurationKeysPublic
+ .IPC_CLIENT_CONNECT_RETRY_INTERVAL_DEFAULT);
+
connectionRetryPolicy = RetryPolicies.retryUpToMaximumCountWithFixedSleep(
- max, 1, TimeUnit.SECONDS);
+ max, retryInterval, TimeUnit.MILLISECONDS);
}
boolean doPing =
diff --git a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
index 746d209715..c7671c5451 100644
--- a/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
+++ b/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml
@@ -618,6 +618,14 @@
+
+ ipc.client.connect.retry.interval
+ 1000
+ Indicates the number of milliseconds a client will wait for
+ before retrying to establish a server connection.
+
+
+
ipc.client.connect.timeout
20000