void updateStats()

in tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/VertexStats.java [79:130]


  void updateStats(TaskReport taskReport) {
    if (firstTaskStartTime == -1
      || firstTaskStartTime >= taskReport.getStartTime()) {
      if (firstTaskStartTime != taskReport.getStartTime()) {
        firstTasksToStart.clear();
      }
      firstTasksToStart.add(taskReport.getTaskId());
      firstTaskStartTime = taskReport.getStartTime();
    }
    if ((taskReport.getFinishTime() > 0) &&
        (lastTaskFinishTime == -1
        || lastTaskFinishTime <= taskReport.getFinishTime())) {
      if (lastTaskFinishTime != taskReport.getFinishTime()) {
        lastTasksToFinish.clear();
      }
      lastTasksToFinish.add(taskReport.getTaskId());
      lastTaskFinishTime = taskReport.getFinishTime();
    }

    if (!taskReport.getTaskState().equals(
        TaskState.SUCCEEDED)) {
      // ignore non-successful tasks when calculating durations
      return;
    }

    long taskDuration = taskReport.getFinishTime() -
        taskReport.getStartTime();
    if (taskDuration < 0) {
      return;
    }

    ++numSuccessfulTasks;
    if (minTaskDuration == -1
      || minTaskDuration >= taskDuration) {
      if (minTaskDuration != taskDuration) {
        shortestDurationTasks.clear();
      }
      minTaskDuration = taskDuration;
      shortestDurationTasks.add(taskReport.getTaskId());
    }
    if (maxTaskDuration == -1
      || maxTaskDuration <= taskDuration) {
      if (maxTaskDuration != taskDuration) {
        longestDurationTasks.clear();
      }
      maxTaskDuration = taskDuration;
      longestDurationTasks.add(taskReport.getTaskId());
    }

    avgTaskDuration = ((avgTaskDuration * (numSuccessfulTasks-1)) + taskDuration)
        /numSuccessfulTasks;
  }