public KeyValueScanner getScanner(Scan scan, final NavigableSet<byte[]> targetCols, long readPt)
    throws IOException {
    storeEngine.readLock();
    try {
      ScanInfo scanInfo;
      if (this.getCoprocessorHost() != null) {
        scanInfo = this.getCoprocessorHost().preStoreScannerOpen(this, scan);
      } else {
        scanInfo = getScanInfo();
      }
      return createScanner(scan, scanInfo, targetCols, readPt);
    } finally {
      storeEngine.readUnlock();
    }
  }
Return a scanner for both the memstore and the HStore files. Assumes we are not in a
compaction.
@param scan       Scan to apply when scanning the stores
@param targetCols columns to scan
@return a scanner over the current key values
@throws IOException on failure
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java