Repository: incubator-reef
Updated Branches:
  refs/heads/master f3fbffb4f -> 9b1925d16


[REEF-653] Remove usage of get/setIsFromPreviousDriver()

This removes `get/setIsFromPreviousDriver()` and uses the state in
`DriverRestartManager` instead.

JIRA:
  [REEF-653](https://issues.apache.org/jira/browse/REEF-653)

Pull Request:
  This closes #434


Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/9b1925d1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/9b1925d1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/9b1925d1

Branch: refs/heads/master
Commit: 9b1925d16d3d1f9ca80231fb63292ab2b1de6a9a
Parents: f3fbffb
Author: Andrew Chung <[email protected]>
Authored: Fri Aug 28 10:55:32 2015 -0700
Committer: Markus Weimer <[email protected]>
Committed: Fri Aug 28 13:27:24 2015 -0700

----------------------------------------------------------------------
 .../reef/driver/restart/EvaluatorRestartState.java  | 13 +++++++++++++
 .../driver/evaluator/EvaluatorManagerFactory.java   | 14 --------------
 .../driver/resourcemanager/ResourceStatusEvent.java |  5 -----
 .../resourcemanager/ResourceStatusEventImpl.java    | 16 ----------------
 .../resourcemanager/ResourceStatusHandler.java      | 11 +++++++++--
 .../driver/YarnDriverRuntimeRestartManager.java     |  1 -
 6 files changed, 22 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-common/src/main/java/org/apache/reef/driver/restart/EvaluatorRestartState.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-common/src/main/java/org/apache/reef/driver/restart/EvaluatorRestartState.java
 
b/lang/java/reef-common/src/main/java/org/apache/reef/driver/restart/EvaluatorRestartState.java
index a87052b..cf14b20 100644
--- 
a/lang/java/reef-common/src/main/java/org/apache/reef/driver/restart/EvaluatorRestartState.java
+++ 
b/lang/java/reef-common/src/main/java/org/apache/reef/driver/restart/EvaluatorRestartState.java
@@ -121,4 +121,17 @@ public enum EvaluatorRestartState {
       return false;
     }
   }
+
+  /**
+   * @return true if the evaluator has failed on driver restart or has been 
expired.
+   */
+  public boolean isFailedOrExpired() {
+    switch(this) {
+    case FAILED:
+    case EXPIRED:
+      return true;
+    default:
+      return false;
+    }
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
index 4f49fe9..12a6455 100644
--- 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
+++ 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
@@ -131,20 +131,6 @@ public final class EvaluatorManagerFactory {
    * @param resourceStatusEvent
    * @return an EvaluatorManager for the user to call fail on.
    */
-  public EvaluatorManager createForEvaluatorFailedDuringDriverRestart(final 
ResourceStatusEvent resourceStatusEvent) {
-    if (!resourceStatusEvent.getIsFromPreviousDriver().get()) {
-      throw new RuntimeException("Invalid resourceStatusEvent, must be status 
for resource from previous Driver.");
-    }
-    return getNewEvaluatorManagerInstance(resourceStatusEvent.getIdentifier(),
-        new EvaluatorDescriptorImpl(null, 128, 1, 
processFactory.newEvaluatorProcess()));
-  }
-
-  /**
-   * Instantiates a new EvaluatorManager for a failed evaluator during driver 
restart.
-   * Does not fire an EvaluatorAllocatedEvent.
-   * @param resourceStatusEvent
-   * @return an EvaluatorManager for the user to call fail on.
-   */
   public EvaluatorManager 
getNewEvaluatorManagerForEvaluatorFailedDuringDriverRestart(
       final ResourceStatusEvent resourceStatusEvent) {
     return getNewEvaluatorManagerInstance(resourceStatusEvent.getIdentifier(),

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
index 4991b28..9e66e1b 100644
--- 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
+++ 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
@@ -51,9 +51,4 @@ public interface ResourceStatusEvent {
    * @return Exit code of the resource, if it has exited
    */
   Optional<Integer> getExitCode();
-
-  /**
-   * @return If true, this resource is from a previous Driver (the Driver was 
restarted)
-   */
-  Optional<Boolean> getIsFromPreviousDriver();
 }

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
index a5e3229..5db541c 100644
--- 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
+++ 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
@@ -31,14 +31,12 @@ public final class ResourceStatusEventImpl implements 
ResourceStatusEvent {
   private final ReefServiceProtos.State state;
   private final Optional<String> diagnostics;
   private final Optional<Integer> exitCode;
-  private final Optional<Boolean> isFromPreviousDriver;
 
   private ResourceStatusEventImpl(final Builder builder) {
     this.identifier = BuilderUtils.notNull(builder.identifier);
     this.state = BuilderUtils.notNull(builder.state);
     this.diagnostics = Optional.ofNullable(builder.diagnostics);
     this.exitCode = Optional.ofNullable(builder.exitCode);
-    this.isFromPreviousDriver = 
Optional.ofNullable(builder.isFromPreviousDriver);
   }
 
   @Override
@@ -61,11 +59,6 @@ public final class ResourceStatusEventImpl implements 
ResourceStatusEvent {
     return exitCode;
   }
 
-  @Override
-  public Optional<Boolean> getIsFromPreviousDriver() {
-    return isFromPreviousDriver;
-  }
-
   public static Builder newBuilder() {
     return new Builder();
   }
@@ -78,7 +71,6 @@ public final class ResourceStatusEventImpl implements 
ResourceStatusEvent {
     private ReefServiceProtos.State state;
     private String diagnostics;
     private Integer exitCode;
-    private Boolean isFromPreviousDriver;
 
     /**
      * @see ResourceStatusEvent#getIdentifier()
@@ -112,14 +104,6 @@ public final class ResourceStatusEventImpl implements 
ResourceStatusEvent {
       return this;
     }
 
-    /**
-     * @see ResourceStatusEvent#getIsFromPreviousDriver()
-     */
-    public Builder setIsFromPreviousDriver(final boolean isFromPreviousDriver) 
{
-      this.isFromPreviousDriver = isFromPreviousDriver;
-      return this;
-    }
-
     @Override
     public ResourceStatusEvent build() {
       return new ResourceStatusEventImpl(this);

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusHandler.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusHandler.java
 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusHandler.java
index 3b0a75a..1a2cb38 100644
--- 
a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusHandler.java
+++ 
b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusHandler.java
@@ -19,9 +19,11 @@
 package org.apache.reef.runtime.common.driver.resourcemanager;
 
 import org.apache.reef.annotations.audience.Private;
+import org.apache.reef.driver.restart.DriverRestartManager;
 import org.apache.reef.runtime.common.driver.evaluator.EvaluatorManager;
 import org.apache.reef.runtime.common.driver.evaluator.EvaluatorManagerFactory;
 import org.apache.reef.runtime.common.driver.evaluator.Evaluators;
+import org.apache.reef.tang.InjectionFuture;
 import org.apache.reef.util.Optional;
 import org.apache.reef.wake.EventHandler;
 
@@ -36,11 +38,15 @@ public final class ResourceStatusHandler implements 
EventHandler<ResourceStatusE
 
   private final Evaluators evaluators;
   private final EvaluatorManagerFactory evaluatorManagerFactory;
+  private final InjectionFuture<DriverRestartManager> driverRestartManager;
 
   @Inject
-  ResourceStatusHandler(final Evaluators evaluators, final 
EvaluatorManagerFactory evaluatorManagerFactory) {
+  ResourceStatusHandler(final Evaluators evaluators,
+                        final EvaluatorManagerFactory evaluatorManagerFactory,
+                        final InjectionFuture<DriverRestartManager> 
driverRestartManager) {
     this.evaluators = evaluators;
     this.evaluatorManagerFactory = evaluatorManagerFactory;
+    this.driverRestartManager = driverRestartManager;
   }
 
   /**
@@ -56,7 +62,8 @@ public final class ResourceStatusHandler implements 
EventHandler<ResourceStatusE
     if (evaluatorManager.isPresent()) {
       evaluatorManager.get().onResourceStatusMessage(resourceStatusEvent);
     } else {
-      if (resourceStatusEvent.getIsFromPreviousDriver().get()) {
+      if 
(driverRestartManager.get().getEvaluatorRestartState(resourceStatusEvent.getIdentifier())
+            .isFailedOrExpired()) {
         final EvaluatorManager previousEvaluatorManager = 
this.evaluatorManagerFactory
             
.getNewEvaluatorManagerForEvaluatorFailedDuringDriverRestart(resourceStatusEvent);
 

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/9b1925d1/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
----------------------------------------------------------------------
diff --git 
a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
 
b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
index c9a1c34..495a777 100644
--- 
a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
+++ 
b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
@@ -243,7 +243,6 @@ public final class YarnDriverRuntimeRestartManager 
implements DriverRuntimeResta
           .setState(ReefServiceProtos.State.FAILED)
           .setExitCode(1)
           .setDiagnostics("Container [" + evaluatorId + "] failed during 
driver restart process.")
-          .setIsFromPreviousDriver(true)
           .build());
     }
   }

Reply via email to