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/5526c947 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/5526c947 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/5526c947 Branch: refs/heads/branch-1.2 Commit: 5526c947082ce37e93f0a6c330e6828f2fadaede Parents: fdb921c Author: Guanghao Zhang <[email protected]> Authored: Mon Oct 17 09:25:51 2016 +0800 Committer: Matteo Bertozzi <[email protected]> Committed: Fri Oct 21 17:04:08 2016 -0700 ---------------------------------------------------------------------- .../apache/hadoop/hbase/ipc/RWQueueRpcExecutor.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/5526c947/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 de4b4de..60254c6 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 @@ -135,10 +135,9 @@ public class RWQueueRpcExecutor extends RpcExecutor { this.scanBalancer = getBalancer(numScanQueues); queues = new ArrayList<BlockingQueue<CallRunner>>(writeHandlersCount + readHandlersCount); - 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); for (int i = 0; i < numWriteQueues; ++i) { queues.add((BlockingQueue<CallRunner>) @@ -155,8 +154,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
