Repository: tez Updated Branches: refs/heads/master cbc0c6376 -> d3011a9bc
TEZ-3376. Fix groupId generation to account for dagId starting with 1. (Harish Jaiprakash via hitesh) Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/d3011a9b Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/d3011a9b Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/d3011a9b Branch: refs/heads/master Commit: d3011a9bcc70a0cc4003005aba8aa3369a9b4d1c Parents: cbc0c63 Author: Hitesh Shah <[email protected]> Authored: Tue Jul 26 11:10:16 2016 -0700 Committer: Hitesh Shah <[email protected]> Committed: Tue Jul 26 11:10:16 2016 -0700 ---------------------------------------------------------------------- CHANGES.txt | 2 ++ .../org/apache/tez/dag/records/TezDAGID.java | 5 ++-- .../org/apache/tez/dag/records/TestTezIds.java | 24 ++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/d3011a9b/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 5f25985..550087a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,7 @@ INCOMPATIBLE CHANGES ALL CHANGES: + TEZ-3376. Fix groupId generation to account for dagId starting with 1. TEZ-3359. Add granular log levels for HistoryLoggingService. TEZ-3374. Change TEZ_HISTORY_LOGGING_TIMELINE_NUM_DAGS_PER_GROUP conf key name. TEZ-3358. Support using the same TimelineGroupId for multiple DAGs. @@ -90,6 +91,7 @@ INCOMPATIBLE CHANGES ALL CHANGES: + TEZ-3376. Fix groupId generation to account for dagId starting with 1. TEZ-3359. Add granular log levels for HistoryLoggingService. TEZ-3374. Change TEZ_HISTORY_LOGGING_TIMELINE_NUM_DAGS_PER_GROUP conf key name. TEZ-3358. Support using the same TimelineGroupId for multiple DAGs. http://git-wip-us.apache.org/repos/asf/tez/blob/d3011a9b/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java ---------------------------------------------------------------------- diff --git a/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java b/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java index 58ab509..b7a2c8f 100644 --- a/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java +++ b/tez-common/src/main/java/org/apache/tez/dag/records/TezDAGID.java @@ -187,12 +187,13 @@ public class TezDAGID extends TezID { */ public String getGroupId(int numDagsPerGroup) { if (numDagsPerGroup <= 1) { - throw new IllegalArgumentException("numDagsPerGroup has to be more than one. Got: " + numDagsPerGroup); + throw new IllegalArgumentException("numDagsPerGroup has to be more than one. Got: " + + numDagsPerGroup); } return DAG_GROUPID_PREFIX + SEPARATOR + getApplicationId().getClusterTimestamp() + SEPARATOR + tezAppIdFormat.get().format(getApplicationId().getId()) + SEPARATOR + - tezDagIdFormat.get().format(getId() / numDagsPerGroup); + tezDagIdFormat.get().format((getId() - 1) / numDagsPerGroup); } public static TezDAGID fromString(String dagId) { http://git-wip-us.apache.org/repos/asf/tez/blob/d3011a9b/tez-common/src/test/java/org/apache/tez/dag/records/TestTezIds.java ---------------------------------------------------------------------- diff --git a/tez-common/src/test/java/org/apache/tez/dag/records/TestTezIds.java b/tez-common/src/test/java/org/apache/tez/dag/records/TestTezIds.java index 04a2b35..5e1552d 100644 --- a/tez-common/src/test/java/org/apache/tez/dag/records/TestTezIds.java +++ b/tez-common/src/test/java/org/apache/tez/dag/records/TestTezIds.java @@ -146,5 +146,29 @@ public class TestTezIds { } + public void testGetGroupIds() { + ApplicationId appId = ApplicationId.newInstance(0, 1); + int numDagsPerGroup = 5; + TezDAGID dagId = TezDAGID.getInstance(appId, 1); + + // All dags within one group should have same id. + String groupId1 = dagId.getGroupId(numDagsPerGroup); + for (int i = 0; i < numDagsPerGroup; ++i) { + Assert.assertEquals(TezDAGID.getInstance(appId, i + 1).getGroupId(numDagsPerGroup), groupId1); + } + + // Assert different id across groups. + Assert.assertNotEquals( + TezDAGID.getInstance(appId, numDagsPerGroup + 1).getGroupId(numDagsPerGroup), groupId1); + + // Invalid values -1, 0, 1 should throw IllegalArgumentException. + for (int i = -1; i < 2; ++i) { + try { + dagId.getGroupId(i); + Assert.fail("Expected IllegalArgumentException for numDagsPerGroup: " + i); + } catch (IllegalArgumentException e) { + } + } + } }
