protected final StoreFileWriter createWriter(MemStoreSnapshot snapshot, boolean alwaysIncludesTag,
    Consumer<Path> writerCreationTracker) throws IOException {
    return store.getStoreEngine()
      .createWriter(CreateStoreFileWriterParams.create().maxKeyCount(snapshot.getCellsCount())
        .compression(store.getColumnFamilyDescriptor().getCompressionType()).isCompaction(false)
        .includeMVCCReadpoint(true).includesTag(alwaysIncludesTag || snapshot.isTagsPresent())
        .shouldDropBehind(false).writerCreationTracker(writerCreationTracker));
  }
Turns a snapshot of memstore into a set of store files.
@param snapshot             Memstore snapshot.
@param cacheFlushSeqNum     Log cache flush sequence number.
@param status               Task that represents the flush operation and may be updated with
                            status.
@param throughputController A controller to avoid flush too fast
@return List of files written. Can be empty; must not be null.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFlusher.java