Skip to content

Commit e9c614e

Browse files
authored
Add independent ttl check for object file (#16929)
1 parent 52002e8 commit e9c614e

File tree

10 files changed

+307
-215
lines changed

10 files changed

+307
-215
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/CompactionMetrics.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,7 @@ private void unbindCompactionTaskMemory(AbstractMetricService metricService) {
703703

704704
private Histogram settleCompactionTaskSelectionTimeCost =
705705
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
706+
private Histogram ttlCheckForObjectFileTimeCost = DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
706707

707708
private Histogram seqInnerSpaceCompactionTaskSelectedFileNum =
708709
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
@@ -766,6 +767,10 @@ public void updateCompactionTaskSelectionTimeCost(CompactionTaskType taskType, l
766767
}
767768
}
768769

770+
public void updateTTLCheckForObjectFileCost(long time) {
771+
ttlCheckForObjectFileTimeCost.update(time);
772+
}
773+
769774
public void updateCompactionTaskSelectedFileNum(
770775
CompactionTaskType taskType, int selectedFileNum) {
771776
switch (taskType) {
@@ -869,6 +874,12 @@ private void bindCompactionTaskSelection(AbstractMetricService metricService) {
869874
MetricLevel.IMPORTANT,
870875
Tag.NAME.toString(),
871876
"settle");
877+
ttlCheckForObjectFileTimeCost =
878+
metricService.getOrCreateHistogram(
879+
Metric.COMPACTION_TASK_SELECTION_COST.toString(),
880+
MetricLevel.IMPORTANT,
881+
Tag.NAME.toString(),
882+
"settle-object");
872883
seqInnerSpaceCompactionTaskSelectedFileNum =
873884
metricService.getOrCreateHistogram(
874885
Metric.COMPACTION_TASK_SELECTED_FILE.toString(),
@@ -935,7 +946,8 @@ private void bindCompactionTaskSelection(AbstractMetricService metricService) {
935946
}
936947

937948
private void unbindCompactionTaskSelection(AbstractMetricService metricService) {
938-
for (String taskType : Arrays.asList("seq", "unseq", "cross", "insertion", "settle")) {
949+
for (String taskType :
950+
Arrays.asList("seq", "unseq", "cross", "insertion", "settle", "settle-object")) {
939951
metricService.remove(
940952
MetricType.GAUGE,
941953
Metric.COMPACTION_TASK_SELECTION.toString(),

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.recover.CompactionRecoverManager;
104104
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.AbstractCompactionTask;
105105
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.RepairUnsortedFileCompactionTask;
106+
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
106107
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleContext;
107108
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduleTaskManager;
108109
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.CompactionScheduler;
@@ -3428,6 +3429,20 @@ public int executeTTLCheck() throws InterruptedException {
34283429
return trySubmitCount;
34293430
}
34303431

3432+
public void executeTTLCheckForObjectFiles() throws InterruptedException {
3433+
long startTime = System.currentTimeMillis();
3434+
List<String> allObjectDirs = TierManager.getInstance().getAllObjectFileFolders();
3435+
for (String objectDir : allObjectDirs) {
3436+
File regionObjectDir = new File(objectDir, dataRegionIdString);
3437+
if (!regionObjectDir.isDirectory()) {
3438+
continue;
3439+
}
3440+
CompactionUtils.executeTTLCheckObjectFilesForTableModel(regionObjectDir, databaseName);
3441+
}
3442+
CompactionMetrics.getInstance()
3443+
.updateTTLCheckForObjectFileCost(System.currentTimeMillis() - startTime);
3444+
}
3445+
34313446
private boolean skipCurrentTTLAndModificationCheck() {
34323447
if (this.databaseName.equals(InformationSchema.INFORMATION_DATABASE)) {
34333448
return true;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/CrossSpaceCompactionTask.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.exception.CompactionRecoverException;
2828
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICrossCompactionPerformer;
2929
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.FastCompactionPerformer;
30-
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
3130
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.subtask.FastCompactionTaskSummary;
3231
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
3332
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogAnalyzer;
@@ -193,11 +192,6 @@ public boolean doCompaction() {
193192
performer.setTargetFiles(targetTsfileResourceList);
194193
performer.setSummary(summary);
195194
performer.perform();
196-
if (performer instanceof ReadPointCompactionPerformer) {
197-
for (TsFileResource resource : getAllSourceTsFiles()) {
198-
CompactionUtils.removeDeletedObjectFiles(resource);
199-
}
200-
}
201195

202196
CompactionUtils.updateProgressIndexAndMark(
203197
targetTsfileResourceList, selectedSequenceFiles, selectedUnsequenceFiles);

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/InnerSpaceCompactionTask.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.ICompactionPerformer;
3131
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.IInnerCompactionPerformer;
3232
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.FastCompactionPerformer;
33-
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.impl.ReadPointCompactionPerformer;
3433
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.task.subtask.FastCompactionTaskSummary;
3534
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.CompactionUtils;
3635
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.utils.log.CompactionLogAnalyzer;
@@ -390,11 +389,6 @@ protected void compact(SimpleCompactionLogger compactionLogger) throws Exception
390389
performer.setTargetFiles(filesView.targetFilesInPerformer);
391390
performer.setSummary(summary);
392391
performer.perform();
393-
if (performer instanceof ReadPointCompactionPerformer) {
394-
for (TsFileResource resource : filesView.sourceFilesInCompactionPerformer) {
395-
CompactionUtils.removeDeletedObjectFiles(resource);
396-
}
397-
}
398392

399393
prepareTargetFiles();
400394

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/task/SettleCompactionTask.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,6 @@ public boolean settleWithFullyDirtyFiles() throws IllegalPathException, IOExcept
219219
if (recoverMemoryStatus) {
220220
tsFileManager.remove(resource, resource.isSeq());
221221
}
222-
CompactionUtils.removeDeletedObjectFiles(resource);
223222

224223
boolean res = deleteTsFileOnDisk(resource);
225224
if (res) {

0 commit comments

Comments
 (0)