Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-8143

Add features to DoRpcWithRetry()

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • Impala 3.3.0
    • None
    • None
    • ghx-label-3

    Description

      DoRpcWithRetry() is a templated utility function that is currently in control-service.h that is used to retry synchronous Krpc calls. It makes a call to a Krpc function that is is passed as a lambda function. It sets the krpc timeout to the ‘krpc_timeout‘ parameter and calls the Krpc function a number of times controlled by the ‘times_to_try’ parameter.

      Possible improvements:

      • Move code to rpc-mgr.inline.h
      • Add a configurable sleep if RpcMgr::IsServerTooBusy() says the remote server’s queue is full.
      • Do we want exponential backoff? How can we test this?
      • how long should the sleep be for existing clients?
      • Make QueryState::ReportExecStatus() use DoRpcWithRetry()
      • Consider if asynchronous code like that in KrpcDataStreamSender::Channel  can also use DoRpcWithRetry()
      • Replace FAULT_INJECTION_RPC_DELAY with DebugAction 

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            asherman Andrew Sherman
            asherman Andrew Sherman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment