KYLIN-1297 correct LoadingCache settings
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ce734019 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ce734019 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ce734019 Branch: refs/heads/KYLIN-1122 Commit: ce734019e985d04a47178f12aeb8e8622fdd3eee Parents: cb0c36a Author: honma <ho...@ebay.com> Authored: Fri Jan 8 15:48:58 2016 +0800 Committer: Xiaoyu Wang <wangxia...@apache.org> Committed: Mon Jan 18 13:38:30 2016 +0800 ---------------------------------------------------------------------- .../src/main/java/org/apache/kylin/common/KylinConfigBase.java | 5 +++++ .../src/main/java/org/apache/kylin/dict/DictionaryManager.java | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/ce734019/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java ---------------------------------------------------------------------- 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 96c76f0..f6775e8 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 @@ -408,6 +408,11 @@ public class KylinConfigBase implements Serializable { return Integer.parseInt(getOptional("kylin.query.badquery.stacktrace.depth", "10")); } + public int getCachedDictMaxEntrySize() { + return Integer.parseInt(getOptional("kylin.dict.cache.max.entry", "3000")); + } + + public boolean getQueryRunLocalCoprocessor() { return Boolean.parseBoolean(getOptional("kylin.query.run.local.coprocessor", "false")); } http://git-wip-us.apache.org/repos/asf/kylin/blob/ce734019/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java ---------------------------------------------------------------------- diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java index cb58721..cca8341 100644 --- a/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java +++ b/core-dictionary/src/main/java/org/apache/kylin/dict/DictionaryManager.java @@ -83,7 +83,8 @@ public class DictionaryManager { private DictionaryManager(KylinConfig config) { this.config = config; - this.dictCache = CacheBuilder.newBuilder().weakValues().expireAfterWrite(10, TimeUnit.MINUTES).build(new CacheLoader<String, DictionaryInfo>() { + this.dictCache = CacheBuilder.newBuilder().maximumSize(KylinConfig.getInstanceFromEnv().getCachedDictMaxEntrySize())// + .expireAfterWrite(1, TimeUnit.DAYS).build(new CacheLoader<String, DictionaryInfo>() { @Override public DictionaryInfo load(String key) throws Exception { DictionaryInfo dictInfo = DictionaryManager.this.load(key, true); @@ -357,7 +358,7 @@ public class DictionaryManager { DictionaryInfo load(String resourcePath, boolean loadDictObj) throws IOException { ResourceStore store = MetadataManager.getInstance(config).getStore(); - //logger.debug("Going to load DictionaryInfo from " + resourcePath); + logger.debug("Loading DictionaryInfo(loadDictObj:" + loadDictObj + ") from " + resourcePath); DictionaryInfo info = store.getResource(resourcePath, DictionaryInfo.class, loadDictObj ? DictionaryInfoSerializer.FULL_SERIALIZER : DictionaryInfoSerializer.INFO_SERIALIZER); // if (loadDictObj)