Class FileSmoosher

java.lang.Object
org.apache.druid.java.util.common.io.smoosh.FileSmoosher
All Implemented Interfaces:
Closeable, AutoCloseable, SegmentFileBuilder

public class FileSmoosher extends Object implements SegmentFileBuilder
A class that concatenates files together into configurable sized chunks, works in conjunction with the SmooshedFileMapper to provide access to the individual files.

It does not split input files among separate output files, instead the various "chunk" files will be varying sizes and it is not possible to add a file of size greater than Integer.MAX_VALUE.

This class is not thread safe.

This class allows writing multiple files even if main smoosh file writer is open. If main smoosh file writer is already open, it delegates the write into temporary file on the file system which is later copied on to the main smoosh file and underlying temporary file will be cleaned up.