public StoreFileScanner getStoreFileScanner(boolean cacheBlocks, boolean pread,
    boolean isCompaction, long readPt, long scannerOrder, boolean canOptimizeForNonNullColumn) {
    return new StoreFileScanner(this, getScanner(cacheBlocks, pread, isCompaction), !isCompaction,
      reader.hasMVCCInfo(), readPt, scannerOrder, canOptimizeForNonNullColumn,
      reader.getDataBlockEncoding() == DataBlockEncoding.ROW_INDEX_V1);
  }
Get a scanner to scan over this StoreFile.
@param cacheBlocks                 should this scanner cache blocks?
@param pread                       use pread (for highly concurrent small readers)
@param isCompaction                is scanner being used for compaction?
@param scannerOrder                Order of this scanner relative to other scanners. See
                                   {@link KeyValueScanner#getScannerOrder()}.
@param canOptimizeForNonNullColumn {@code true} if we can make sure there is no null column,
                                   otherwise {@code false}. This is a hint for optimization.
@return a scanner
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileReader.java