@InterfaceAudience.Private public abstract class RpcExecutor extends java.lang.Object
dispatch(CallRunner)
. Subclass and add particular
scheduling behavior.Modifier and Type | Class and Description |
---|---|
protected class |
RpcExecutor.Handler
Handler thread run the
CallRunner.run() in. |
static class |
RpcExecutor.QueueBalancer |
Modifier and Type | Field and Description |
---|---|
protected int |
currentQueueLimit |
protected static int |
DEFAULT_CALL_QUEUE_SIZE_HARD_LIMIT |
Constructor and Description |
---|
RpcExecutor(java.lang.String name,
int handlerCount) |
RpcExecutor(java.lang.String name,
int handlerCount,
Configuration conf,
Abortable abortable) |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
dispatch(CallRunner callTask)
Add the request to the executor queue
|
int |
getActiveHandlerCount() |
static RpcExecutor.QueueBalancer |
getBalancer(int queueSize) |
protected RpcExecutor.Handler |
getHandler(java.lang.String name,
double handlerFailureThreshhold,
java.util.concurrent.BlockingQueue<CallRunner> q)
Override if providing alternate Handler implementation.
|
abstract int |
getQueueLength()
Returns the length of the pending queue
|
protected abstract java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> |
getQueues()
Returns the list of request queues
|
void |
resizeQueues(Configuration conf)
Update current soft limit for executor's call queues
|
void |
start(int port) |
protected void |
startHandlers(int port) |
protected void |
startHandlers(java.lang.String nameSuffix,
int numHandlers,
java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> callQueues,
int qindex,
int qsize,
int port)
Start up our handlers.
|
void |
stop() |
protected static final int DEFAULT_CALL_QUEUE_SIZE_HARD_LIMIT
protected volatile int currentQueueLimit
public RpcExecutor(java.lang.String name, int handlerCount)
public RpcExecutor(java.lang.String name, int handlerCount, Configuration conf, Abortable abortable)
public void start(int port)
public void stop()
public int getActiveHandlerCount()
public abstract int getQueueLength()
public abstract boolean dispatch(CallRunner callTask) throws java.lang.InterruptedException
java.lang.InterruptedException
protected abstract java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> getQueues()
protected void startHandlers(int port)
protected RpcExecutor.Handler getHandler(java.lang.String name, double handlerFailureThreshhold, java.util.concurrent.BlockingQueue<CallRunner> q)
protected void startHandlers(java.lang.String nameSuffix, int numHandlers, java.util.List<java.util.concurrent.BlockingQueue<CallRunner>> callQueues, int qindex, int qsize, int port)
public static RpcExecutor.QueueBalancer getBalancer(int queueSize)
public void resizeQueues(Configuration conf)
conf
- updated configuration