[
https://issues.apache.org/jira/browse/HBASE-15765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15285496#comment-15285496
]
Enis Soztutar commented on HBASE-15765:
---------------------------------------
[~chenheng] with this patch, the handlers still do not steal from the queues in
the same tier, but a different "shard" (the config controlled by
{{hbase.ipc.server.callqueue.handler.factor}} ). The reason we have these
shards is that, the single blocking queue becomes the bottleneck for 10+
readers a producers and 100+ handlers as consumers. I believe previous perf
tests by others proved that having sharding here helps a lot.
Plus, we can steal 1 RPC every ~3seconds if I read the patch right. This will
not have any affect on latency tail smoothing other than potentially working
around deadlock-type cases a la HBASE-15613.
I am not sure whether we can find a good data structure to give us a highly
concurrent multi-priority queue, where every handler type can only take from
its queue, or higher priority ones.
> RPC handlers should steal from other queues in the same or higher priority
> --------------------------------------------------------------------------
>
> Key: HBASE-15765
> URL: https://issues.apache.org/jira/browse/HBASE-15765
> Project: HBase
> Issue Type: Improvement
> Reporter: Enis Soztutar
> Attachments: HBASE-15765.patch, HBASE-15765_v1.patch
>
>
> With the simple rpc scheduler model by default, a request first falls in one
> type of queue (priority, general, replication) and it will get "sharded" in a
> queue within that priority level (for example there are 2 queues for the high
> priority level). The handlers can only take from their specific queues, and
> nothing else.
> Even if a request is waiting in a high priority queue, the handlers within
> the same priority level or a lower priority level will not see these requests
> (which is the root cause for HBASE-15613). We should be able to steal from
> other queues, without losing the prioritization and sharding benefits.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)