Class AbstractCompactionTask
- java.lang.Object
-
- org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask
-
- Direct Known Subclasses:
CrossSpaceCompactionTask,InnerSpaceCompactionTask
public abstract class AbstractCompactionTask extends java.lang.ObjectAbstractCompactionTask is the base class for all compaction task, it carries out the execution of compaction. AbstractCompactionTask uses a template method, it executes the abstract functiondoCompaction()implemented by subclass, and decrease the currentTaskNum in CompactionScheduler when thedoCompaction()is finished. The future returns theCompactionTaskSummaryof this task execution.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.atomic.AtomicIntegercurrentTaskNumprotected java.lang.StringdataRegionIdprotected inthashCodeprotected ICompactionPerformerperformerprotected longserialIdprotected java.lang.StringstorageGroupNameprotected CompactionTaskSummarysummaryprotected longtimePartitionprotected TsFileManagertsFileManager
-
Constructor Summary
Constructors Constructor Description AbstractCompactionTask(java.lang.String storageGroupName, java.lang.String dataRegionId, long timePartition, TsFileManager tsFileManager, java.util.concurrent.atomic.AtomicInteger currentTaskNum, long serialId)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcancel()protected voidcheckInterrupted()abstract booleancheckValidAndSetMerging()Check if the compaction task is valid (selected files are not merging, closed and exist).protected abstract voiddoCompaction()booleanequals(java.lang.Object other)abstract booleanequalsOtherTask(AbstractCompactionTask otherTask)java.lang.StringgetDataRegionId()longgetSerialId()java.lang.StringgetStorageGroupName()CompactionTaskSummarygetSummary()longgetTimeCost()longgetTimePartition()booleanisSuccess()booleanisTaskFinished()booleanisTaskRan()abstract voidresetCompactionCandidateStatusForAllSourceFiles()abstract voidsetSourceFilesToCompactionCandidate()voidstart()
-
-
-
Field Detail
-
dataRegionId
protected java.lang.String dataRegionId
-
storageGroupName
protected java.lang.String storageGroupName
-
timePartition
protected long timePartition
-
currentTaskNum
protected final java.util.concurrent.atomic.AtomicInteger currentTaskNum
-
tsFileManager
protected final TsFileManager tsFileManager
-
performer
protected ICompactionPerformer performer
-
hashCode
protected int hashCode
-
summary
protected CompactionTaskSummary summary
-
serialId
protected long serialId
-
-
Constructor Detail
-
AbstractCompactionTask
public AbstractCompactionTask(java.lang.String storageGroupName, java.lang.String dataRegionId, long timePartition, TsFileManager tsFileManager, java.util.concurrent.atomic.AtomicInteger currentTaskNum, long serialId)
-
-
Method Detail
-
setSourceFilesToCompactionCandidate
public abstract void setSourceFilesToCompactionCandidate()
-
doCompaction
protected abstract void doCompaction()
-
start
public void start()
-
getStorageGroupName
public java.lang.String getStorageGroupName()
-
getDataRegionId
public java.lang.String getDataRegionId()
-
getTimePartition
public long getTimePartition()
-
equalsOtherTask
public abstract boolean equalsOtherTask(AbstractCompactionTask otherTask)
-
checkValidAndSetMerging
public abstract boolean checkValidAndSetMerging()
Check if the compaction task is valid (selected files are not merging, closed and exist). If the task is valid, then set the merging status of selected files to true.- Returns:
- true if the task is valid else false
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
resetCompactionCandidateStatusForAllSourceFiles
public abstract void resetCompactionCandidateStatusForAllSourceFiles()
-
getTimeCost
public long getTimeCost()
-
checkInterrupted
protected void checkInterrupted() throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
isTaskRan
public boolean isTaskRan()
-
cancel
public void cancel()
-
isSuccess
public boolean isSuccess()
-
getSummary
public CompactionTaskSummary getSummary()
-
isTaskFinished
public boolean isTaskFinished()
-
getSerialId
public long getSerialId()
-
-