This is an automated email from the ASF dual-hosted git repository. shaofengshi pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git.
from 3bcbaa8 KYLIN-3562, optimization the logic that updating the user when user logged in. new f120886 KYLIN-2894 Query cache expiration strategy switches from manual invalidation to signature checking new 1fcf967 KYLIN-2894 add trigger kylin.query.cache-signature-enabled for enabling query signature new 7e1cded KYLIN-2894 add a new signature calculator FactTableRealizationSetCalculator new 95afdb4 KYLIN-2894 add unit test new 6b5f961 KYLIN-2896 remove query exception cache new b9aab01 KYLIN-2897 improve the query execution for a set of duplicate queries in a short period new cd952ff KYLIN-2898 Introduce memcached as a distributed cache for queries new 73d0fd4 KYLIN-2898 config memcached new 2f04803 KYLIN-2898 add unit test new 7b58b16 KYLIN-2899 Introduce segment level query cache new 78b17f5 KYLIN-2723 fix potential concurrent issue when add rpc statistics new de86ed6 KYLIN-2898 If a distributed cache is adopted, small query results are also better to be put into the cache. The 12 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: {query => cache}/pom.xml | 64 ++-- .../spy/memcached/RefinedKetamaNodeLocator.java | 279 ++++++++++++++++ .../kylin/cache/cachemanager/CacheConstants.java | 8 +- .../InstrumentedEhCacheCacheManager.java | 101 ++++++ .../cache/cachemanager/MemcachedCacheManager.java | 181 ++++++++++ .../RemoteLocalFailOverCacheManager.java | 71 ++++ .../cache/ehcache/InstrumentedEhCacheCache.java | 205 ++++++++++++ .../apache/kylin/cache/memcached/CacheStats.java | 97 ++++++ .../kylin/cache/memcached/KeyHookLookup.java | 139 ++++++++ .../kylin/cache/memcached/MemcachedCache.java | 371 +++++++++++++++++++++ .../cache/memcached/MemcachedCacheConfig.java | 97 ++++++ .../cache/memcached/MemcachedChunkingCache.java | 279 ++++++++++++++++ .../memcached/MemcachedConnectionFactory.java | 193 +++++++++++ .../MemcachedConnectionFactoryBuilder.java | 173 ++++++++++ .../kylin/cache/memcached/MemcachedMetrics.java | 139 ++++++++ .../RemoteLocalFailOverCacheManagerTest.java | 62 ++++ .../kylin/cache/memcached/MemcachedCacheTest.java | 84 +++++ .../memcached/MemcachedChunkingCacheTest.java | 159 +++++++++ cache/src/test/resources/cacheContext.xml | 47 +++ .../src/test}/resources/ehcache-test.xml | 13 +- .../org/apache/kylin/common/KylinConfigBase.java | 38 +++ .../java/org/apache/kylin/common/QueryContext.java | 86 +++-- .../apache/kylin/common/debug/BackdoorToggles.java | 16 + dev-support/checkstyle.xml | 4 +- pom.xml | 17 + server-base/pom.xml | 4 + .../apache/kylin/rest/response/SQLResponse.java | 32 +- .../apache/kylin/rest/service/CacheService.java | 11 +- .../apache/kylin/rest/service/QueryService.java | 130 ++++++-- .../kylin/rest/signature/ComponentSignature.java | 15 +- .../FactTableRealizationSetCalculator.java | 112 +++++++ .../rest/signature/RealizationSetCalculator.java | 101 ++++++ .../kylin/rest/signature/RealizationSignature.java | 164 +++++++++ .../kylin/rest/signature/SegmentSignature.java | 52 +-- .../kylin/rest/signature/SignatureCalculator.java | 16 +- .../kylin/rest/util/SQLResponseSignatureUtil.java | 68 ++++ .../java/org/apache/kylin/rest/bean/BeanTest.java | 2 +- .../kylin/rest/response/SQLResponseTest.java | 49 +++ .../RealizationSignatureTest.java} | 33 +- .../kylin/rest/signature/SegmentSignatureTest.java | 26 +- .../rest/signature/SignatureCalculatorTest.java | 184 ++++++++++ server/src/main/resources/applicationContext.xml | 28 +- .../kylin/rest/controller/QueryControllerTest.java | 2 +- storage-hbase/pom.xml | 4 + .../hbase/cube/v2/CubeHBaseEndpointRPC.java | 155 ++++++++- .../storage/hbase/cube/v2/SegmentQueryCache.java | 80 +++++ .../storage/hbase/cube/v2/SegmentQueryResult.java | 101 ++++++ .../storage/hbase/cube/SegmentQueryResultTest.java | 112 +++++++ 48 files changed, 4213 insertions(+), 191 deletions(-) copy {query => cache}/pom.xml (61%) create mode 100644 cache/src/main/java/net/spy/memcached/RefinedKetamaNodeLocator.java copy core-cube/src/main/java/org/apache/kylin/gridtable/IGTBypassChecker.java => cache/src/main/java/org/apache/kylin/cache/cachemanager/CacheConstants.java (85%) create mode 100644 cache/src/main/java/org/apache/kylin/cache/cachemanager/InstrumentedEhCacheCacheManager.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/cachemanager/MemcachedCacheManager.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/cachemanager/RemoteLocalFailOverCacheManager.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/ehcache/InstrumentedEhCacheCache.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/CacheStats.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/KeyHookLookup.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedCache.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedCacheConfig.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedChunkingCache.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedConnectionFactory.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedConnectionFactoryBuilder.java create mode 100644 cache/src/main/java/org/apache/kylin/cache/memcached/MemcachedMetrics.java create mode 100644 cache/src/test/java/org/apache/kylin/cache/cachemanager/RemoteLocalFailOverCacheManagerTest.java create mode 100644 cache/src/test/java/org/apache/kylin/cache/memcached/MemcachedCacheTest.java create mode 100644 cache/src/test/java/org/apache/kylin/cache/memcached/MemcachedChunkingCacheTest.java create mode 100644 cache/src/test/resources/cacheContext.xml copy {server/src/main => cache/src/test}/resources/ehcache-test.xml (77%) copy core-metrics/src/main/java/org/apache/kylin/metrics/lib/SinkTool.java => server-base/src/main/java/org/apache/kylin/rest/signature/ComponentSignature.java (74%) create mode 100644 server-base/src/main/java/org/apache/kylin/rest/signature/FactTableRealizationSetCalculator.java create mode 100644 server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSetCalculator.java create mode 100644 server-base/src/main/java/org/apache/kylin/rest/signature/RealizationSignature.java copy core-common/src/main/java/org/apache/kylin/common/util/CaseInsensitiveString.java => server-base/src/main/java/org/apache/kylin/rest/signature/SegmentSignature.java (53%) copy core-job/src/main/java/org/apache/kylin/job/execution/ExecutableContext.java => server-base/src/main/java/org/apache/kylin/rest/signature/SignatureCalculator.java (74%) create mode 100644 server-base/src/main/java/org/apache/kylin/rest/util/SQLResponseSignatureUtil.java create mode 100644 server-base/src/test/java/org/apache/kylin/rest/response/SQLResponseTest.java copy server-base/src/test/java/org/apache/kylin/rest/{service/TableServiceTest.java => signature/RealizationSignatureTest.java} (54%) copy core-common/src/test/java/org/apache/kylin/common/persistence/AutoDeleteDirectoryTest.java => server-base/src/test/java/org/apache/kylin/rest/signature/SegmentSignatureTest.java (57%) create mode 100644 server-base/src/test/java/org/apache/kylin/rest/signature/SignatureCalculatorTest.java create mode 100755 storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SegmentQueryCache.java create mode 100755 storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/SegmentQueryResult.java create mode 100644 storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/SegmentQueryResultTest.java