Repository: hbase Updated Branches: refs/heads/branch-1 9fda0dd09 -> e395bf91d refs/heads/branch-1.2 fdb921c89 -> 5526c9470 refs/heads/master 4983c742e -> 641513757
HBASE-16815 Low scan ratio in RPC queue tuning triggers divide by zero exception Signed-off-by: Matteo Bertozzi <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/64151375 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/64151375 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/64151375 Branch: refs/heads/master Commit: 641513757496842c7077ab5c46618a892768d14c Parents: 4983c74 Author: Guanghao Zhang <[email protected]> Authored: Fri Oct 14 18:29:25 2016 +0800 Committer: Matteo Bertozzi <[email protected]> Committed: Fri Oct 21 16:59:55 2016 -0700 ---------------------------------------------------------------------- .../apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/64151375/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java index 333569a..78c1a52 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java @@ -146,17 +146,16 @@ public class RWQueueRpcExecutor extends RpcExecutor { this.scanBalancer = numScanQueues > 0 ? getBalancer(numScanQueues) : null; queues = new ArrayList<BlockingQueue<CallRunner>>(numWriteQueues + numReadQueues + numScanQueues); - LOG.debug(name + " writeQueues=" + numWriteQueues + " writeHandlers=" + writeHandlersCount + - " readQueues=" + numReadQueues + " readHandlers=" + readHandlersCount + - ((numScanQueues == 0) ? "" : " scanQueues=" + numScanQueues + - " scanHandlers=" + scanHandlersCount)); + LOG.info(name + " writeQueues=" + numWriteQueues + " writeHandlers=" + writeHandlersCount + + " readQueues=" + numReadQueues + " readHandlers=" + readHandlersCount + " scanQueues=" + + numScanQueues + " scanHandlers=" + scanHandlersCount); + if (writeQueueInitArgs.length > 0) { currentQueueLimit = (int) writeQueueInitArgs[0]; writeQueueInitArgs[0] = Math.max((int) writeQueueInitArgs[0], DEFAULT_CALL_QUEUE_SIZE_HARD_LIMIT); } for (int i = 0; i < numWriteQueues; ++i) { - queues.add((BlockingQueue<CallRunner>) ReflectionUtils.newInstance(writeQueueClass, writeQueueInitArgs)); } @@ -176,8 +175,10 @@ public class RWQueueRpcExecutor extends RpcExecutor { protected void startHandlers(final int port) { startHandlers(".write", writeHandlersCount, queues, 0, numWriteQueues, port); startHandlers(".read", readHandlersCount, queues, numWriteQueues, numReadQueues, port); - startHandlers(".scan", scanHandlersCount, queues, - numWriteQueues + numReadQueues, numScanQueues, port); + if (numScanQueues > 0) { + startHandlers(".scan", scanHandlersCount, queues, numWriteQueues + numReadQueues, + numScanQueues, port); + } } @Override
