Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-5924

In the client code, don't wait for all the requests to be executed before resubmitting a request in error.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.95.2
    • 0.95.0
    • Client
    • None
    • Reviewed
    • 0.96notable

    Description

      The client (in the function HConnectionManager#processBatchCallback) works in two steps:

      • make the requests
      • collect the failures and successes and prepare for retry

      It means that when there is an immediate error (region moved, split, dead server, ...) we still wait for all the initial requests to be executed before submitting again the failed request. If we have a scenario with all the requests taking 5 seconds we have a final execution time of: 5 (initial requests) + 1 (wait time) + 5 (final request) = 11s.

      We could improve this by analyzing immediately the results. This would lead us, for the scenario mentioned above, to 6 seconds.

      So we could have a performance improvement of nearly 50% in many cases, and much more than 50% if the request execution time is different.

      Attachments

        1. 5924.v19.patch
          50 kB
          Nicolas Liochon
        2. 5924.v14.patch
          49 kB
          Nicolas Liochon
        3. 5924.v11.patch
          43 kB
          Nicolas Liochon
        4. 5924.v9.patch
          32 kB
          Nicolas Liochon
        5. 5924.v5.patch
          29 kB
          Nicolas Liochon

        Issue Links

          Activity

            People

              nkeywal Nicolas Liochon
              nkeywal Nicolas Liochon
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: