Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-15654 Optimize client's MetaCache handling
  3. HBASE-15658

RegionServerCallable / RpcRetryingCaller clear meta cache on retries

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 1.2.1
    • 1.3.0, 2.0.0
    • Client
    • None

    Description

      When RpcRetryingCaller.callWithRetries() attempts a retry, it calls RetryingCallable.prepare(tries != 0). For RegionServerCallable (and probably others), this will wind up calling RegionLocator.getRegionLocation(reload=true), which will drop the meta cache for the given region and always go back to meta.

      This is kind of silly, since in the case of exceptions, we already call RetryingCallable.throwable(), which goes to great pains to only refresh the meta cache when necessary. Since we are already doing this on failure, I don't really understand why we are doing duplicate work to refresh the meta cache on prepare() at all.

      Attachments

        1. hbase-15658.001.patch
          20 kB
          Gary Helmling
        2. hbase-15658.002.patch
          22 kB
          Gary Helmling
        3. hbase-15658.branch-1.3.001.patch
          22 kB
          Gary Helmling

        Activity

          People

            ghelmling Gary Helmling
            ghelmling Gary Helmling
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: