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

Meta replica does not give any primaryOperationTimeout to primary meta region

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.4.0, 2.0.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      When a client is configured to use meta replica, it sends scan request to all meta replicas almost at the same time. Since meta replica contains stale data, if result from one of replica comes back first, the client may get wrong region locations. To fix this, "hbase.client.meta.replica.scan.timeout" is introduced, a client will always send to primary meta region first, wait the configured timeout for reply. If no result is received, it will send request to replica meta regions. The unit for "hbase.client.meta.replica.scan.timeout" is microsecond, the default value is 1000000 (1 second).
      Show
      When a client is configured to use meta replica, it sends scan request to all meta replicas almost at the same time. Since meta replica contains stale data, if result from one of replica comes back first, the client may get wrong region locations. To fix this, "hbase.client.meta.replica.scan.timeout" is introduced, a client will always send to primary meta region first, wait the configured timeout for reply. If no result is received, it will send request to replica meta regions. The unit for "hbase.client.meta.replica.scan.timeout" is microsecond, the default value is 1000000 (1 second).

      Description

      I was working on my unittest and it failed with TableNotFoundException. I debugged a bit and found out that for meta scan, it does not give any primaryOperationTimeout to primary meta region. This will be an issue as the meta replica will contain stale data and it is possible that the meta replica will return back first than primary.

      https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java#L823

        Attachments

        1. 18035.branch-1.v001.patch
          11 kB
          Ted Yu
        2. 18035-branch-1-v001.patch
          11 kB
          Ted Yu
        3. HBASE-18035-branch-1-v001.patch
          11 kB
          huaxiang sun
        4. HBASE-18035-master-v002.patch
          11 kB
          huaxiang sun
        5. HBASE-18035-master-v001.patch
          13 kB
          huaxiang sun
        6. HBASE-18035-master-v001.patch
          13 kB
          huaxiang sun
        7. 18035-unittest.patch
          7 kB
          huaxiang sun

          Issue Links

            Activity

              People

              • Assignee:
                huaxiang huaxiang sun
                Reporter:
                huaxiang huaxiang sun
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: