[ https://issues.apache.org/jira/browse/HBASE-20499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16459695#comment-16459695 ]
Hudson commented on HBASE-20499: -------------------------------- Results for branch master [build #317 on builds.a.o|https://builds.apache.org/job/HBase%20Nightly/job/master/317/]: (x) *{color:red}-1 overall{color}* ---- details (if available): (/) {color:green}+1 general checks{color} -- For more information [see general report|https://builds.apache.org/job/HBase%20Nightly/job/master/317//General_Nightly_Build_Report/] (/) {color:green}+1 jdk8 hadoop2 checks{color} -- For more information [see jdk8 (hadoop2) report|https://builds.apache.org/job/HBase%20Nightly/job/master/317//JDK8_Nightly_Build_Report_(Hadoop2)/] (x) {color:red}-1 jdk8 hadoop3 checks{color} -- For more information [see jdk8 (hadoop3) report|https://builds.apache.org/job/HBase%20Nightly/job/master/317//JDK8_Nightly_Build_Report_(Hadoop3)/] (/) {color:green}+1 source release artifact{color} -- See build output for details. > 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: 20499.master.002.patch, HBASE-20499.master.001.patch, > HBASE-20499.master.002.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)