From 7cef84f725c1ae894884fe78b8b5b43d8b4d5195 Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Thu, 19 Sep 2013 15:14:20 -0700 Subject: [PATCH] HBASE-9333 hbase.hconnection.threads.max should not be configurable else you get RejectedExecutionException --- .../org/apache/hadoop/hbase/client/HConnectionManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java index 5cd3742..f935c42 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java @@ -36,7 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ExecutorService; -import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -754,9 +754,9 @@ public class HConnectionManager { synchronized (this) { if (batchPool == null) { int maxThreads = conf.getInt("hbase.hconnection.threads.max", - Integer.MAX_VALUE); + 0); if (maxThreads == 0) { - maxThreads = Runtime.getRuntime().availableProcessors(); + maxThreads = Runtime.getRuntime().availableProcessors() * 4; } long keepAliveTime = conf.getLong( "hbase.hconnection.threads.keepalivetime", 60); @@ -765,7 +765,7 @@ public class HConnectionManager { maxThreads, keepAliveTime, TimeUnit.SECONDS, - new SynchronousQueue(), + new LinkedBlockingQueue(128 * 200), Threads.newDaemonThreadFactory("hbase-connection-shared-executor")); ((ThreadPoolExecutor) this.batchPool) .allowCoreThreadTimeOut(true); -- 1.7.10.2 (Apple Git-33)