@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, stopprotected 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
RpcExecutordispatch in class RpcExecutorjava.lang.InterruptedExceptionpublic int getQueueLength()
RpcExecutorgetQueueLength in class RpcExecutorpublic java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> getQueues()
RpcExecutorgetQueues in class RpcExecutor