[ 
https://issues.apache.org/jira/browse/YARN-8080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16476621#comment-16476621
 ] 

Eric Yang commented on YARN-8080:
---------------------------------

[~suma.shivaprasad] Thank you for the patch, a few nitpicks:

{code}
      if (!failedComponents.isEmpty()) {
        setGracefulStop(FinalApplicationStatus.FAILED);
        getTerminationHandler().terminate(-1);
      } else{
        setGracefulStop(FinalApplicationStatus.SUCCEEDED);
        getTerminationHandler().terminate(0);
      }
{code}

This can be rewritten without the double negatives and use exit code 
declaration to improve code readability:

{code}
      if (failedComponents.isEmpty()) {
        setGracefulStop(FinalApplicationStatus.SUCCEEDED);
        getTerminationHandler().terminate(EXIT_SUCCESS);
      } else{
        setGracefulStop(FinalApplicationStatus.FAILED);
        getTerminationHandler().terminate(EXIT_FALSE);
      }
{code}

Changes is unnecessary:
{code}
@@ -415,7 +451,7 @@ private static ComponentState checkIfStable(Component 
component) {
       component.componentSpec.setState(
           org.apache.hadoop.yarn.service.api.records.ComponentState.FLEXING);
       return FLEXING;
-    } else {
+    } else{
       //  component.numContainersThatNeedUpgrade.get() > 0
       component.componentSpec.setState(org.apache.hadoop.yarn.service.api.
           records.ComponentState.NEEDS_UPGRADE);
{code}

In stabilizeComponents, the containerNum is now a global number for all 
components, instead of component specific number.  What is the reason for this 
change?

It would be great to cleanup the checkstyle errors to make the patch easier to 
read.

restart_policy=ON_FAILURE, and each component instance failed 3 times, and 
application goes into FINISHED state instead of FAILED state.  Is this expected?

> YARN native service should support component restart policy
> -----------------------------------------------------------
>
>                 Key: YARN-8080
>                 URL: https://issues.apache.org/jira/browse/YARN-8080
>             Project: Hadoop YARN
>          Issue Type: Task
>            Reporter: Wangda Tan
>            Assignee: Suma Shivaprasad
>            Priority: Critical
>         Attachments: YARN-8080.001.patch, YARN-8080.002.patch, 
> YARN-8080.003.patch, YARN-8080.005.patch, YARN-8080.006.patch, 
> YARN-8080.007.patch, YARN-8080.009.patch, YARN-8080.010.patch, 
> YARN-8080.011.patch, YARN-8080.012.patch, YARN-8080.013.patch, 
> YARN-8080.014.patch
>
>
> Existing native service assumes the service is long running and never 
> finishes. Containers will be restarted even if exit code == 0. 
> To support boarder use cases, we need to allow restart policy of component 
> specified by users. Propose to have following policies:
> 1) Always: containers always restarted by framework regardless of container 
> exit status. This is existing/default behavior.
> 2) Never: Do not restart containers in any cases after container finishes: To 
> support job-like workload (for example Tensorflow training job). If a task 
> exit with code == 0, we should not restart the task. This can be used by 
> services which is not restart/recovery-able.
> 3) On-failure: Similar to above, only restart task with exitcode != 0. 
> Behaviors after component *instance* finalize (Succeeded or Failed when 
> restart_policy != ALWAYS): 
> 1) For single component, single instance: complete service.
> 2) For single component, multiple instance: other running instances from the 
> same component won't be affected by the finalized component instance. Service 
> will be terminated once all instances finalized. 
> 3) For multiple components: Service will be terminated once all components 
> finalized.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to