This is an automated email from the ASF dual-hosted git repository. stoty pushed a commit to branch 4.16 in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/4.16 by this push: new 9962877 PHOENIX-6592 PhoenixStatsCacheLoader uses non-deamon threads 9962877 is described below commit 9962877367fcfbff42571ef7919cf7af70b33c49 Author: Istvan Toth <st...@apache.org> AuthorDate: Mon Nov 15 09:25:17 2021 +0100 PHOENIX-6592 PhoenixStatsCacheLoader uses non-deamon threads --- .../apache/phoenix/query/PhoenixStatsCacheLoader.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/phoenix-core/src/main/java/org/apache/phoenix/query/PhoenixStatsCacheLoader.java b/phoenix-core/src/main/java/org/apache/phoenix/query/PhoenixStatsCacheLoader.java index fd794cb..8061342 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/query/PhoenixStatsCacheLoader.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/query/PhoenixStatsCacheLoader.java @@ -21,15 +21,18 @@ import org.apache.phoenix.thirdparty.com.google.common.cache.CacheLoader; import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.Futures; import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture; import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFutureTask; +import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder; import org.apache.hadoop.conf.Configuration; import org.apache.phoenix.schema.stats.GuidePostsInfo; import org.apache.phoenix.schema.stats.GuidePostsKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; /** * {@link CacheLoader} asynchronous implementation for the Phoenix Table Stats cache. @@ -43,15 +46,20 @@ public class PhoenixStatsCacheLoader extends CacheLoader<GuidePostsKey, GuidePos public PhoenixStatsCacheLoader(PhoenixStatsLoader statsLoader, Configuration config) { this.statsLoader = statsLoader; - if (this.executor == null) { + if (executor == null) { synchronized (PhoenixStatsCacheLoader.class) { - if (this.executor == null) { + if (executor == null) { // The size of the thread pool used for refreshing cached table stats final int statsCacheThreadPoolSize = config.getInt( QueryServices.STATS_CACHE_THREAD_POOL_SIZE, QueryServicesOptions.DEFAULT_STATS_CACHE_THREAD_POOL_SIZE); - - this.executor = Executors.newFixedThreadPool(statsCacheThreadPoolSize); + final ThreadFactory threadFactory = + new ThreadFactoryBuilder() + .setDaemon(true) + .setNameFormat("PHOENIX-STATS-CACHE-LOADER-thread-%s") + .build(); + executor = + Executors.newFixedThreadPool(statsCacheThreadPoolSize, threadFactory); } } }