You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Becker Ewing (Jira)" <ji...@apache.org> on 2023/08/09 02:07:00 UTC

[jira] [Created] (HBASE-28012) Avoid CellUtil.cloneRow in BufferedEncodedSeeker

Becker Ewing created HBASE-28012:
------------------------------------

             Summary: Avoid CellUtil.cloneRow in BufferedEncodedSeeker
                 Key: HBASE-28012
                 URL: https://issues.apache.org/jira/browse/HBASE-28012
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.5.4
            Reporter: Becker Ewing


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



--
This message was sent by Atlassian Jira
(v8.20.10#820010)