Hi all :
there is a problem in querying result though kylin
I view the code in QueryService.java at kytlin
```
public SQLResponse doQueryWithCache(SQLRequest sqlRequest) {
// some code
SQLResponse sqlResponse = null;
boolean queryCacheEnabled =
checkCondition(kylinConfig.isQueryCacheEnabled(),
"query cache disabled in KylinConfig") && //
checkCondition(!BackdoorToggles.getDisableCache(), "query
cache disabled in BackdoorToggles");
if (queryCacheEnabled) {
sqlResponse = searchQueryInCache(sqlRequest);
}
try {
if (null == sqlResponse) {
sqlResponse = query(sqlRequest);
long durationThreshold =
kylinConfig.getQueryDurationCacheThreshold();
long scanCountThreshold =
kylinConfig.getQueryScanCountCacheThreshold();
long scanBytesThreshold =
kylinConfig.getQueryScanBytesCacheThreshold();
sqlResponse.setDuration(System.currentTimeMillis() -
startTime);
logger.info("Stats of SQL response: isException: {},
duration: {}, total scan count {}", //
String.valueOf(sqlResponse.getIsException()),
String.valueOf(sqlResponse.getDuration()),
String.valueOf(sqlResponse.getTotalScanCount()));
if (checkCondition(queryCacheEnabled, "query cache is
disabled") //
&& checkCondition(!sqlResponse.getIsException(),
"query has exception") //
&& checkCondition(
sqlResponse.getDuration() >
durationThreshold
|| sqlResponse.getTotalScanCount()
> scanCountThreshold
|| sqlResponse.getTotalScanBytes()
> scanBytesThreshold, //
"query is too lightweight with duration: {}
(threshold {}), scan count: {} (threshold {}), scan bytes: {} (threshold {})",
sqlResponse.getDuration(),
durationThreshold, sqlResponse.getTotalScanCount(),
scanCountThreshold,
sqlResponse.getTotalScanBytes(), scanBytesThreshold)
&& checkCondition(sqlResponse.getResults().size() <
kylinConfig.getLargeQueryThreshold(),
"query response is too large: {} ({})",
sqlResponse.getResults().size(),
kylinConfig.getLargeQueryThreshold())) {
cacheManager.getCache(SUCCESS_QUERY_CACHE)
.put(new Element(sqlRequest.getCacheKey(),
sqlResponse));
}
```
I find that set the prop 'kylin.query.cache-enabled=true' .then all the query
though kylin will be cached
but I send same query twice last day and found that query do htable scanning
every time.
this is conflict with the code.
why?
best wishes!
[email protected]