[ https://issues.apache.org/jira/browse/HBASE-27676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xiaolin Ha updated HBASE-27676: ------------------------------- Priority: Major (was: Minor) > Scan handlers in the RPC executor should match at least one scan queues > ----------------------------------------------------------------------- > > Key: HBASE-27676 > URL: https://issues.apache.org/jira/browse/HBASE-27676 > Project: HBase > Issue Type: Improvement > Affects Versions: 2.5.3 > Reporter: Xiaolin Ha > Assignee: Xiaolin Ha > Priority: Major > > This issue is try to avoid NO scan queues for some scan handlers. > For example, if we set hbase.regionserver.handler.count=150, > hbase.ipc.server.callqueue.scan.ratio=0.1, > hbase.ipc.server.callqueue.read.ratio=0.5, > hbase.ipc.server.callqueue.handler.factor=0.1, then there will be > 150{_}0.5{_}0.1=7 scan handlers, but there are 150{_}0.1{_}0.5*0.1=0 scan RPC > queues. > When there are no scan rpc queues, all the scan and get requests will be > dispatched to the read rpc queues, while we we thought they had been dealt > with separately, since the scan handler count is not 0. When there are not > enough handlers for large scan requests under this circumstance, the small > get requests will be blocked in the rpc queues. > {code:java} > int scanQueues = Math.max(0, (int) Math.floor(readQueues * callqScanShare)); > int scanHandlers = Math.max(0, (int) Math.floor(readHandlers * > callqScanShare)); > if ((readQueues - scanQueues) > 0) { > readQueues -= scanQueues; > readHandlers -= scanHandlers; > } else { > scanQueues = 0; > scanHandlers = 0; > } {code} > When readQueues * callqScanShare < 1 but readHandlers * callqScanShare > 1, > there will be some iddle scan handlers with NO scan queues. -- This message was sent by Atlassian Jira (v8.20.10#820010)