You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/11/29 07:59:58 UTC

[kylin] branch master updated: KYLIN-4203 Disable a real time cube and then enable it , this cube may can't submit build job anymore

This is an automated email from the ASF dual-hosted git repository.

nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new daffe23  KYLIN-4203 Disable a real time cube and then enable it ,this cube may can't submit build job anymore
daffe23 is described below

commit daffe23510f252e7efc0bd60b8cbb79af57fd214
Author: wangxiaojing <wa...@didichuxing.com>
AuthorDate: Fri Oct 25 18:27:48 2019 +0800

    KYLIN-4203 Disable a real time cube and then enable it ,this cube may can't submit build job anymore
---
 .../main/java/org/apache/kylin/rest/service/CubeService.java | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
index d068026..4fb2580 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -28,6 +28,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
 import org.apache.kylin.common.KylinConfig;
@@ -63,6 +64,7 @@ import org.apache.kylin.metadata.model.IStorageAware;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.SegmentRange;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
+import org.apache.kylin.metadata.model.Segments;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.metadata.project.ProjectManager;
@@ -423,6 +425,16 @@ public class CubeService extends BasicService implements InitializingBean {
             cubeStatusUpdated = true;
             // for streaming cube.
             if (isStreamingCube) {
+                //drop not ready segments
+                CubeSegment[] buildingSegments = new CubeSegment[cubeInstance.getBuildingSegments().size()];
+                Segments segments = cubeInstance.getBuildingSegments();
+                if (!CollectionUtils.isEmpty(segments)) {
+                    for (int i = 0; i < segments.size(); i++) {
+                        buildingSegments[i] = (CubeSegment) segments.get(i);
+                    }
+                    getCubeManager().dropOptmizingSegments(cubeInstance, buildingSegments);
+                }
+                //unAssign cube
                 getStreamingCoordinator().unAssignCube(cubeName);
             }
             return cubeInstance;