Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-20795

Allow option in BBKVComparator.compare to do comparison without sequence id

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.1
    • Fix Version/s: 3.0.0, 2.1.0, 2.0.2
    • Component/s: None
    • Labels:
      None

      Description

      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.

       

      @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());
        }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ankit@apache.org Ankit Singhal
                Reporter:
                ankit@apache.org Ankit Singhal
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: