You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Reid Chan (JIRA)" <ji...@apache.org> on 2019/06/10 11:25:00 UTC
[jira] [Updated] (HBASE-22559) [RPC] set guard against
CALL_QUEUE_HANDLER_FACTOR_CONF_KEY
[ https://issues.apache.org/jira/browse/HBASE-22559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Reid Chan updated HBASE-22559:
------------------------------
Description:
CALL_QUEUE_HANDLER_FACTOR_CONF_KEY is {{hbase.ipc.server.callqueue.handler.factor}}, a float number, which is supposed between [0.0, 1.0].
If it is greater than 1, for example, 2.0, the call queues and handlers will be expanded twice:
{code}
float callQueuesHandlersFactor = this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0);
this.numCallQueues = computeNumCallQueues(handlerCount, callQueuesHandlersFactor);
this.handlerCount = Math.max(handlerCount, this.numCallQueues);
protected int computeNumCallQueues(final int handlerCount, final float callQueuesHandlersFactor) {
return Math.max(1, (int) Math.round(handlerCount * callQueuesHandlersFactor));
}
{code}
We already have {{hbase.regionserver.handler.count}} set, what mentioned above looks tricky.
The purpose of this conf is to control how many handlers can share one call queue, expanding the number of handlers (a kind of side-effects) is not included, from my understanding.
was:
CALL_QUEUE_HANDLER_FACTOR_CONF_KEY is {{hbase.ipc.server.callqueue.handler.factor}}, a float number, which is supposed between [0.0, 1.0].
If it is greater than 1, for example, 2.0, the call queues and handlers will be expanded twice:
{code}
float callQueuesHandlersFactor = this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0);
this.numCallQueues = computeNumCallQueues(handlerCount, callQueuesHandlersFactor);
this.handlerCount = Math.max(handlerCount, this.numCallQueues);
protected int computeNumCallQueues(final int handlerCount, final float callQueuesHandlersFactor) {
return Math.max(1, (int) Math.round(handlerCount * callQueuesHandlersFactor));
}
{code}
We already have {{hbase.regionserver.handler.count}} set, what mentioned above looks tricky.
> [RPC] set guard against CALL_QUEUE_HANDLER_FACTOR_CONF_KEY
> ----------------------------------------------------------
>
> Key: HBASE-22559
> URL: https://issues.apache.org/jira/browse/HBASE-22559
> Project: HBase
> Issue Type: Bug
> Components: rpc
> Reporter: Reid Chan
> Assignee: Reid Chan
> Priority: Minor
>
> CALL_QUEUE_HANDLER_FACTOR_CONF_KEY is {{hbase.ipc.server.callqueue.handler.factor}}, a float number, which is supposed between [0.0, 1.0].
> If it is greater than 1, for example, 2.0, the call queues and handlers will be expanded twice:
> {code}
> float callQueuesHandlersFactor = this.conf.getFloat(CALL_QUEUE_HANDLER_FACTOR_CONF_KEY, 0);
> this.numCallQueues = computeNumCallQueues(handlerCount, callQueuesHandlersFactor);
> this.handlerCount = Math.max(handlerCount, this.numCallQueues);
> protected int computeNumCallQueues(final int handlerCount, final float callQueuesHandlersFactor) {
> return Math.max(1, (int) Math.round(handlerCount * callQueuesHandlersFactor));
> }
> {code}
> We already have {{hbase.regionserver.handler.count}} set, what mentioned above looks tricky.
> The purpose of this conf is to control how many handlers can share one call queue, expanding the number of handlers (a kind of side-effects) is not included, from my understanding.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)