@InterfaceAudience.Private public abstract class CompactionContext extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected CompactionRequest |
request |
Constructor and Description |
---|
CompactionContext() |
Modifier and Type | Method and Description |
---|---|
abstract java.util.List<Path> |
compact(CompactionThroughputController throughputController)
Runs the compaction based on current selection.
|
abstract java.util.List<Path> |
compact(CompactionThroughputController throughputController,
User user) |
void |
forceSelect(CompactionRequest request)
Forces external selection to be applied for this compaction.
|
CompactionRequest |
getRequest() |
boolean |
hasSelection() |
abstract java.util.List<StoreFile> |
preSelect(java.util.List<StoreFile> filesCompacting)
Called before coprocessor preCompactSelection and should filter the candidates
for coprocessor; i.e.
|
abstract boolean |
select(java.util.List<StoreFile> filesCompacting,
boolean isUserCompaction,
boolean mayUseOffPeak,
boolean forceMajor)
Called to select files for compaction.
|
protected CompactionRequest request
public abstract java.util.List<StoreFile> preSelect(java.util.List<StoreFile> filesCompacting)
filesCompacting
- files currently compactingpublic abstract boolean select(java.util.List<StoreFile> filesCompacting, boolean isUserCompaction, boolean mayUseOffPeak, boolean forceMajor) throws java.io.IOException
filesCompacting
- Files currently being compacted by other compactions.isUserCompaction
- Whether this is a user compaction.mayUseOffPeak
- Whether the underlying policy may assume it's off-peak hours.forceMajor
- Whether to force major compaction.java.io.IOException
public void forceSelect(CompactionRequest request)
request
- The pre-cooked request with selection and other settings.public abstract java.util.List<Path> compact(CompactionThroughputController throughputController) throws java.io.IOException
java.io.IOException
public abstract java.util.List<Path> compact(CompactionThroughputController throughputController, User user) throws java.io.IOException
java.io.IOException
public CompactionRequest getRequest()
public boolean hasSelection()