From 8452584edc9b6e0eb01ad4084e42c4ec50ab6175 Mon Sep 17 00:00:00 2001
From: wangxiaoyu8 <wangxiaoyu1@jd.com>
Date: Thu, 22 Sep 2016 20:39:32 +0800
Subject: [PATCH] KYLIN-2035 Auto Merge Submit Continuously

---
 .../src/main/java/org/apache/kylin/cube/CubeManager.java      |  4 ++--
 .../main/java/org/apache/kylin/rest/service/CacheService.java | 11 ++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
index fd46b54..a754506 100644
--- a/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
+++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeManager.java
@@ -300,7 +300,7 @@ public class CubeManager implements IRealizationProvider {
         CubeInstance cube = updateCubeWithRetry(update, 0);
 
         if (listener != null)
-            listener.afterCubeUpdate(cube);
+            listener.afterCubeUpdate(update, cube);
 
         return cube;
     }
@@ -910,7 +910,7 @@ public class CubeManager implements IRealizationProvider {
     public interface CubeChangeListener {
         void afterCubeCreate(CubeInstance cube);
 
-        void afterCubeUpdate(CubeInstance cube);
+        void afterCubeUpdate(CubeUpdate update, CubeInstance cube);
 
         void afterCubeDelete(CubeInstance cube);
     }
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java
index 9d134d6..5deb0e4 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/CacheService.java
@@ -37,6 +37,7 @@ import org.apache.kylin.common.restclient.Broadcaster;
 import org.apache.kylin.cube.CubeDescManager;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeUpdate;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.dict.DictionaryManager;
 import org.apache.kylin.engine.streaming.StreamingManager;
@@ -85,8 +86,13 @@ public class CacheService extends BasicService {
             }
 
             @Override
-            public void afterCubeUpdate(CubeInstance cube) {
-                rebuildCubeCache(cube.getName());
+            public void afterCubeUpdate(CubeUpdate update, CubeInstance newCube) {
+                //not cancel job
+                if (update.getToUpdateSegs() != null
+                        || update.getToAddSegs() != null) {
+                    cubeService.updateOnNewSegmentReady(newCube.getName());
+                }
+                rebuildCubeCache(newCube.getName());
             }
 
             @Override
@@ -235,7 +241,6 @@ public class CacheService extends BasicService {
         if (cube != null) {
             cleanDataCache(cube.getUuid());
         }
-        cubeService.updateOnNewSegmentReady(cubeName);
     }
 
     public void removeCache(Broadcaster.TYPE cacheType, String cacheKey) {
-- 
1.9.1

