[
https://issues.apache.org/jira/browse/HBASE-20564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16475954#comment-16475954
]
Ted Yu commented on HBASE-20564:
--------------------------------
There were several unit tests broken where MetaCellComparator is involved.
To be specific, even though left and right Cells are instances of
ByteBufferKeyValue, the optimized path in method
{code}
compare(final Cell a, final Cell b, boolean ignoreSequenceid)
{code}
should not be taken since row comparison in MetaCellComparator involves (meta)
row delimiter.
The attached addendum lets MetaCellComparator override the above method by
calling the previous version.
> Tighter ByteBufferKeyValue Cell Comparator
> ------------------------------------------
>
> Key: HBASE-20564
> URL: https://issues.apache.org/jira/browse/HBASE-20564
> Project: HBase
> Issue Type: Sub-task
> Components: Performance
> Reporter: stack
> Assignee: stack
> Priority: Major
> Fix For: 2.0.1
>
> Attachments: 1.4.pe.write.0510.96203.cpu.svg,
> 2.p3.write2.0514.104236.cpu.svg, 2.pe.write.135142.cpu.svg, 20564.addendum,
> HBASE-20564.branch-2.0.001.patch, HBASE-20564.branch-2.0.002.patch,
> HBASE-20564.branch-2.patch, hits.png
>
>
> Comparing Cells in hbase2 takes almost 3x the CPU.
> In hbase1, its a keyValue backed by a byte array caching a few important
> values.. In hbase2, its a NoTagByteBufferChunkKeyValue(?) deserializing the
> row/family/qualifier lengths repeatedly.
> I tried making a purposed comparator -- one that was not generic -- and it
> seemed to have a nicer profile coming close to hbase1 in percentage used
> (I'll post graphs) when I ran it in my perpetual memstore filler (See scripts
> attached to HBASE-20483). It doesn't work when I try to run it on cluster.
> Let me run unit tests to see if it can figure what I have wrong.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)