HBase
  1. HBase
  2. HBASE-8157

Allow better control over lease timeouts on a per-scan basis

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Changing the global scanner lease timeout is a heavy-handed solution for long scans on a cluster that may be used by a variety of applications. Two additions would make this easier to manage in this circumstance:

      1) Allow overriding hbase.regionserver.lease.period on a per-scan basis.

      2) Allow manual reporting of progress, similar to Hadoop's context.progress(). Example usage:

      Scan scan = new Scan(startRow, endRow);
      scan.setCaching(someVal); // based on what we expect most rows to take for processing time
      
      ResultScanner scanner = table.getScanner(scan);
      
      for (Result r : scanner) {
        //
        // usual processing, the time for which we accounted for in our caching and global lease timeout settings
        //
      
        if (someCondition) {
          //
          // More time-intensive processing necessary on this record, which is hard to account for in the caching
          //
      
          scanner.progress();
        }
      }
      

        Activity

        Hide
        Lars Hofhansl added a comment -

        The leaseperiod-per-scanner idea would even be possible in a backwards compatible way in 0.94 (by using scanner attributes that an old server would ignore).

        Show
        Lars Hofhansl added a comment - The leaseperiod-per-scanner idea would even be possible in a backwards compatible way in 0.94 (by using scanner attributes that an old server would ignore).
        Hide
        Ted Yu added a comment -

        hbase.regionserver.lease.period is no longer supported in 0.95 and later versions.

        I think hbase.client.scanner.timeout.period is what item #1 refers to.

        Show
        Ted Yu added a comment - hbase.regionserver.lease.period is no longer supported in 0.95 and later versions. I think hbase.client.scanner.timeout.period is what item #1 refers to.

          People

          • Assignee:
            Unassigned
            Reporter:
            Bryan Beaudreault
          • Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated:

              Development