[ https://issues.apache.org/jira/browse/HBASE-20499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16456140#comment-16456140 ]
Ted Yu commented on HBASE-20499: -------------------------------- I think we should. > Replication/Priority executors can use specific max queue length as default > value instead of general maxQueueLength > ------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-20499 > URL: https://issues.apache.org/jira/browse/HBASE-20499 > Project: HBase > Issue Type: Improvement > Reporter: Nihal Jain > Assignee: Nihal Jain > Priority: Minor > Fix For: 3.0.0 > > Attachments: HBASE-20499.master.001.patch > > > {{In *SimpleRpcScheduler*'s constructor, instead of the using > *maxQueueLength* as default value for > *replicationExecutor*/*replicationExecutor*'s max queue length:}} > {code:java} > int maxQueueLength = conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH, > handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER); > int maxPriorityQueueLength = > conf.getInt(RpcScheduler.IPC_SERVER_PRIORITY_MAX_CALLQUEUE_LENGTH, > maxQueueLength); > . > . > this.replicationExecutor = replicationHandlerCount > 0 ? new > FastPathBalancedQueueRpcExecutor( > "replication.FPBQ", replicationHandlerCount, > RpcExecutor.CALL_QUEUE_TYPE_FIFO_CONF_VALUE, > maxQueueLength, priority, conf, abortable) : null;{code} > [See > SimpleRpcScheduler|https://github.com/apache/hbase/blob/96ed407c691ac0686fb14cdcd8680d1849e24ae8/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java#L97] > We can do the following: > {code:java} > int maxQueueLength = conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH, > handlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER); > int maxPriorityQueueLength = > conf.getInt(RpcScheduler.IPC_SERVER_PRIORITY_MAX_CALLQUEUE_LENGTH, > priorityHandlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER); > . > . > int maxQueueLengthForReplication = > conf.getInt(RpcScheduler.IPC_SERVER_MAX_CALLQUEUE_LENGTH, > replicationHandlerCount * RpcServer.DEFAULT_MAX_CALLQUEUE_LENGTH_PER_HANDLER); > . > . > this.replicationExecutor = replicationHandlerCount > 0 ? new > FastPathBalancedQueueRpcExecutor( > "replication.FPBQ", replicationHandlerCount, > RpcExecutor.CALL_QUEUE_TYPE_FIFO_CONF_VALUE, > maxQueueLengthForReplication , priority, conf, abortable) : null; > {code} > > Also, we can make the maximum replication call queue length configurable, > similar to general and priority call queue length. -- This message was sent by Atlassian JIRA (v7.6.3#76005)