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

HRegionServer underreports readRequestCounts by 1 under certain conditions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.94.6, 0.99.0
    • 0.98.0, 0.94.15, 0.96.2, 0.99.0
    • metrics
    • None
    • Reviewed

    Description

      In HRegionServer.scan(), if

      (a) the number of results returned, n, is greater than zero
      (b) but less than the size of the batch (nbRows)
      (c) and the size in bytes is smaller than the max size (maxScannerResultSize)

      then the readRequestCount will be reported as n - 1 rather than n. (This is because the for-loop counter i is used to update the readRequestCount, and if the scan runs out of rows before reaching max rows or size, the code `break`s out of the loop and i is not incremented for the final time.)

      To reproduce, create a test table and open its details page in the web UI. Insert a single row, then note the current request count, c. Scan the table, returning 1 row; the request count will still be c, whereas it should be c + 1.

      I have a patch against TRUNK I can submit. At Splice Machine we're running 0.94, & I'd be happy to submit a patch against that as well.

      Attachments

        1. 10179-against-trunk.diff
          1 kB
          Perry Trolard
        2. 10179-against-0.94-branch.diff
          0.9 kB
          Perry Trolard

        Activity

          People

            pjt Perry Trolard
            pjt Perry Trolard
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: