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

Skip large rows instead of throwing an exception to client

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • None
    • None
    • None
    • None

    Description

      Currently HBase supports throwing RowTooBigException incase there is a row with one of the column family data exceeds the configured maximum
      https://issues.apache.org/jira/browse/HBASE-10925?attachmentOrder=desc
      We have some bad rows growing very large. We need a way to skip these rows for most of our jobs.

      Some of the options we considered:
      Option 1:
      Hbase client handle the exception and restart the scanner past bad row by capturing the row key where it failed. Can be by adding the rowkey to the exception stack trace, which seems brittle. Client would ignore the setting if its upgraded before server.

      Option 2:
      Skip through big rows on Server.Go with server level config similar to "hbase.table.max.rowsize" or request based by changing the scan request api. If allowed to do per request, based on the scan request config, Client will have to ignore the setting if its upgraded before server.

      try {
       populateResult(results, this.storeHeap, scannerContext, current);
       } catch(RowTooBigException e) {
       LOG.info("Row exceeded the limit in storeheap. Skipping row with key:"+Bytes.toString(current.getRowArray()));
       this.storeHeap.reseek(PrivateCellUtil.createLastOnRow(current));
       results.clear();
       scannerContext.clearProgress();
       continue;
       }
      

      Prefer the option 2 with server level config. Please share your inputs

      Attachments

        1. HBASE-20618.hbasemaster.v01.patch
          14 kB
          Swapna
        2. HBASE-20618.hbasemaster.v02.patch
          14 kB
          Swapna
        3. HBASE-20618.v1.branch-1.patch
          13 kB
          Swapna
        4. HBASE-20618.v1.branch-1.patch
          13 kB
          Swapna

        Activity

          People

            Unassigned Unassigned
            mswapna Swapna
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: