Todd Lipcon created KUDU-1707:

             Summary: Add hook to handle RPCs prior to queueing or rejection
                 Key: KUDU-1707
             Project: Kudu
          Issue Type: Bug
          Components: rpc
    Affects Versions: 1.0.1
            Reporter: Todd Lipcon
            Assignee: Todd Lipcon

When the Kudu RPC handlers are all busy, RPCs are rejected and it's up to the 
client to back-off and retry. This is usually a good idea, but is somewhat 
silly when the RPCs themselves are extremely lightweight. It can even be 
problematic when the RPC is responsible for updating liveness or detecting 
failures, as in cases like:
- empty consensus updates which just need to update the Raft failure detector
- the 'Ping' request that ksck uses to determine which tservers are online
- the Scanner Keepalive call which just needs to keep a scanner open

For these cases, it would be preferable to allow the RPC to be handled even if 
it would otherwise be rejected. For the consensus heartbeat example in 
particular, this handling would substantially reduce election storms when under 
high load. 

This message was sent by Atlassian JIRA

Reply via email to