This is an automated email from the ASF dual-hosted git repository.

ejttianyu pushed a commit to branch debug_merge_bug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3a447ec9af80df0101cca8a17590ded85a8f41e6
Author: EJTTianyu <[email protected]>
AuthorDate: Fri Jan 22 19:21:50 2021 +0800

    add some print
---
 .../level/LevelCompactionTsFileManagement.java     | 34 +++++++++++++++++++++-
 .../engine/storagegroup/StorageGroupProcessor.java |  1 +
 2 files changed, 34 insertions(+), 1 deletion(-)

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 ec1ebdd..b76852f 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
@@ -216,6 +216,7 @@ public class LevelCompactionTsFileManagement extends 
TsFileManagement {
           sequenceTsFileResources
               .computeIfAbsent(timePartitionId, 
this::newSequenceTsFileResources).get(level)
               .add(tsFileResource);
+          System.out.println("add a resource: " + 
tsFileResource.getTsFile().getName());
         } else {
           // current file has too high level
           sequenceTsFileResources
@@ -465,7 +466,7 @@ public class LevelCompactionTsFileManagement extends 
TsFileManagement {
   @Override
   public void forkCurrentFileList(long timePartition) {
     synchronized (sequenceTsFileResources) {
-      forkTsFileList(
+      forkSeqTsFileList(
           forkedSequenceTsFileResources,
           sequenceTsFileResources.computeIfAbsent(timePartition, 
this::newSequenceTsFileResources),
           seqLevelNum, seqFileNumInEachLevel);
@@ -500,6 +501,31 @@ public class LevelCompactionTsFileManagement extends 
TsFileManagement {
     }
   }
 
+  private void forkSeqTsFileList(
+      List<List<TsFileResource>> forkedTsFileResources,
+      List rawTsFileResources, int currMaxLevel, int currFileNumInEachLevel) {
+    forkedTsFileResources.clear();
+    for (int i = 0; i < currMaxLevel - 1; i++) {
+      List<TsFileResource> forkedLevelTsFileResources = new ArrayList<>();
+      Collection<TsFileResource> levelRawTsFileResources = 
(Collection<TsFileResource>) rawTsFileResources
+          .get(i);
+      for (TsFileResource tsFileResource : levelRawTsFileResources) {
+        if (tsFileResource.isClosed()) {
+          forkedLevelTsFileResources.add(tsFileResource);
+          if (forkedLevelTsFileResources.size() > currFileNumInEachLevel) {
+            break;
+          }
+        }
+      }
+      forkedTsFileResources.add(forkedLevelTsFileResources);
+    }
+    System.out.println("---------");
+    for (TsFileResource tsFileResource : forkedTsFileResources.get(0)){
+      System.out.print("file fork" + tsFileResource.getTsFile().getName());
+    }
+    System.out.println("---------");
+  }
+
   @Override
   protected void merge(long timePartition) {
     merge(forkedSequenceTsFileResources, true, timePartition, seqLevelNum,
@@ -546,15 +572,21 @@ public class LevelCompactionTsFileManagement extends 
TsFileManagement {
             }
             File newLevelFile = 
createNewTsFileName(mergeResources.get(i).get(0).getTsFile(),
                 i + 1);
+            System.out.println("new file name" + newLevelFile.getName());
+            System.out.println("merge resource 0" + 
mergeResources.get(i).get(0));
+
             compactionLogger.logSequence(sequence);
             compactionLogger.logFile(TARGET_NAME, newLevelFile);
             List<TsFileResource> toMergeTsFiles = mergeResources.get(i);
             logger.info("{} [Compaction] merge level-{}'s {} TsFiles to next 
level",
                 storageGroupName, i, toMergeTsFiles.size());
+            System.out.println("merge files used");
             for (TsFileResource toMergeTsFile : toMergeTsFiles) {
               logger.info("{} [Compaction] start to merge TsFile {}", 
storageGroupName,
                   toMergeTsFile);
+              System.out.print("merge file:" + 
toMergeTsFile.getTsFile().getName());
             }
+            System.out.println("--------");
 
             TsFileResource newResource = new TsFileResource(newLevelFile);
             // merge, read from source files and write to target file
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 2e88108..931d185 100755
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1087,6 +1087,7 @@ public class StorageGroupProcessor {
         // build new processor
         TsFileProcessor newProcessor = createTsFileProcessor(sequence, 
timeRangeId);
         tsFileProcessorTreeMap.put(timeRangeId, newProcessor);
+        System.out.println("put a processor to the tree map:" + 
newProcessor.getTsFileResource().getTsFile().getName());
         tsFileManagement.add(newProcessor.getTsFileResource(), sequence);
         res = newProcessor;
       }

Reply via email to