@Override
  public ExtendedCell next() throws IOException {
    ExtendedCell retKey = cur;

    try {
      // only seek if we aren't at the end. cur == null implies 'end'.
      if (cur != null) {
        hfs.next();
        setCurrentCell(hfs.getCell());
        if (hasMVCCInfo || this.reader.isBulkLoaded()) {
          skipKVsNewerThanReadpoint();
        }
      }
    } catch (FileNotFoundException e) {
      throw e;
    } catch (IOException e) {
      throw new IOException("Could not iterate " + this, e);
    }
    return retKey;
  }
Get scanners for compaction. We will create a separated reader for each store file to avoid
contention with normal read request.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileScanner.java