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

Allow configuring a separate timeout for meta scans

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.5.0, 3.0.0-alpha-4
    • None
    • Hide
      Similar to hbase.read.rpc.timeout and hbase.client.scanner.timeout.period for normal scans, this issue adds two new configs for meta scans: hbase.client.meta.read.rpc.timeout and hbase.client.meta.scanner.timeout.period. Each meta scan RPC call will be limited by hbase.client.meta.read.rpc.timeout, while hbase.client.meta.scanner.timeout.period acts as an overall operation timeout.

      Additionally, for 2.5.0, normal Table-based scan RPCs will now be limited by hbase.read.rpc.timeout if configured, instead of hbase.rpc.timeout. This behavior already existed for AsyncTable scans.
      Show
      Similar to hbase.read.rpc.timeout and hbase.client.scanner.timeout.period for normal scans, this issue adds two new configs for meta scans: hbase.client.meta.read.rpc.timeout and hbase.client.meta.scanner.timeout.period. Each meta scan RPC call will be limited by hbase.client.meta.read.rpc.timeout, while hbase.client.meta.scanner.timeout.period acts as an overall operation timeout. Additionally, for 2.5.0, normal Table-based scan RPCs will now be limited by hbase.read.rpc.timeout if configured, instead of hbase.rpc.timeout. This behavior already existed for AsyncTable scans.

    Description

      There is a hbase.client.meta.operation.timeout but it does not apply to meta scans, which are the primary use-case for clients (i.e. through RegionLocator). 

      Many user-facing clients may want to have low rpc and scan timeouts. However, in periods of meta hotspotting, those timeouts can be way too low for the meta scans. The problem with low timeouts for meta scans is that without a populated MetaCache, user requests cannot succeed. In fact, user requests will continually try to re-scan meta until the MetaCache is populated. So having a lower rpc timeout will cause a situation where meta scans cannot succeed, and thus user requests cannot succeed. In this case I think it'd be preferable to relax the rpc timeout for meta requests so that a few long requests can unblock many faster requests.

      My suggestion would be to add an hbase.client.meta.rpc.timeout and ensure that it applies to meta scans. I also think it would be less confusing to have hbase.client.meta.operation.timeout apply as the scanner timeout period for meta scans.

      Attachments

        Activity

          People

            bbeaudreault Bryan Beaudreault
            bbeaudreault Bryan Beaudreault
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: