@Override
  public boolean reseek(ExtendedCell cell) throws IOException {
    if (closed) {
      return false;
    }
    /*
     * See HBASE-4195 & HBASE-3855 & HBASE-6591 for the background on this implementation. This code
     * is executed concurrently with flush and puts, without locks. The ideal implementation for
     * performance would use the sub skip list implicitly pointed by the iterator. Unfortunately the
     * Java API does not offer a method to get it. So we remember the last keys we iterated to and
     * restore the reseeked set to at least that point.
     */
    iter = getIterator(getHighest(cell, last));
    updateCurrent();
    return (current != null);
  }
Reseek the scanner at or after the specified KeyValue. This method is guaranteed to seek at or
after the required key only if the key comes after the current position of the scanner. Should
not be used to seek to a key which may come before the current position.
@param cell seek value (should be non-null)
@return true if scanner has values left, false if end of scanner
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SegmentScanner.java