You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2018/10/29 11:27:54 UTC
[kylin] 02/12: KYLIN-2894 add trigger
kylin.query.cache-signature-enabled for enabling query signature
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 <nj...@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;
}