public abstract class Compactor<T extends CellSink>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected static interface |
Compactor.CellSinkFactory<S> |
protected static class |
Compactor.FileDetails
The sole reason this class exists is that java has no ref/out/pointer parameters.
|
protected static interface |
Compactor.InternalScannerFactory |
Modifier and Type | Field and Description |
---|---|
protected static long |
COMPACTION_PROGRESS_LOG_INTERVAL |
protected Compression.Algorithm |
compactionCompression |
protected int |
compactionKVMax |
protected Configuration |
conf |
protected Compactor.InternalScannerFactory |
defaultScannerFactory |
protected int |
keepSeqIdPeriod
specify how many days to keep MVCC values during major compaction
|
protected static java.lang.String |
MAJOR_COMPACTION_DROP_CACHE |
protected static java.lang.String |
MINOR_COMPACTION_DROP_CACHE |
protected CompactionProgress |
progress |
protected HStore |
store |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
abortWriter(T writer) |
protected abstract java.util.List<Path> |
commitWriter(T writer,
Compactor.FileDetails fd,
CompactionRequestImpl request) |
protected java.util.List<Path> |
compact(CompactionRequestImpl request,
Compactor.InternalScannerFactory scannerFactory,
Compactor.CellSinkFactory<T> sinkFactory,
ThroughputController throughputController,
User user) |
protected InternalScanner |
createScanner(HStore store,
ScanInfo scanInfo,
java.util.List<StoreFileScanner> scanners,
long smallestReadPoint,
long earliestPutTs,
byte[] dropDeletesFromRow,
byte[] dropDeletesToRow) |
protected InternalScanner |
createScanner(HStore store,
ScanInfo scanInfo,
java.util.List<StoreFileScanner> scanners,
ScanType scanType,
long smallestReadPoint,
long earliestPutTs) |
protected StoreFileWriter |
createTmpWriter(Compactor.FileDetails fd,
boolean shouldDropBehind)
Creates a writer for a new file in a temporary directory.
|
CompactionProgress |
getProgress() |
protected boolean |
performCompaction(Compactor.FileDetails fd,
InternalScanner scanner,
CellSink writer,
long smallestReadPoint,
boolean cleanSeqId,
ThroughputController throughputController,
boolean major,
int numofFilesToCompact)
Performs the compaction.
|
protected static final long COMPACTION_PROGRESS_LOG_INTERVAL
protected volatile CompactionProgress progress
protected final Configuration conf
protected final HStore store
protected final int compactionKVMax
protected final Compression.Algorithm compactionCompression
protected int keepSeqIdPeriod
protected static final java.lang.String MAJOR_COMPACTION_DROP_CACHE
protected static final java.lang.String MINOR_COMPACTION_DROP_CACHE
protected final Compactor.InternalScannerFactory defaultScannerFactory
public CompactionProgress getProgress()
protected final StoreFileWriter createTmpWriter(Compactor.FileDetails fd, boolean shouldDropBehind) throws java.io.IOException
fd
- The file details.java.io.IOException
- if creation failedprotected final java.util.List<Path> compact(CompactionRequestImpl request, Compactor.InternalScannerFactory scannerFactory, Compactor.CellSinkFactory<T> sinkFactory, ThroughputController throughputController, User user) throws java.io.IOException
java.io.IOException
protected abstract java.util.List<Path> commitWriter(T writer, Compactor.FileDetails fd, CompactionRequestImpl request) throws java.io.IOException
java.io.IOException
protected abstract void abortWriter(T writer) throws java.io.IOException
java.io.IOException
protected boolean performCompaction(Compactor.FileDetails fd, InternalScanner scanner, CellSink writer, long smallestReadPoint, boolean cleanSeqId, ThroughputController throughputController, boolean major, int numofFilesToCompact) throws java.io.IOException
fd
- FileDetails of cell sink writerscanner
- Where to read from.writer
- Where to write to.smallestReadPoint
- Smallest read point.cleanSeqId
- When true, remove seqId(used to be mvcc) value which is <=
smallestReadPointmajor
- Is a major compaction.numofFilesToCompact
- the number of files to compactjava.io.IOException
protected InternalScanner createScanner(HStore store, ScanInfo scanInfo, java.util.List<StoreFileScanner> scanners, ScanType scanType, long smallestReadPoint, long earliestPutTs) throws java.io.IOException
store
- storescanners
- Store file scanners.scanType
- Scan type.smallestReadPoint
- Smallest MVCC read point.earliestPutTs
- Earliest put across all files.java.io.IOException
protected InternalScanner createScanner(HStore store, ScanInfo scanInfo, java.util.List<StoreFileScanner> scanners, long smallestReadPoint, long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws java.io.IOException
store
- The store.scanners
- Store file scanners.smallestReadPoint
- Smallest MVCC read point.earliestPutTs
- Earliest put across all files.dropDeletesFromRow
- Drop deletes starting with this row, inclusive. Can be null.dropDeletesToRow
- Drop deletes ending with this row, exclusive. Can be null.java.io.IOException