public class DelegatingRpcScheduler extends RpcScheduler
RpcScheduler.Context
Modifier and Type | Field and Description |
---|---|
protected RpcScheduler |
delegate |
IPC_SERVER_MAX_CALLQUEUE_LENGTH, IPC_SERVER_PRIORITY_MAX_CALLQUEUE_LENGTH
Constructor and Description |
---|
DelegatingRpcScheduler(RpcScheduler delegate) |
Modifier and Type | Method and Description |
---|---|
boolean |
dispatch(CallRunner task)
Dispatches an RPC request asynchronously.
|
int |
getActiveRpcHandlerCount()
Retrieves the number of active handler.
|
int |
getGeneralQueueLength()
Retrieves length of the general queue for metrics.
|
long |
getNumGeneralCallsDropped()
If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
from general queue because RPC executor is under high load; returns 0 otherwise.
|
long |
getNumLifoModeSwitches()
If CoDel-based RPC executors are used, retrieves the number of Calls that were
picked from the tail of the queue (indicating adaptive LIFO mode, when
in the period of overloade we serve last requests first); returns 0 otherwise.
|
int |
getPriorityQueueLength()
Retrieves length of the priority queue for metrics.
|
int |
getReplicationQueueLength()
Retrieves length of the replication queue for metrics.
|
void |
init(RpcScheduler.Context context)
Does some quick initialization.
|
void |
start()
Prepares for request serving.
|
void |
stop()
Stops serving new requests.
|
protected RpcScheduler delegate
public DelegatingRpcScheduler(RpcScheduler delegate)
public void stop()
RpcScheduler
stop
in class RpcScheduler
public void start()
RpcScheduler
start
in class RpcScheduler
public void init(RpcScheduler.Context context)
RpcScheduler
RpcScheduler.start()
. This method is called before start
.init
in class RpcScheduler
context
- provides methods to retrieve runtime information frompublic int getReplicationQueueLength()
RpcScheduler
getReplicationQueueLength
in class RpcScheduler
public int getPriorityQueueLength()
RpcScheduler
getPriorityQueueLength
in class RpcScheduler
public int getGeneralQueueLength()
RpcScheduler
getGeneralQueueLength
in class RpcScheduler
public int getActiveRpcHandlerCount()
RpcScheduler
getActiveRpcHandlerCount
in class RpcScheduler
public boolean dispatch(CallRunner task) throws java.io.IOException, java.lang.InterruptedException
RpcScheduler
dispatch
in class RpcScheduler
task
- the request to be dispatchedjava.io.IOException
java.lang.InterruptedException
public long getNumGeneralCallsDropped()
RpcScheduler
getNumGeneralCallsDropped
in class RpcScheduler
public long getNumLifoModeSwitches()
RpcScheduler
getNumLifoModeSwitches
in class RpcScheduler