Merge branch 'REEF-1753' of github.com:taegeonum/incubator-reef into REEF-1753
diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
index 616de17..b307dd3 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
@@ -30,7 +30,7 @@
public static final long EXECUTOR_SHUTDOWN_TIMEOUT = 1000;
- public static final long REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT = 10000;
+ public static final long REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT = 20000;
/**
* Maximum frame length unit.
diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
index db5eed4..4e3dfa2 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
@@ -22,6 +22,7 @@
import org.apache.reef.tang.annotations.NamedParameter;
import org.apache.reef.wake.EStage;
import org.apache.reef.wake.EventHandler;
+import org.apache.reef.wake.WakeParameters;
import org.apache.reef.wake.remote.impl.DefaultTransportEStage;
import org.apache.reef.wake.remote.impl.ObjectSerializableCodec;
import org.apache.reef.wake.remote.impl.TransportEvent;
@@ -32,6 +33,25 @@
public final class RemoteConfiguration {
/**
+ * The number of tries to reconnect the remote connection.
+ */
+ public static final long REMOTE_CONNECTION_NUMBER_OF_RETRIES = 3;
+
+ /**
+ * The timeout of connection retrying.
+ * To prevent retrying connections from being rejected by the remote stages,
+ * the retrying_timeout * number_of_retries should be less than the remote_executor_shutdown_timeout.
+ * If not, the remote stage can shutdown the connection retries before it is established,
+ * and can drop a message that should be sent to the remote.
+ */
+ public static final long REMOTE_CONNECTION_RETRY_TIMEOUT =
+ WakeParameters.REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT / (REMOTE_CONNECTION_NUMBER_OF_RETRIES + 1);
+
+ private RemoteConfiguration() {
+ // empty
+ }
+
+ /**
* The name of the remote manager.
*/
@NamedParameter(short_name = "rm_name", doc = "The name of the remote manager.", default_value = "REEF_CLIENT")
@@ -84,7 +104,7 @@
/**
* The number of tries.
*/
- @NamedParameter(doc = "The number of tries.", default_value = "3")
+ @NamedParameter(doc = "The number of tries.", default_value = "" + REMOTE_CONNECTION_NUMBER_OF_RETRIES)
public static final class NumberOfTries implements Name<Integer> {
// Intentionally empty
}
@@ -92,7 +112,7 @@
/**
* The timeout of connection retrying.
*/
- @NamedParameter(doc = "The timeout of connection retrying.", default_value = "10000")
+ @NamedParameter(doc = "The timeout of connection retrying.", default_value = "" + REMOTE_CONNECTION_RETRY_TIMEOUT)
public static final class RetryTimeout implements Name<Integer> {
// Intentionally empty
}