[
https://issues.apache.org/jira/browse/HBASE-28012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Becker Ewing reassigned HBASE-28012:
------------------------------------
Assignee: Becker Ewing
> 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
> Assignee: Becker Ewing
> Priority: Major
> Attachments: rs-reversescan-flamegraph.html
>
>
> 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)