You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@tez.apache.org by "Jeff Zhang (JIRA)" <ji...@apache.org> on 2015/05/05 09:24:06 UTC

[jira] [Updated] (TEZ-2413) No need to check whether vertex has been committed as shared output in DAGImpl#vertexreRunning

     [ https://issues.apache.org/jira/browse/TEZ-2413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jeff Zhang updated TEZ-2413:
----------------------------
    Description: 

* Vertex only send out DAGEventVertexReRunning when vertex.commitVertexOutputs is false, that means it is not necessary to check whether it has been committed as shared output of vertex group in DAGImpl#vertexReRunning
{code}
private boolean vertexReRunning(Vertex vertex) {
    reRunningVertices.add(vertex.getVertexId());
    numSuccessfulVertices--;
    addDiagnostic("Vertex re-running"
      + ", vertexName=" + vertex.getName()
      + ", vertexId=" + vertex.getVertexId());

    if (!commitAllOutputsOnSuccess) {
      // partial output may already have been committed. fail if so
      List<VertexGroupInfo> groupList = vertexGroupInfo.get(vertex.getName());
      if (groupList != null) {
        for (VertexGroupInfo groupInfo : groupList) {
          if (groupInfo.committed) {
            String msg = "Aborting job as committed vertex: "
                + vertex.getLogIdentifier() + " is re-running";
            LOG.info(msg);
            addDiagnostic(msg);
            enactKill(DAGTerminationCause.VERTEX_RERUN_AFTER_COMMIT,
                VertexTerminationCause.VERTEX_RERUN_AFTER_COMMIT);
            return true;
          } else {
            groupInfo.successfulMembers--;
          }
        }
      }
    }


> No need to check whether vertex has been committed as shared output in DAGImpl#vertexreRunning
> ----------------------------------------------------------------------------------------------
>
>                 Key: TEZ-2413
>                 URL: https://issues.apache.org/jira/browse/TEZ-2413
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Jeff Zhang
>            Assignee: Jeff Zhang
>
> * Vertex only send out DAGEventVertexReRunning when vertex.commitVertexOutputs is false, that means it is not necessary to check whether it has been committed as shared output of vertex group in DAGImpl#vertexReRunning
> {code}
> private boolean vertexReRunning(Vertex vertex) {
>     reRunningVertices.add(vertex.getVertexId());
>     numSuccessfulVertices--;
>     addDiagnostic("Vertex re-running"
>       + ", vertexName=" + vertex.getName()
>       + ", vertexId=" + vertex.getVertexId());
>     if (!commitAllOutputsOnSuccess) {
>       // partial output may already have been committed. fail if so
>       List<VertexGroupInfo> groupList = vertexGroupInfo.get(vertex.getName());
>       if (groupList != null) {
>         for (VertexGroupInfo groupInfo : groupList) {
>           if (groupInfo.committed) {
>             String msg = "Aborting job as committed vertex: "
>                 + vertex.getLogIdentifier() + " is re-running";
>             LOG.info(msg);
>             addDiagnostic(msg);
>             enactKill(DAGTerminationCause.VERTEX_RERUN_AFTER_COMMIT,
>                 VertexTerminationCause.VERTEX_RERUN_AFTER_COMMIT);
>             return true;
>           } else {
>             groupInfo.successfulMembers--;
>           }
>         }
>       }
>     }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)