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();
     }
     
 }

Reply via email to