This is an automated email from the ASF dual-hosted git repository. xxyu 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 99317f4 KYLIN-4608 add deletecubefast api for delete 300 cubes fast 99317f4 is described below commit 99317f4a3d8fb8cd479b9bb265767f4880236052 Author: chuxiao <chux...@didichuxing.com> AuthorDate: Tue Jun 30 11:59:02 2020 +0800 KYLIN-4608 add deletecubefast api for delete 300 cubes fast --- .../org/apache/kylin/rest/controller/CubeController.java | 16 ++++++++++++++++ .../java/org/apache/kylin/rest/service/CubeService.java | 9 +++++++++ 2 files changed, 25 insertions(+) diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java index 1b5f1e4..11df5c1 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/CubeController.java @@ -595,6 +595,22 @@ public class CubeController extends BasicController { } + @RequestMapping(value = "/{cubeName}/fast", method = {RequestMethod.DELETE}) + @ResponseBody + public void deleteCubeFast(@PathVariable String cubeName) { + checkCubeExists(cubeName); + CubeInstance cube = cubeService.getCubeManager().getCube(cubeName); + + //drop Cube + try { + cubeService.deleteCubeFast(cube); + } catch (Exception e) { + logger.error(e.getLocalizedMessage(), e); + throw new InternalErrorException("Failed to delete cube. " + " Caused by: " + e.getMessage(), e); + } + + } + /** * save cubeDesc * 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 f11f31a..e6210f4 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 @@ -368,6 +368,15 @@ public class CubeService extends BasicService implements InitializingBean { cleanSegmentStorage(toRemoveSegs); } + public void deleteCubeFast(CubeInstance cube) throws IOException { + aclEvaluate.checkProjectWritePermission(cube); + // user make sure no job running and no hybrid cube, so no check jobs status and hybrid definition + int cubeNum = getCubeManager().getCubesByDesc(cube.getDescriptor().getName()).size(); + getCubeManager().dropCube(cube.getName(), cubeNum == 1);//only delete cube desc when no other cube is using it + + } + + /** * Stop all jobs belonging to this cube and clean out all segments *