You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Guanghao Zhang (JIRA)" <ji...@apache.org> on 2019/03/04 08:49:00 UTC

[jira] [Updated] (HBASE-20795) Allow option in BBKVComparator.compare to do comparison without sequence id

     [ https://issues.apache.org/jira/browse/HBASE-20795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guanghao Zhang updated HBASE-20795:
-----------------------------------
    Fix Version/s: 2.2.0

> Allow option in BBKVComparator.compare to do comparison without sequence id
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-20795
>                 URL: https://issues.apache.org/jira/browse/HBASE-20795
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>            Reporter: Ankit Singhal
>            Assignee: Ankit Singhal
>            Priority: Major
>             Fix For: 3.0.0, 2.1.0, 2.2.0, 2.0.2
>
>         Attachments: HBASE-20795.patch
>
>
> CellComparatorImpl#compare(final Cell a, final Cell b, boolean ignoreSequenceid) needs to ignore sequence id in comparison if ignoreSequenceId parameter is set to true but BBKVComparator.compare used internally for the cell of type ByteBufferKeyValue doesn't consider this.
>  {code}
> @Override
>   public int compare(final Cell a, final Cell b, boolean ignoreSequenceid) {
>     int diff = 0;
>     // "Peel off" the most common path.
>     if (a instanceof ByteBufferKeyValue && b instanceof ByteBufferKeyValue) {
>       diff = BBKVComparator.compare((ByteBufferKeyValue)a, (ByteBufferKeyValue)b);
>       if (diff != 0) {
>         return diff;
>       }
>     } else {
>       diff = compareRows(a, b);
>       if (diff != 0) {
>         return diff;
>       }
>       diff = compareWithoutRow(a, b);
>       if (diff != 0) {
>         return diff;
>       }
>     }
>     // Negate following comparisons so later edits show up first mvccVersion: later sorts first
>     return ignoreSequenceid? diff: Long.compare(b.getSequenceId(), a.getSequenceId());
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)