@InterfaceAudience.Private public abstract class Compactor<T extends Compactor.CellSink> extends Object
| 限定符和类型 | 类和说明 |
|---|---|
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 |
| 限定符和类型 | 字段和说明 |
|---|---|
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 |
| 限定符和类型 | 方法和说明 |
|---|---|
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 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 compactionIOExceptionprotected List<StoreFileScanner> createFileScanners(Collection<StoreFile> filesToCompact, long smallestReadPoint, boolean useDropBehind) throws IOException
filesToCompact - Files.IOExceptionprotected 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
IOExceptionprotected abstract List<org.apache.hadoop.fs.Path> commitWriter(T writer, Compactor.FileDetails fd, CompactionRequest request) throws IOException
IOExceptionprotected abstract void abortWriter(T writer) throws IOException
IOExceptionprotected 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.IOExceptionprotected 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.IOExceptionprotected 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 <=
smallestReadPointIOExceptionprotected 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.IOExceptionprotected 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.IOExceptionCopyright © 2007–2021 The Apache Software Foundation. All rights reserved.