You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (Jira)" <ji...@apache.org> on 2020/08/11 02:51:00 UTC

[jira] [Commented] (HBASE-24850) CellComparator perf improvement

    [ https://issues.apache.org/jira/browse/HBASE-24850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17175176#comment-17175176 ] 

Anoop Sam John commented on HBASE-24850:
----------------------------------------

We should optimize it at the CellComparatorImpl level itself so that all flows can take adv. This can be an issue in the overall perf issue which deal with so many Cells and compares. (The other 2.x perf issue of filtering cells in a range scan - HBASE-24637 )
In the initial time of CellComparatorImpl , there were some optimizations and so many overloaded compareXXX methods which takes not just Cells but few offsets/lengths also.. I think eventually got cleaned up. But such cleanup affect perf very much is what we seeing now.
In case of KeyValue the biggest adv is that we know it is a single contiguous datastructure backed object and so have ways to parse offset/length with out doing back to back decoding of other lengths every time. In a generic Cell and CellComparator such assumptions are not possible. But normally in HBase most of the time, the Cells flowing will be KV or BBKV both backed by contiguous datastructure .. We can think of having a new interface to mark such Cells and a CellComparator impl to take adv of that. This needs a bigger effort but its worth.

> CellComparator perf improvement
> -------------------------------
>
>                 Key: HBASE-24850
>                 URL: https://issues.apache.org/jira/browse/HBASE-24850
>             Project: HBase
>          Issue Type: Improvement
>          Components: Performance, scan
>    Affects Versions: 2.4.0
>            Reporter: Anoop Sam John
>            Priority: Critical
>             Fix For: 2.0.0
>
>
> We have multiple perf issues in 2.x versions compared to 1.x.  Eg: HBASE-24754, HBASE-24637.
> The pattern is clear that where ever we do more and more Cell compares, there is some degrade.   In HBASE-24754, with an old KVComparator style comparator, we see much better perf for the PutSortReducer.  (Again the gain is huge because of large number of compare ops that test is doing).  This issue is to address and optimize compares generally in CellComparatorImpl itself.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)