Repository: kylin Updated Branches: refs/heads/2.0-rc cfc7e365c -> dd9ce9866
KYLIN-1297 add more trace log Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/dd9ce986 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/dd9ce986 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/dd9ce986 Branch: refs/heads/2.0-rc Commit: dd9ce9866c94fca0407c3ad4247d29daf172e697 Parents: cfc7e36 Author: honma <ho...@ebay.com> Authored: Fri Jan 8 17:13:08 2016 +0800 Committer: honma <ho...@ebay.com> Committed: Fri Jan 8 17:13:23 2016 +0800 ---------------------------------------------------------------------- .../apache/kylin/dict/DictionaryManager.java | 30 +++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/dd9ce986/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 f2a7a87..b3cd634 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 @@ -45,6 +45,8 @@ import org.slf4j.LoggerFactory; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; +import com.google.common.cache.RemovalListener; +import com.google.common.cache.RemovalNotification; import com.google.common.collect.Lists; public class DictionaryManager { @@ -82,18 +84,23 @@ public class DictionaryManager { private DictionaryManager(KylinConfig config) { this.config = config; - this.dictCache = CacheBuilder.newBuilder().maximumSize(KylinConfig.getInstanceFromEnv().getCachedDictMaxEntrySize())// - .expireAfterWrite(1, TimeUnit.DAYS).build(new CacheLoader<String, DictionaryInfo>() { + this.dictCache = CacheBuilder.newBuilder().removalListener(new RemovalListener<String, DictionaryInfo>() { @Override - public DictionaryInfo load(String key) throws Exception { - DictionaryInfo dictInfo = DictionaryManager.this.load(key, true); - if (dictInfo == null) { - return NONE_INDICATOR; - } else { - return dictInfo; - } + public void onRemoval(RemovalNotification<String, DictionaryInfo> notification) { + DictionaryManager.logger.info("Dict with resource path " + notification.getKey() + " is removed due to " + notification.getCause()); } - }); + }).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); + if (dictInfo == null) { + return NONE_INDICATOR; + } else { + return dictInfo; + } + } + }); } public Dictionary<?> getDictionary(String resourcePath) throws IOException { @@ -319,6 +326,7 @@ public class DictionaryManager { } public void removeDictionary(String resourcePath) throws IOException { + logger.info("Remvoing dict: " + resourcePath); ResourceStore store = MetadataManager.getInstance(config).getStore(); store.deleteResource(resourcePath); dictCache.invalidate(resourcePath); @@ -357,7 +365,7 @@ public class DictionaryManager { DictionaryInfo load(String resourcePath, boolean loadDictObj) throws IOException { ResourceStore store = MetadataManager.getInstance(config).getStore(); - logger.debug("Loading DictionaryInfo(loadDictObj:" + loadDictObj + ") from " + resourcePath); + logger.info("DictionaryManager(" + System.identityHashCode(this) + ") loading DictionaryInfo(loadDictObj:" + loadDictObj + ") at " + resourcePath); DictionaryInfo info = store.getResource(resourcePath, DictionaryInfo.class, loadDictObj ? DictionaryInfoSerializer.FULL_SERIALIZER : DictionaryInfoSerializer.INFO_SERIALIZER); // if (loadDictObj)