You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/01/15 13:27:00 UTC

[44/50] [abbrv] incubator-kylin git commit: fix cache issue

fix cache issue


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

Branch: refs/heads/inverted-index
Commit: 41095f08efd069d611af53f159e75462fad4c7d4
Parents: 4e88d7f
Author: qianhao.zhou <qi...@ebay.com>
Authored: Thu Jan 15 11:00:36 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Thu Jan 15 11:00:36 2015 +0800

----------------------------------------------------------------------
 .../kylinolap/invertedindex/IIDescManager.java  |  6 ++++-
 .../rest/controller/CacheController.java        | 24 ++++++++++----------
 .../kylinolap/rest/service/BasicService.java    |  5 ++++
 3 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/41095f08/invertedindex/src/main/java/com/kylinolap/invertedindex/IIDescManager.java
----------------------------------------------------------------------
diff --git a/invertedindex/src/main/java/com/kylinolap/invertedindex/IIDescManager.java b/invertedindex/src/main/java/com/kylinolap/invertedindex/IIDescManager.java
index bee55d2..8b0db25 100644
--- a/invertedindex/src/main/java/com/kylinolap/invertedindex/IIDescManager.java
+++ b/invertedindex/src/main/java/com/kylinolap/invertedindex/IIDescManager.java
@@ -111,7 +111,7 @@ public class IIDescManager {
         IIDesc ndesc = loadIIDesc(path);
 
         // Here replace the old one
-        iiDescMap.put(ndesc.getName(), ndesc);
+        iiDescMap.putLocal(ndesc.getName(), ndesc);
         return ndesc;
     }
 
@@ -166,6 +166,10 @@ public class IIDescManager {
         iiDescMap.remove(iiDesc.getName());
     }
 
+    public void removeIIDescLocal(String name) throws IOException {
+        iiDescMap.remove(name);
+    }
+
     private void reloadAllIIDesc() throws IOException {
         ResourceStore store = getStore();
         logger.info("Reloading all II desc from folder " + store.getReadableResourcePath(ResourceStore.II_DESC_RESOURCE_ROOT));

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/41095f08/server/src/main/java/com/kylinolap/rest/controller/CacheController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/com/kylinolap/rest/controller/CacheController.java b/server/src/main/java/com/kylinolap/rest/controller/CacheController.java
index 4b62013..65fc235 100644
--- a/server/src/main/java/com/kylinolap/rest/controller/CacheController.java
+++ b/server/src/main/java/com/kylinolap/rest/controller/CacheController.java
@@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.kylinolap.common.restclient.Broadcaster;
 import com.kylinolap.common.restclient.Broadcaster.EVENT;
-import com.kylinolap.metadata.MetadataConstances;
 import com.kylinolap.rest.service.CubeService;
 import com.kylinolap.rest.service.ProjectService;
 
@@ -66,7 +65,7 @@ public class CacheController extends BasicController {
         Broadcaster.TYPE wipeType = Broadcaster.TYPE.getType(type);
         EVENT wipeEvent = Broadcaster.EVENT.getEvent(event);
         final String log = "wipe cache type: " + wipeType + " event:" + wipeEvent + " name:" + name;
-        logger.debug(log);
+        logger.info(log);
         switch (wipeType) {
             case TABLE:
             switch (wipeEvent) {
@@ -89,11 +88,6 @@ public class CacheController extends BasicController {
             }
             break;
         case CUBE:
-            if ("ALL".equalsIgnoreCase(name.toUpperCase())) {
-                cubeMgmtService.cleanDataCache();
-                break;
-            }
-
             switch (wipeEvent) {
             case CREATE:
             case UPDATE:
@@ -104,12 +98,18 @@ public class CacheController extends BasicController {
                 break;
             }
             break;
-        case PROJECT:
-            if ("ALL".equalsIgnoreCase(name.toUpperCase())) {
-                projectService.cleanDataCache();
-                break;
+        case INVERTED_INDEX:
+            switch (wipeEvent) {
+                case CREATE:
+                case UPDATE:
+                    cubeMgmtService.getIIDescManager().reloadIIDesc(name);
+                    break;
+                case DROP:
+                    cubeMgmtService.getIIDescManager().removeIIDescLocal(name);
+                    break;
             }
-
+            break;
+        case PROJECT:
             switch (wipeEvent) {
             case CREATE:
             case UPDATE:

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/41095f08/server/src/main/java/com/kylinolap/rest/service/BasicService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/com/kylinolap/rest/service/BasicService.java b/server/src/main/java/com/kylinolap/rest/service/BasicService.java
index 2db6e82..556ae40 100644
--- a/server/src/main/java/com/kylinolap/rest/service/BasicService.java
+++ b/server/src/main/java/com/kylinolap/rest/service/BasicService.java
@@ -23,6 +23,7 @@ import com.google.common.io.Files;
 import com.kylinolap.common.KylinConfig;
 import com.kylinolap.cube.CubeDescManager;
 import com.kylinolap.cube.CubeManager;
+import com.kylinolap.invertedindex.IIDescManager;
 import com.kylinolap.job.cube.CubingJob;
 import com.kylinolap.job.execution.ExecutableState;
 import com.kylinolap.job.impl.threadpool.AbstractExecutable;
@@ -161,6 +162,10 @@ public abstract class BasicService {
         return ExecutableManager.getInstance(getConfig());
     }
 
+    public final IIDescManager getIIDescManager() {
+        return IIDescManager.getInstance(getConfig());
+    }
+
     protected List<CubingJob> listAllCubingJobs(final String cubeName, final String projectName, final Set<ExecutableState> statusList) {
         List<CubingJob> results = Lists.newArrayList(FluentIterable.from(getExecutableManager().getAllExecutables()).filter(new Predicate<AbstractExecutable>() {
             @Override