Index: security/src/main/java/org/apache/hadoop/hbase/ipc/SecureServer.java =================================================================== --- security/src/main/java/org/apache/hadoop/hbase/ipc/SecureServer.java (revision 1439358) +++ security/src/main/java/org/apache/hadoop/hbase/ipc/SecureServer.java (working copy) @@ -21,6 +21,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.io.HbaseObjectWritable; import org.apache.hadoop.hbase.io.WritableWithSize; import org.apache.hadoop.hbase.security.HBaseSaslRpcServer; @@ -620,8 +621,13 @@ if (priorityCallQueue != null && getQosLevel(param) > highPriorityLevel) { priorityCallQueue.put(call); + updateCallQueueLenMetrics(priorityCallQueue); + } else if (replicationQueue != null && getQosLevel(param) == HConstants.REPLICATION_QOS) { + replicationQueue.put(call); + updateCallQueueLenMetrics(replicationQueue); } else { callQueue.put(call); // queue the call; maybe blocked here + updateCallQueueLenMetrics(callQueue); } } Index: src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java (revision 1439358) +++ src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java (working copy) @@ -235,7 +235,7 @@ private Handler[] handlers = null; private Handler[] priorityHandlers = null; /** replication related queue; */ - private BlockingQueue replicationQueue; + protected BlockingQueue replicationQueue; private int numOfReplicationHandlers = 0; private Handler[] replicationHandlers = null; protected HBaseRPCErrorHandler errorHandler = null; @@ -1355,7 +1355,7 @@ * Reports length of the call queue to HBaseRpcMetrics. * @param queue Which queue to report */ - private void updateCallQueueLenMetrics(BlockingQueue queue) { + protected void updateCallQueueLenMetrics(BlockingQueue queue) { if (queue == callQueue) { rpcMetrics.callQueueLen.set(callQueue.size()); } else if (queue == priorityCallQueue) {