You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2017/12/21 02:58:59 UTC

[14/16] kylin git commit: KYLIN-3004 Delete cube segment validation

KYLIN-3004 Delete cube segment validation

Signed-off-by: lidongsjtu <li...@apache.org>


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

Branch: refs/heads/master
Commit: 07142889d4423b3211be625eceb8fd093fd34a22
Parents: c9bcc5b
Author: liapan <li...@ebay.com>
Authored: Mon Dec 11 11:28:16 2017 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Wed Dec 20 23:30:25 2017 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/rest/msg/Message.java    | 4 ----
 .../java/org/apache/kylin/rest/service/CubeService.java     | 9 +++++----
 2 files changed, 5 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/07142889/server-base/src/main/java/org/apache/kylin/rest/msg/Message.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/msg/Message.java b/server-base/src/main/java/org/apache/kylin/rest/msg/Message.java
index 02e4020..168d476 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/msg/Message.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/msg/Message.java
@@ -61,10 +61,6 @@ public class Message {
         return "Inconsistent cube desc signature for '%s', if it's right after an upgrade, please try 'Edit CubeDesc' to delete the 'signature' field. Or use 'bin/metastore.sh refresh-cube-signature' to batch refresh all cubes' signatures, then reload metadata to take effect.";
     }
 
-    public String getDELETE_NOT_FIRST_LAST_SEG() {
-        return "Cannot delete segment '%s' as it is neither the first nor the last segment.";
-    }
-
     public String getDELETE_NOT_READY_SEG() {
         return "Cannot delete segment '%s' as its status is not READY. Discard the on-going job for it.";
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/07142889/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
----------------------------------------------------------------------
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 d218bfa..3a6f275 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
@@ -489,10 +489,6 @@ public class CubeService extends BasicService implements InitializingBean {
         aclEvaluate.hasProjectOperationPermission(cube.getProjectInstance());
         Message msg = MsgPicker.getMsg();
 
-        if (!segmentName.equals(cube.getSegments().get(0).getName())
-                && !segmentName.equals(cube.getSegments().get(cube.getSegments().size() - 1).getName())) {
-            throw new BadRequestException(String.format(msg.getDELETE_NOT_FIRST_LAST_SEG(), segmentName));
-        }
         CubeSegment toDelete = null;
         for (CubeSegment seg : cube.getSegments()) {
             if (seg.getName().equals(segmentName)) {
@@ -508,6 +504,11 @@ public class CubeService extends BasicService implements InitializingBean {
             throw new BadRequestException(String.format(msg.getDELETE_NOT_READY_SEG(), segmentName));
         }
 
+        if (!segmentName.equals(cube.getSegments().get(0).getName())
+                && !segmentName.equals(cube.getSegments().get(cube.getSegments().size() - 1).getName())) {
+            logger.warn(String.format("Cube [%s] gaps caused by deleting segment [%s].", cube.getName(), segmentName));
+        }
+
         CubeUpdate update = new CubeUpdate(cube);
         update.setToRemoveSegs(new CubeSegment[] { toDelete });
         return CubeManager.getInstance(getConfig()).updateCube(update);