KYLIN-2619 Use newCachedThreadPool instead of newFixedThreadPool in Broadcaster
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/1c3ed36f Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/1c3ed36f Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/1c3ed36f Branch: refs/heads/KYLIN-2624 Commit: 1c3ed36f7dcf2152b17966bb69dd3211ce4e8aba Parents: 1c80c29 Author: gaodayue <gaoda...@meituan.com> Authored: Sat May 6 05:21:22 2017 +0800 Committer: kangkaisen <kangkai...@live.com> Committed: Mon May 15 16:02:01 2017 +0800 ---------------------------------------------------------------------- .../java/org/apache/kylin/common/restclient/RestClient.java | 4 ++++ .../java/org/apache/kylin/metadata/cachesync/Broadcaster.java | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/1c3ed36f/core-common/src/main/java/org/apache/kylin/common/restclient/RestClient.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/restclient/RestClient.java b/core-common/src/main/java/org/apache/kylin/common/restclient/RestClient.java index 33a4e7a..470386b 100644 --- a/core-common/src/main/java/org/apache/kylin/common/restclient/RestClient.java +++ b/core-common/src/main/java/org/apache/kylin/common/restclient/RestClient.java @@ -287,4 +287,8 @@ public class RestClient { return result.toString(); } + @Override + public String toString() { + return String.format("RestClient(%s:%d)", host, port); + } } http://git-wip-us.apache.org/repos/asf/kylin/blob/1c3ed36f/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java ---------------------------------------------------------------------- diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java b/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java index 1394f7b..e787dfd 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/cachesync/Broadcaster.java @@ -35,6 +35,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.kylin.common.KylinConfig; import org.apache.kylin.common.restclient.RestClient; import org.apache.kylin.common.util.DaemonThreadFactory; +import org.apache.kylin.common.util.SetThreadName; import org.apache.kylin.metadata.project.ProjectManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -116,7 +117,7 @@ public class Broadcaster { for (String node : config.getRestServers()) { restClients.add(new RestClient(node)); } - final ExecutorService wipingCachePool = Executors.newFixedThreadPool(restClients.size(), new DaemonThreadFactory()); + final ExecutorService wipingCachePool = Executors.newCachedThreadPool(new DaemonThreadFactory()); while (true) { try { final BroadcastEvent broadcastEvent = broadcastEvents.takeFirst(); @@ -125,8 +126,10 @@ public class Broadcaster { wipingCachePool.execute(new Runnable() { @Override public void run() { - try { + try (SetThreadName ignored = new SetThreadName("CacheWiper %s %s", restClient, broadcastEvent)) { + logger.info("{} wipe cache {}", restClient, broadcastEvent); restClient.wipeCache(broadcastEvent.getEntity(), broadcastEvent.getEvent(), broadcastEvent.getCacheKey()); + logger.info("{} wipe cache {} success", restClient, broadcastEvent); } catch (IOException e) { logger.warn("Thread failed during wipe cache at " + broadcastEvent, e); }