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

ConnectionManager#locateRegionInMeta waits for user region lock indefinitely.

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.3.2, 2.3.3, 1.7.0, 2.4.0
    • Fix Version/s: 1.7.0, 2.4.0, 2.3.2
    • Component/s: Client
    • Labels:
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      <!-- markdown -->

      Without this fix there are situations in which locateRegionInMeta() on a client is not bound by a timeout. This happens because of a global lock whose acquisition was not under any lock scope. This affects client facing API calls that rely on this method to locate a table region in meta. This fix brings the lock acquisition under the scope of "hbase.client.meta.operation.timeout" and that guarantees a bounded wait time.
      Show
      <!-- markdown --> Without this fix there are situations in which locateRegionInMeta() on a client is not bound by a timeout. This happens because of a global lock whose acquisition was not under any lock scope. This affects client facing API calls that rely on this method to locate a table region in meta. This fix brings the lock acquisition under the scope of "hbase.client.meta.operation.timeout" and that guarantees a bounded wait time.

      Description

      One of our customers experienced high latencies (in order of 3-4 minutes) for point lookup query (We use phoenix on top of hbase).

      We have different threads sharing the same hconnection.  Looks like multiple threads are stuck at the same place. https://github.com/apache/hbase/blob/branch-1.3/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java#L1282 

      We have set the following configuration parameters to ensure query fails with a reasonable SLAs:

      1. hbase.client.meta.operation.timeout

      2. hbase.client.operation.timeout

      3. hbase.client.scanner.timeout.period

      But since  userRegionLock can wait for lock indefinitely the call will not fail within SLA.

        Attachments

          Activity

            People

            • Assignee:
              shahrs87 Rushabh Shah
              Reporter:
              shahrs87 Rushabh Shah
            • Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: