[ 
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)

Reply via email to