TEZ-3089. TaskConcurrencyAnalyzer can return negative task count with very large jobs (rbalamohan)
Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/89bc6abf Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/89bc6abf Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/89bc6abf Branch: refs/heads/TEZ-2980 Commit: 89bc6abf6c3caddb6224a19b7b47010b7bca4eff Parents: 235841f Author: Rajesh Balamohan <[email protected]> Authored: Tue Feb 2 03:56:46 2016 -0800 Committer: Rajesh Balamohan <[email protected]> Committed: Tue Feb 2 03:56:46 2016 -0800 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../plugins/TaskConcurrencyAnalyzer.java | 24 ++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/89bc6abf/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index c4c04e8..b7bb98a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,7 @@ Release 0.8.3: Unreleased INCOMPATIBLE CHANGES ALL CHANGES: + TEZ-3089. TaskConcurrencyAnalyzer can return negative task count with very large jobs. TEZ-2307. Possible wrong error message when submitting new dag TEZ-2974. Tez tools: TFileRecordReader in tez-tools should support reading >2 GB tfiles. TEZ-3081. Update tez website for trademarks feedback. http://git-wip-us.apache.org/repos/asf/tez/blob/89bc6abf/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/TaskConcurrencyAnalyzer.java ---------------------------------------------------------------------- diff --git a/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/TaskConcurrencyAnalyzer.java b/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/TaskConcurrencyAnalyzer.java index 070294f..72f3b36 100644 --- a/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/TaskConcurrencyAnalyzer.java +++ b/tez-tools/analyzers/job-analyzer/src/main/java/org/apache/tez/analyzer/plugins/TaskConcurrencyAnalyzer.java @@ -80,8 +80,28 @@ public class TaskConcurrencyAnalyzer extends TezAnalyzerBase implements Analyzer */ TreeMultiset<TimeInfo> timeInfoSet = TreeMultiset.create(new Comparator<TimeInfo>() { @Override public int compare(TimeInfo o1, TimeInfo o2) { - return (o1.timestamp < o2.timestamp) ? -1 : - ((o1.timestamp == o2.timestamp) ? 0 : 1); + if (o1.timestamp < o2.timestamp) { + return -1; + } + + if (o1.timestamp > o2.timestamp) { + return 1; + } + + if (o1.timestamp == o2.timestamp) { + //check event type + if (o1.eventType.equals(o2.eventType)) { + return 0; + } + + if (o1.eventType.equals(EventType.START) + && o2.eventType.equals(EventType.FINISH)) { + return -1; + } else { + return 1; + } + } + return 0; } });
