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.