@InterfaceAudience.Private public abstract class Compactor extends Object
| Modifier and Type | Class and Description | 
|---|---|
| static interface  | Compactor.CellSink | 
| protected static class  | Compactor.FileDetailsThe sole reason this class exists is that java has no ref/out/pointer parameters. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected Compression.Algorithm | compactionCompression | 
| private int | compactionKVMax | 
| protected org.apache.hadoop.conf.Configuration | conf | 
| protected int | keepSeqIdPeriodspecify how many days to keep MVCC values during major compaction | 
| private static org.apache.commons.logging.Log | LOG | 
| private static AtomicInteger | NAME_COUNTERUsed to prevent compaction name conflict when multiple compactions running parallel on the
 same store. | 
| protected CompactionProgress | progress | 
| protected Store | store | 
| Constructor and Description | 
|---|
| Compactor(org.apache.hadoop.conf.Configuration conf,
         Store store) | 
| Modifier and Type | Method and Description | 
|---|---|
| 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) | 
| private String | generateCompactionName() | 
| 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,
                 CompactionThroughputController 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)Calls coprocessor, if any, to create compaction scanner - before normal scanner creation. | 
| protected InternalScanner | preCreateCoprocScanner(CompactionRequest request,
                      ScanType scanType,
                      long earliestPutTs,
                      List<StoreFileScanner> scanners,
                      User user) | 
private static final org.apache.commons.logging.Log LOG
protected CompactionProgress progress
protected org.apache.hadoop.conf.Configuration conf
protected Store store
private int compactionKVMax
protected Compression.Algorithm compactionCompression
protected int keepSeqIdPeriod
private static final AtomicInteger NAME_COUNTER
Compactor(org.apache.hadoop.conf.Configuration conf,
         Store store)
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 InternalScanner preCreateCoprocScanner(CompactionRequest request, ScanType scanType, long earliestPutTs, List<StoreFileScanner> scanners) throws IOException
request - Compaction request.scanType - Scan type.earliestPutTs - Earliest put ts.scanners - File scanners for compaction files.IOExceptionprotected InternalScanner preCreateCoprocScanner(CompactionRequest request, ScanType scanType, long earliestPutTs, List<StoreFileScanner> scanners, User user) throws IOException
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.IOExceptionprivate String generateCompactionName()
protected boolean performCompaction(InternalScanner scanner, Compactor.CellSink writer, long smallestReadPoint, boolean cleanSeqId, CompactionThroughputController 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–2019 The Apache Software Foundation. All rights reserved.