@InterfaceAudience.LimitedPrivate(value={"Coprocesssor","Phoenix"}) @InterfaceStability.Evolving public class BalancedQueueRpcExecutor extends RpcExecutor
RpcExecutor
that will balance requests evenly across all its queues, but still remains
efficient with a single queue via an inlinable queue balancing mechanism. Defaults to FIFO but
you can pass an alternate queue class to use.RpcExecutor.Handler, RpcExecutor.QueueBalancer
Modifier and Type | Field and Description |
---|---|
protected java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> |
queues |
currentQueueLimit, DEFAULT_CALL_QUEUE_SIZE_HARD_LIMIT
Constructor and Description |
---|
BalancedQueueRpcExecutor(java.lang.String name,
int handlerCount,
int numQueues,
java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass,
java.lang.Object... initargs) |
BalancedQueueRpcExecutor(java.lang.String name,
int handlerCount,
int numQueues,
Configuration conf,
Abortable abortable,
java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass,
java.lang.Object... initargs) |
BalancedQueueRpcExecutor(java.lang.String name,
int handlerCount,
int numQueues,
int maxQueueLength) |
BalancedQueueRpcExecutor(java.lang.String name,
int handlerCount,
int numQueues,
int maxQueueLength,
Configuration conf,
Abortable abortable) |
Modifier and Type | Method and Description |
---|---|
boolean |
dispatch(CallRunner callTask)
Add the request to the executor queue
|
int |
getQueueLength()
Returns the length of the pending queue
|
java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> |
getQueues()
Returns the list of request queues
|
protected void |
initializeQueues(int numQueues,
java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass,
java.lang.Object... initargs) |
getActiveHandlerCount, getBalancer, getHandler, resizeQueues, start, startHandlers, startHandlers, stop
protected final java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> queues
public BalancedQueueRpcExecutor(java.lang.String name, int handlerCount, int numQueues, int maxQueueLength)
public BalancedQueueRpcExecutor(java.lang.String name, int handlerCount, int numQueues, int maxQueueLength, Configuration conf, Abortable abortable)
public BalancedQueueRpcExecutor(java.lang.String name, int handlerCount, int numQueues, java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass, java.lang.Object... initargs)
public BalancedQueueRpcExecutor(java.lang.String name, int handlerCount, int numQueues, Configuration conf, Abortable abortable, java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass, java.lang.Object... initargs)
protected void initializeQueues(int numQueues, java.lang.Class<? extends java.util.concurrent.BlockingQueue> queueClass, java.lang.Object... initargs)
public boolean dispatch(CallRunner callTask) throws java.lang.InterruptedException
RpcExecutor
dispatch
in class RpcExecutor
java.lang.InterruptedException
public int getQueueLength()
RpcExecutor
getQueueLength
in class RpcExecutor
public java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> getQueues()
RpcExecutor
getQueues
in class RpcExecutor