private boolean seekToPreviousRowStateless(ExtendedCell originalKey) throws IOException {
    ExtendedCell key = originalKey;
    do {
      ExtendedCell keyAtBeginningOfRow = PrivateCellUtil.createFirstOnRow(key);
      if (!seekBefore(keyAtBeginningOfRow)) {
        return false;
      }

      ExtendedCell firstKeyOfPreviousRow = PrivateCellUtil.createFirstOnRow(hfs.getKey());
      if (!seekAtOrAfter(firstKeyOfPreviousRow)) {
        return false;
      }

      if (isStillAtSeekTargetAfterSkippingNewerKvs(firstKeyOfPreviousRow)) {
        return true;
      }
      key = firstKeyOfPreviousRow;
    } while (true);
  }
This variant of the {@link StoreFileScanner#seekToPreviousRow(ExtendedCell)} method requires
two seeks. It should be used if the cost for seeking is lower i.e. when using a fast seeking
data block encoding like RIV1.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java