Class CompactionContext
java.lang.Object
org.apache.hadoop.hbase.regionserver.compactions.CompactionContext
- Direct Known Subclasses:
DateTieredStoreEngine.DateTieredCompactionContext
,DefaultStoreEngine.DefaultCompactionContext
,StripeStoreEngine.StripeCompaction
This class holds all "physical" details necessary to run a compaction, and abstracts away the
details specific to a particular compaction. It also has compaction request with all the logical
details. Hence, this class is basically the compaction.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract List<org.apache.hadoop.fs.Path>
compact
(ThroughputController throughputController, User user) void
forceSelect
(CompactionRequestImpl request) Forces external selection to be applied for this compaction.boolean
abstract List<HStoreFile>
preSelect
(List<HStoreFile> filesCompacting) Called before coprocessor preCompactSelection and should filter the candidates for coprocessor; i.e.abstract boolean
select
(List<HStoreFile> filesCompacting, boolean isUserCompaction, boolean mayUseOffPeak, boolean forceMajor) Called to select files for compaction.
-
Field Details
-
request
-
-
Constructor Details
-
CompactionContext
public CompactionContext()
-
-
Method Details
-
preSelect
Called before coprocessor preCompactSelection and should filter the candidates for coprocessor; i.e. exclude the files that definitely cannot be compacted at this time.- Parameters:
filesCompacting
- files currently compacting- Returns:
- the list of files that can theoretically be compacted.
-
select
public abstract boolean select(List<HStoreFile> filesCompacting, boolean isUserCompaction, boolean mayUseOffPeak, boolean forceMajor) throws IOException Called to select files for compaction. Must fill in the request field if successful.- Parameters:
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.- Returns:
- Whether the selection succeeded. Selection may be empty and lead to no compaction.
- Throws:
IOException
-
forceSelect
Forces external selection to be applied for this compaction.- Parameters:
request
- The pre-cooked request with selection and other settings.
-
compact
public abstract List<org.apache.hadoop.fs.Path> compact(ThroughputController throughputController, User user) throws IOException - Throws:
IOException
-
getRequest
-
hasSelection
-