Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-1707

Add hook to handle RPCs prior to queueing or rejection

    XMLWordPrintableJSON

    Details

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              tlipcon Todd Lipcon
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: