@InterfaceAudience.Private public abstract class Compactor<T extends Compactor.CellSink> extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
Compactor.CellSink |
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 Compression.Algorithm |
compactionCompression |
protected int |
compactionKVMax |
protected org.apache.hadoop.conf.Configuration |
conf |
protected Compactor.InternalScannerFactory |
defaultScannerFactory |
protected int |
keepSeqIdPeriod
specify how many days to keep MVCC values during major compaction
|
protected static String |
MAJOR_COMPACTION_DROP_CACHE |
protected static String |
MINOR_COMPACTION_DROP_CACHE |
protected CompactionProgress |
progress |
protected Store |
store |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
abortWriter(T writer) |
protected abstract List<org.apache.hadoop.fs.Path> |
commitWriter(T writer,
Compactor.FileDetails fd,
CompactionRequest request) |
protected List<org.apache.hadoop.fs.Path> |
compact(CompactionRequest request,
Compactor.InternalScannerFactory scannerFactory,
Compactor.CellSinkFactory<T> sinkFactory,
ThroughputController throughputController,
User user) |
protected List<StoreFileScanner> |
createFileScanners(Collection<StoreFile> filesToCompact,
long smallestReadPoint,
boolean useDropBehind)
Creates file scanners for compaction.
|
protected InternalScanner |
createScanner(Store store,
List<StoreFileScanner> scanners,
long smallestReadPoint,
long earliestPutTs,
byte[] dropDeletesFromRow,
byte[] dropDeletesToRow) |
protected InternalScanner |
createScanner(Store store,
List<StoreFileScanner> scanners,
ScanType scanType,
long smallestReadPoint,
long earliestPutTs) |
protected StoreFile.Writer |
createTmpWriter(Compactor.FileDetails fd,
boolean shouldDropBehind)
Creates a writer for a new file in a temporary directory.
|
protected Compactor.FileDetails |
getFileDetails(Collection<StoreFile> filesToCompact,
boolean allFiles)
Extracts some details about the files to compact that are commonly needed by compactors.
|
CompactionProgress |
getProgress() |
protected long |
getSmallestReadPoint() |
protected boolean |
performCompaction(InternalScanner scanner,
Compactor.CellSink writer,
long smallestReadPoint,
boolean cleanSeqId,
ThroughputController throughputController)
Performs the compaction.
|
protected InternalScanner |
postCreateCoprocScanner(CompactionRequest request,
ScanType scanType,
InternalScanner scanner,
User user)
Calls coprocessor, if any, to create scanners - after normal scanner creation.
|
protected InternalScanner |
preCreateCoprocScanner(CompactionRequest request,
ScanType scanType,
long earliestPutTs,
List<StoreFileScanner> scanners,
User user,
long readPoint)
Calls coprocessor, if any, to create compaction scanner - before normal scanner creation.
|
protected volatile CompactionProgress progress
protected final org.apache.hadoop.conf.Configuration conf
protected final Store store
protected final int compactionKVMax
protected final Compression.Algorithm compactionCompression
protected int keepSeqIdPeriod
protected static final String MAJOR_COMPACTION_DROP_CACHE
protected static final String MINOR_COMPACTION_DROP_CACHE
protected final Compactor.InternalScannerFactory defaultScannerFactory
public CompactionProgress getProgress()
protected Compactor.FileDetails getFileDetails(Collection<StoreFile> filesToCompact, boolean allFiles) throws IOException
filesToCompact
- Files.allFiles
- Whether all files are included for compactionIOException
protected List<StoreFileScanner> createFileScanners(Collection<StoreFile> filesToCompact, long smallestReadPoint, boolean useDropBehind) throws IOException
filesToCompact
- Files.IOException
protected long getSmallestReadPoint()
protected StoreFile.Writer createTmpWriter(Compactor.FileDetails fd, boolean shouldDropBehind) throws IOException
fd
- The file details.IOException
- if creation failedprotected List<org.apache.hadoop.fs.Path> compact(CompactionRequest request, Compactor.InternalScannerFactory scannerFactory, Compactor.CellSinkFactory<T> sinkFactory, ThroughputController throughputController, User user) throws IOException
IOException
protected abstract List<org.apache.hadoop.fs.Path> commitWriter(T writer, Compactor.FileDetails fd, CompactionRequest request) throws IOException
IOException
protected abstract void abortWriter(T writer) throws IOException
IOException
protected InternalScanner preCreateCoprocScanner(CompactionRequest request, ScanType scanType, long earliestPutTs, List<StoreFileScanner> scanners, User user, long readPoint) throws IOException
request
- Compaction request.scanType
- Scan type.earliestPutTs
- Earliest put ts.scanners
- File scanners for compaction files.user
- the UserreadPoint
- the read point to help create scanner by Coprocessor if required.IOException
protected InternalScanner postCreateCoprocScanner(CompactionRequest request, ScanType scanType, InternalScanner scanner, User user) throws IOException
request
- Compaction request.scanType
- Scan type.scanner
- The default scanner created for compaction.IOException
protected boolean performCompaction(InternalScanner scanner, Compactor.CellSink writer, long smallestReadPoint, boolean cleanSeqId, ThroughputController throughputController) throws IOException
scanner
- 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 <=
smallestReadPointIOException
protected InternalScanner createScanner(Store store, List<StoreFileScanner> scanners, ScanType scanType, long smallestReadPoint, long earliestPutTs) throws IOException
store
- storescanners
- Store file scanners.scanType
- Scan type.smallestReadPoint
- Smallest MVCC read point.earliestPutTs
- Earliest put across all files.IOException
protected InternalScanner createScanner(Store store, List<StoreFileScanner> scanners, long smallestReadPoint, long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws 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.IOException
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.