[
https://issues.apache.org/jira/browse/HBASE-27766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xiaolin Ha updated HBASE-27766:
-------------------------------
Description:
Currently, the RPC queues are distinguished by request type, under most
circumstances of RWQueueRpcExecutor, there are write queues and read queues,
while reads queues are always divided by get requests and scan requests. The
reason why we isolate the scan requests and get requests is that we do not want
large scans block small gets.
Since the handler resources for a regionserver is limited and we can't
dynamicly change the handler ratio by the ratio of requests. We should both
keep large scan and the small gets be isolated, and let the idle handlers for
the samller ratio scans to handle some gets when the gets handlers are busy.
This steal queue idea can also used in other circumstances, e.g. idle read
handler steal jobs from write queus.
was:
Currently, the RPC queues are distinguished by request type, under most
circumstances of RWQueueRpcExecutor, there are write queues and read queues,
while reads queues are always divided by get requests and scan requests. The
reason why we isolate the scan requests and get requests is that we do not want
large scans block small gets.
Since the handler resources for a regionserver is limited and we can't
dynamicly change the handler ratio by the ratio of requests. We should both
keep large scan the small gets be isolated, and let the idle handlers for the
samller ratio scans to handle some gets when the gets handlers are busy.
This steal queue idea can also used in other circumstances, e.g. idle read
handler steal jobs from write queus.
> Support steal job queue mode for read RPC queues of RWQueueRpcExecutor
> ----------------------------------------------------------------------
>
> Key: HBASE-27766
> URL: https://issues.apache.org/jira/browse/HBASE-27766
> Project: HBase
> Issue Type: Improvement
> Components: rpc
> Affects Versions: 3.0.0-alpha-3, 2.5.3
> Reporter: Xiaolin Ha
> Assignee: Xiaolin Ha
> Priority: Major
>
> Currently, the RPC queues are distinguished by request type, under most
> circumstances of RWQueueRpcExecutor, there are write queues and read queues,
> while reads queues are always divided by get requests and scan requests. The
> reason why we isolate the scan requests and get requests is that we do not
> want large scans block small gets.
> Since the handler resources for a regionserver is limited and we can't
> dynamicly change the handler ratio by the ratio of requests. We should both
> keep large scan and the small gets be isolated, and let the idle handlers for
> the samller ratio scans to handle some gets when the gets handlers are busy.
> This steal queue idea can also used in other circumstances, e.g. idle read
> handler steal jobs from write queus.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)