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);
               }