You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2016/03/23 10:15:12 UTC
[28/50] [abbrv] kylin git commit: fix bug and strength UT in cuboid
scheduling
fix bug and strength UT in cuboid scheduling
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ea4a42c6
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ea4a42c6
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ea4a42c6
Branch: refs/heads/1.5.x-HBase1.1.3
Commit: ea4a42c63af0669c0b964eb7bb20ca7dcc52fa56
Parents: 8590b2d
Author: Hongbin Ma <ma...@apache.org>
Authored: Thu Mar 10 19:46:56 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Thu Mar 10 19:47:02 2016 +0800
----------------------------------------------------------------------
.../org/apache/kylin/cube/cuboid/Cuboid.java | 1 -
.../org/apache/kylin/cube/cuboid/CuboidCLI.java | 32 ++++++++++++++++++++
.../kylin/cube/cuboid/CuboidSchedulerTest.java | 10 ++++++
3 files changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/ea4a42c6/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
index c4e373b..16b0287 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/Cuboid.java
@@ -235,7 +235,6 @@ public class Cuboid implements Comparable<Cuboid> {
for (HierarchyMask hierarchyMasks : hierarchyMaskList) {
long result = cuboidID & hierarchyMasks.fullMask;
if (result > 0) {
- // if match one of the hierarchy constrains, return true;
for (long mask : hierarchyMasks.allMasks) {
if (result == mask) {
continue hier;
http://git-wip-us.apache.org/repos/asf/kylin/blob/ea4a42c6/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidCLI.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidCLI.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidCLI.java
index 49382bd..d5918aa 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidCLI.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidCLI.java
@@ -57,7 +57,9 @@ public class CuboidCLI {
if (!notfound) {
throw new IllegalStateException("Find duplicate spanning cuboid " + sc + " from cuboid " + cuboid);
}
+
cuboidQueue.push(sc);
+
}
}
@@ -68,6 +70,36 @@ public class CuboidCLI {
if (enumCuboids.equals(cuboidSet) == false) {
throw new IllegalStateException("Expected cuboid set " + enumCuboids + "; but actual cuboid set " + cuboidSet);
}
+
+ //check all valid and invalid
+ for (long i = 0; i < baseCuboid; ++i) {
+ if (cuboidSet.contains(i)) {
+ if (!Cuboid.isValid(cubeDesc, i)) {
+ throw new RuntimeException();
+ }
+
+ if (Cuboid.translateToValidCuboid(cubeDesc, i) != i) {
+ throw new RuntimeException();
+ }
+ } else {
+ if (Cuboid.isValid(cubeDesc, i)) {
+ throw new RuntimeException();
+ }
+
+ long corrected = Cuboid.translateToValidCuboid(cubeDesc, i);
+ if (corrected == i) {
+ throw new RuntimeException();
+ }
+
+ if (!Cuboid.isValid(cubeDesc, corrected)) {
+ throw new RuntimeException();
+ }
+
+ if (Cuboid.translateToValidCuboid(cubeDesc, corrected) != corrected) {
+ throw new RuntimeException();
+ }
+ }
+ }
}
return cuboidSet.size();
http://git-wip-us.apache.org/repos/asf/kylin/blob/ea4a42c6/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
----------------------------------------------------------------------
diff --git a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
index 0711d6e..02c01b8 100644
--- a/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
+++ b/core-cube/src/test/java/org/apache/kylin/cube/cuboid/CuboidSchedulerTest.java
@@ -88,6 +88,10 @@ public class CuboidSchedulerTest extends LocalFileMetadataTestCase {
private CubeDesc getStreamingCubeDesc() {
return getCubeDescManager().getCubeDesc("test_streaming_table_cube_desc");
}
+
+ private CubeDesc getSSBCubeDesc() {
+ return getCubeDescManager().getCubeDesc("ssb");
+ }
private void testSpanningAndGetParent(CuboidScheduler scheduler, CubeDesc cube, long[] cuboidIds) {
for (long cuboidId : cuboidIds) {
@@ -209,6 +213,12 @@ public class CuboidSchedulerTest extends LocalFileMetadataTestCase {
}
@Test
+ public void testCuboidGeneration6() {
+ CubeDesc cube = getSSBCubeDesc();
+ CuboidCLI.simulateCuboidGeneration(cube, true);
+ }
+
+ @Test
public void testCuboidCounts1() {
CubeDesc cube = getTestKylinCubeWithoutSeller();
CuboidScheduler cuboidScheduler = new CuboidScheduler(cube);