Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.5.4
-
None
-
Reviewed
Description
A RegionServer running a workload that consisted of mostly reverse (and some forward) scans of thousands of tall (36 byte rows) under moderate read pressure (based on block bytes scanned) saw near 100% CPU usage. We noticed that the high CPU usage tended to correlate with more reverse scan quantity and the throughput of the server running more reverse scans was vastly lower than expectation.
A flame graph of the Region Server at 100% CPU usage. Analysis of the flamegraph reveals that each seek for a reverse scan (which has more seeks than the forward seek path) has 2 CellUtil.cloneRow rowkey copies per seek. These CellUtil#cloneRow calls can be removed from this code path for off-heap cells in a similar fashion to HBASE-27146
Attachments
Attachments
Issue Links
- relates to
-
HBASE-28025 Enhance ByteBufferUtils.findCommonPrefix to compare 8 bytes each time
- Resolved
- links to