You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/12/01 08:32:02 UTC
[iotdb] branch rel/0.11 updated: Update compaction level list
delete (#2152)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/0.11
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.11 by this push:
new 79e017b Update compaction level list delete (#2152)
79e017b is described below
commit 79e017b3d13c4fed4413d123dc5010b2a905b8c6
Author: zhanglingzhe0820 <44...@qq.com>
AuthorDate: Tue Dec 1 16:28:21 2020 +0800
Update compaction level list delete (#2152)
(cherry picked from commit d242932d4ddc9ff2abe3de228547422cfde77584)
---
.../level/LevelCompactionTsFileManagement.java | 41 ++++++++++++----------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/level/LevelCompactionTsFileManagement.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/level/LevelCompactionTsFileManagement.java
index cfb1991..e6ff2ec 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/level/LevelCompactionTsFileManagement.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/level/LevelCompactionTsFileManagement.java
@@ -94,19 +94,18 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
}
private void deleteLevelFilesInList(long timePartitionId,
- Collection<TsFileResource> mergeTsFiles) {
+ Collection<TsFileResource> mergeTsFiles, int level, boolean sequence) {
logger.debug("{} [compaction] merge starts to delete file list", storageGroupName);
- for (int i = 0; i < seqLevelNum - 1; i++) {
+ if (sequence) {
if (sequenceTsFileResources.containsKey(timePartitionId)) {
- if (sequenceTsFileResources.get(timePartitionId).size() > i) {
- sequenceTsFileResources.get(timePartitionId).get(i).removeAll(mergeTsFiles);
+ if (sequenceTsFileResources.get(timePartitionId).size() > level) {
+ sequenceTsFileResources.get(timePartitionId).get(level).removeAll(mergeTsFiles);
}
}
- }
- for (int i = 0; i < unseqLevelNum - 1; i++) {
+ } else {
if (unSequenceTsFileResources.containsKey(timePartitionId)) {
- if (unSequenceTsFileResources.get(timePartitionId).size() > i) {
- unSequenceTsFileResources.get(timePartitionId).get(i).removeAll(mergeTsFiles);
+ if (unSequenceTsFileResources.get(timePartitionId).size() > level) {
+ unSequenceTsFileResources.get(timePartitionId).get(level).removeAll(mergeTsFiles);
}
}
}
@@ -342,16 +341,20 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
.merge(targetTsFileResource, getTsFileList(isSeq), storageGroupName,
new CompactionLogger(storageGroupDir, storageGroupName), deviceSet, isSeq);
if (isSeq) {
- for (TreeSet<TsFileResource> currMergeFile : sequenceTsFileResources
- .get(timePartition)) {
- deleteLevelFilesInDisk(currMergeFile);
- deleteLevelFilesInList(timePartition, currMergeFile);
+ for (int level = 0; level < sequenceTsFileResources.get(timePartition).size();
+ level++) {
+ TreeSet<TsFileResource> currLevelMergeFile = sequenceTsFileResources
+ .get(timePartition).get(level);
+ deleteLevelFilesInDisk(currLevelMergeFile);
+ deleteLevelFilesInList(timePartition, currLevelMergeFile, level, isSeq);
}
} else {
- for (List<TsFileResource> currMergeFile : unSequenceTsFileResources
- .get(timePartition)) {
- deleteLevelFilesInDisk(currMergeFile);
- deleteLevelFilesInList(timePartition, currMergeFile);
+ for (int level = 0; level < unSequenceTsFileResources.get(timePartition).size();
+ level++) {
+ TreeSet<TsFileResource> currLevelMergeFile = sequenceTsFileResources
+ .get(timePartition).get(level);
+ deleteLevelFilesInDisk(currLevelMergeFile);
+ deleteLevelFilesInList(timePartition, currLevelMergeFile, level, isSeq);
}
}
}
@@ -378,14 +381,14 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
.merge(targetResource, sourceTsFileResources, storageGroupName,
new CompactionLogger(storageGroupDir, storageGroupName), deviceSet, true);
deleteLevelFilesInDisk(sourceTsFileResources);
- deleteLevelFilesInList(timePartition, sourceTsFileResources);
+ deleteLevelFilesInList(timePartition, sourceTsFileResources, level, isSeq);
sequenceTsFileResources.get(timePartition).get(level + 1).add(targetResource);
} else {
CompactionUtils
.merge(targetResource, sourceTsFileResources, storageGroupName,
new CompactionLogger(storageGroupDir, storageGroupName), deviceSet, false);
deleteLevelFilesInDisk(sourceTsFileResources);
- deleteLevelFilesInList(timePartition, sourceTsFileResources);
+ deleteLevelFilesInList(timePartition, sourceTsFileResources, level, isSeq);
unSequenceTsFileResources.get(timePartition).get(level + 1).add(targetResource);
}
}
@@ -507,7 +510,7 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
} else {
unSequenceTsFileResources.get(timePartition).get(i + 1).add(newResource);
}
- deleteLevelFilesInList(timePartition, toMergeTsFiles);
+ deleteLevelFilesInList(timePartition, toMergeTsFiles, i, sequence);
if (mergeResources.size() > i + 1) {
mergeResources.get(i + 1).add(newResource);
}