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)