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

HRegionServer underreports readRequestCounts by 1 under certain conditions

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 0.94.6, 0.99.0
    • Fix Version/s: 0.98.0, 0.94.15, 0.96.2, 0.99.0
    • Component/s: metrics
    • Labels:
      None
    • Hadoop Flags:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: