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/06/12 04:41:03 UTC

[1/2] kylin git commit: KYLIN-1780 Potential issue in SnapshotTable.equals()

Repository: kylin
Updated Branches:
  refs/heads/master 536f94c0c -> b376e242d


KYLIN-1780 Potential issue in SnapshotTable.equals()

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/0ddd907b
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/0ddd907b
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/0ddd907b

Branch: refs/heads/master
Commit: 0ddd907b127907b08179d329ad7267f4a446092f
Parents: 536f94c
Author: shaofengshi <sh...@apache.org>
Authored: Sun Jun 12 12:32:14 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Sun Jun 12 12:32:14 2016 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/kylin/dict/lookup/SnapshotTable.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/0ddd907b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
index f69e29f..b2306b2 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/SnapshotTable.java
@@ -170,6 +170,9 @@ public class SnapshotTable extends RootPersistentEntity implements ReadableTable
             return false;
         SnapshotTable that = (SnapshotTable) o;
 
+        if (this.dict.equals(that.dict) == false)
+            return false;
+
         //compare row by row
         if (this.rowIndices.size() != that.rowIndices.size())
             return false;
@@ -177,6 +180,7 @@ public class SnapshotTable extends RootPersistentEntity implements ReadableTable
             if (!ArrayUtils.isEquals(this.rowIndices.get(i), that.rowIndices.get(i)))
                 return false;
         }
+
         return true;
     }
 


[2/2] kylin git commit: KYLIN-1777 Streaming cube build shouldn't check working segment

Posted by sh...@apache.org.
KYLIN-1777 Streaming cube build shouldn't check working segment

Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b376e242
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b376e242
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b376e242

Branch: refs/heads/master
Commit: b376e242d52757aa04ab2ed7b0b9777311699139
Parents: 0ddd907
Author: shaofengshi <sh...@apache.org>
Authored: Sun Jun 12 12:40:45 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Sun Jun 12 12:40:45 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/cube/CubeManager.java    | 17 ++++++++++++-----
 .../streaming/cube/StreamingCubeBuilder.java       |  2 +-
 2 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b376e242/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
----------------------------------------------------------------------
diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index 74deac4..8370611 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -397,7 +397,13 @@ public class CubeManager implements IRealizationProvider {
     }
 
     public CubeSegment appendSegment(CubeInstance cube, long startDate, long endDate, long startOffset, long endOffset) throws IOException {
-        checkNoBuildingSegment(cube);
+        return appendSegment(cube, startDate, endDate, startOffset, endOffset, true, true);
+    }
+
+    public CubeSegment appendSegment(CubeInstance cube, long startDate, long endDate, long startOffset, long endOffset, boolean strictChecking, boolean saveChange) throws IOException {
+
+        if(strictChecking)
+            checkNoBuildingSegment(cube);
 
         if (cube.getDescriptor().getModel().getPartitionDesc().isPartitioned()) {
             // try figure out a reasonable start if missing
@@ -418,10 +424,11 @@ public class CubeManager implements IRealizationProvider {
         CubeSegment newSegment = newSegment(cube, startDate, endDate, startOffset, endOffset);
         validateNewSegments(cube, newSegment);
 
-        CubeUpdate cubeBuilder = new CubeUpdate(cube);
-        cubeBuilder.setToAddSegs(newSegment);
-        updateCube(cubeBuilder);
-        
+        if (saveChange) {
+            CubeUpdate cubeBuilder = new CubeUpdate(cube);
+            cubeBuilder.setToAddSegs(newSegment);
+            updateCube(cubeBuilder);
+        }
         return newSegment;
     }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/b376e242/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/cube/StreamingCubeBuilder.java
----------------------------------------------------------------------
diff --git a/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/cube/StreamingCubeBuilder.java b/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/cube/StreamingCubeBuilder.java
index a08f13c..b4790e6 100644
--- a/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/cube/StreamingCubeBuilder.java
+++ b/engine-streaming/src/main/java/org/apache/kylin/engine/streaming/cube/StreamingCubeBuilder.java
@@ -115,7 +115,7 @@ public class StreamingCubeBuilder implements StreamingBatchBuilder {
         CubeManager cubeManager = CubeManager.getInstance(KylinConfig.getInstanceFromEnv());
         final CubeInstance cubeInstance = cubeManager.reloadCubeLocal(cubeName);
         try {
-            CubeSegment segment = cubeManager.appendSegment(cubeInstance, streamingBatch.getTimeRange().getFirst(), streamingBatch.getTimeRange().getSecond(), 0, 0);
+            CubeSegment segment = cubeManager.appendSegment(cubeInstance, streamingBatch.getTimeRange().getFirst(), streamingBatch.getTimeRange().getSecond(), 0, 0, false, false);
             segment.setLastBuildJobID(segment.getUuid()); // give a fake job id
             segment.setInputRecords(streamingBatch.getMessages().size());
             segment.setLastBuildTime(System.currentTimeMillis());