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;
}