This is an automated email from the ASF dual-hosted git repository.

shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 1fcf9679e14978b9d0fa36a500797991be34e63e
Author: Zhong <nju_y...@apache.org>
AuthorDate: Thu Oct 18 17:04:25 2018 +0800

    KYLIN-2894 add trigger kylin.query.cache-signature-enabled for enabling 
query signature
---
 .../main/java/org/apache/kylin/common/KylinConfigBase.java  |  4 ++++
 .../java/org/apache/kylin/rest/service/CacheService.java    | 13 +++++++++----
 .../java/org/apache/kylin/rest/service/QueryService.java    |  7 +++++--
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git 
a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java 
b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index 135d6e6..43c0831 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -1558,6 +1558,10 @@ abstract public class KylinConfigBase implements 
Serializable {
                 "org.apache.kylin.rest.signature.RealizationSetCalculator");
     }
 
+    public boolean isQueryCacheSignatureEnabled() {
+        return 
Boolean.parseBoolean(this.getOptional("kylin.query.cache-signature-enabled", 
"false"));
+    }
+
     // 
============================================================================
     // SERVER
     // 
============================================================================
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 67d49d9..930852b 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
@@ -19,8 +19,8 @@
 package org.apache.kylin.rest.service;
 
 import java.io.IOException;
-
 import java.util.Map;
+
 import org.apache.kylin.metadata.cachesync.Broadcaster;
 import org.apache.kylin.metadata.cachesync.Broadcaster.Event;
 import org.apache.kylin.storage.hbase.HBaseConnection;
@@ -117,9 +117,14 @@ public class CacheService extends BasicService implements 
InitializingBean {
 
     public void cleanDataCache(String project) {
         if (cacheManager != null) {
-            logger.info("cleaning cache for project " + project + " (currently 
remove exception entries)");
-            //            
cacheManager.getCache(QueryService.SUCCESS_QUERY_CACHE).removeAll();
-            
cacheManager.getCache(QueryService.EXCEPTION_QUERY_CACHE).removeAll();
+            if (getConfig().isQueryCacheSignatureEnabled()) {
+                logger.info("cleaning cache for project " + project + " 
(currently remove exception entries)");
+                
cacheManager.getCache(QueryService.EXCEPTION_QUERY_CACHE).removeAll();
+            } else {
+                logger.info("cleaning cache for project " + project + " 
(currently remove all entries)");
+                
cacheManager.getCache(QueryService.SUCCESS_QUERY_CACHE).removeAll();
+                
cacheManager.getCache(QueryService.EXCEPTION_QUERY_CACHE).removeAll();
+            }
         } else {
             logger.warn("skip cleaning cache for project " + project);
         }
diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java 
b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
index fb13ff5..d0ba4da 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -533,7 +533,8 @@ public class QueryService extends BasicService {
                 return null;
             }
             logger.info("The sqlResponse is found in " + cacheType);
-            if (!SQLResponseSignatureUtil.checkSignature(getConfig(), 
response, sqlRequest.getProject())) {
+            if (getConfig().isQueryCacheSignatureEnabled()
+                    && !SQLResponseSignatureUtil.checkSignature(getConfig(), 
response, sqlRequest.getProject())) {
                 logger.info("The sql response signature is changed. Remove it 
from QUERY_CACHE.");
                 cache.evict(sqlRequest.getCacheKey());
                 return null;
@@ -1091,7 +1092,9 @@ public class QueryService extends BasicService {
         response.setTotalScanCount(queryContext.getScannedRows());
         response.setTotalScanBytes(queryContext.getScannedBytes());
         
response.setCubeSegmentStatisticsList(queryContext.getCubeSegmentStatisticsResultList());
-        
response.setSignature(SQLResponseSignatureUtil.createSignature(getConfig(), 
response, projectName));
+        if (getConfig().isQueryCacheSignatureEnabled()) {
+            
response.setSignature(SQLResponseSignatureUtil.createSignature(getConfig(), 
response, projectName));
+        }
         return response;
     }
 

Reply via email to