KYLIN-2783 amend clearing Cuboid cache for CubeDesc
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/940aef6c Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/940aef6c Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/940aef6c Branch: refs/heads/master Commit: 940aef6c67230db86eae767f7797c5dab1df07e7 Parents: f5ebc32 Author: Li Yang <liy...@apache.org> Authored: Wed Sep 20 19:10:49 2017 +0800 Committer: Roger Shi <rogershijich...@gmail.com> Committed: Thu Sep 21 16:23:07 2017 +0800 ---------------------------------------------------------------------- .../main/java/org/apache/kylin/cube/CubeDescManager.java | 3 +++ .../main/java/org/apache/kylin/cube/cuboid/Cuboid.java | 10 +++++----- .../org/apache/kylin/cube/cuboid/CuboidScheduler.java | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/940aef6c/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java index 3af39f9..b72332c 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java @@ -166,6 +166,7 @@ public class CubeDescManager { CubeDesc ndesc = loadCubeDesc(CubeDesc.concatResourcePath(name), false); cubeDescMap.putLocal(ndesc.getName(), ndesc); + Cuboid.clearCache(ndesc.getName()); // avoid calling CubeDesc.getInitialCuboidScheduler() for late initializing CuboidScheduler // if related cube is in DESCBROKEN state before, change it back to DISABLED CubeManager cubeManager = CubeManager.getInstance(config); @@ -291,11 +292,13 @@ public class CubeDescManager { String path = cubeDesc.getResourcePath(); getStore().deleteResource(path); cubeDescMap.remove(cubeDesc.getName()); + Cuboid.clearCache(cubeDesc.getName()); // avoid calling CubeDesc.getInitialCuboidScheduler() for late initializing CuboidScheduler } // remove cubeDesc public void removeLocalCubeDesc(String name) throws IOException { cubeDescMap.removeLocal(name); + Cuboid.clearCache(name); } private void reloadAllCubeDesc() throws IOException { http://git-wip-us.apache.org/repos/asf/kylin/blob/940aef6c/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 74eb853..efd2e2e 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 @@ -132,12 +132,12 @@ public class Cuboid implements Comparable<Cuboid>, Serializable { CUBOID_CACHE.clear(); } - public static void clearCache(CubeInstance cubeInstance) { - clearCache(cubeInstance.getCuboidScheduler()); + public static void clearCache(String cacheKey) { + CUBOID_CACHE.remove(cacheKey); } - - private static void clearCache(CuboidScheduler cuboidScheduler) { - CUBOID_CACHE.remove(cuboidScheduler.getCuboidCacheKey()); + + public static void clearCache(CubeInstance cubeInstance) { + CUBOID_CACHE.remove(cubeInstance.getCuboidScheduler().getCuboidCacheKey()); } // ============================================================================ http://git-wip-us.apache.org/repos/asf/kylin/blob/940aef6c/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java index 2f25b9c..17096f6 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/CuboidScheduler.java @@ -128,7 +128,7 @@ abstract public class CuboidScheduler { /** Returns the key for what this cuboid scheduler responsible for. */ public String getCuboidCacheKey() { - return CubeDesc.class.getSimpleName() + "-" + cubeDesc.getName(); + return cubeDesc.getName(); } }