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/11/18 12:17:43 UTC

[iotdb] branch rel/0.11 updated: fix level compaction recover file not exist bug (#2067)

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 7dca3fe  fix level compaction recover file not exist bug (#2067)
7dca3fe is described below

commit 7dca3fe26dbffa4e2ad6a6f7b2a489ee6c43a737
Author: zhanglingzhe0820 <44...@qq.com>
AuthorDate: Wed Nov 18 20:10:06 2020 +0800

    fix level compaction recover file not exist bug (#2067)
    
    (cherry picked from commit 50b6b79fd76d8acdda5e5d0d451e255f5c17e07f)
---
 .../level/LevelCompactionTsFileManagement.java         | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 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 3cb747e..a6abaa1 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
@@ -459,15 +459,15 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
     long startTimeMillis = System.currentTimeMillis();
     try {
       logger.info("{} start to filter compaction condition", storageGroupName);
-      CompactionLogger compactionLogger = new CompactionLogger(storageGroupDir,
-          storageGroupName);
       for (int i = 0; i < currMaxLevel - 1; i++) {
         if (currMaxFileNumInEachLevel <= mergeResources.get(i).size()) {
-          //level is numbered from 0
+          // level is numbered from 0
           if (enableUnseqCompaction && !sequence && i == currMaxLevel - 2) {
             // do not merge current unseq file level to upper level and just merge all of them to seq file
             merge(isForceFullMerge, getTsFileList(true), mergeResources.get(i), Long.MAX_VALUE);
           } else {
+            CompactionLogger compactionLogger = new CompactionLogger(storageGroupDir,
+                storageGroupName);
             for (TsFileResource mergeResource : mergeResources.get(i)) {
               compactionLogger.logFile(SOURCE_NAME, mergeResource.getTsFile());
             }
@@ -505,15 +505,15 @@ public class LevelCompactionTsFileManagement extends TsFileManagement {
             } finally {
               writeUnlock();
             }
+            compactionLogger.close();
+            File logFile = FSFactoryProducer.getFSFactory()
+                .getFile(storageGroupDir, storageGroupName + COMPACTION_LOG_NAME);
+            if (logFile.exists()) {
+              Files.delete(logFile.toPath());
+            }
           }
         }
       }
-      compactionLogger.close();
-      File logFile = FSFactoryProducer.getFSFactory()
-          .getFile(storageGroupDir, storageGroupName + COMPACTION_LOG_NAME);
-      if (logFile.exists()) {
-        Files.delete(logFile.toPath());
-      }
     } catch (Exception e) {
       logger.error("Error occurred in Compaction Merge thread", e);
     } finally {