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

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


The following commit(s) were added to refs/heads/master by this push:
     new d72335967c4 [IOTDB-5933] Pipe: update progress index after compaction 
(#9970)
d72335967c4 is described below

commit d72335967c497b45df052b9d5eea679ee345dadb
Author: 周沛辰 <[email protected]>
AuthorDate: Mon May 29 20:54:51 2023 +0800

    [IOTDB-5933] Pipe: update progress index after compaction (#9970)
---
 .../execute/performer/impl/FastCompactionPerformer.java |  7 +------
 .../execute/task/CrossSpaceCompactionTask.java          |  2 ++
 .../execute/task/InnerSpaceCompactionTask.java          |  2 ++
 .../compaction/execute/utils/CompactionUtils.java       | 17 +++++++++++++++--
 ...sSpaceCompactionWithFastPerformerValidationTest.java |  4 +---
 .../compaction/utils/MultiTsFileDeviceIteratorTest.java |  8 ++------
 6 files changed, 23 insertions(+), 17 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
index 3319594effa..37f7b2f0c1e 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
@@ -20,7 +20,6 @@ package 
org.apache.iotdb.db.engine.compaction.execute.performer.impl;
 
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
-import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import 
org.apache.iotdb.db.engine.compaction.execute.performer.ICrossCompactionPerformer;
 import 
org.apache.iotdb.db.engine.compaction.execute.performer.ISeqCompactionPerformer;
@@ -36,7 +35,6 @@ import 
org.apache.iotdb.db.engine.compaction.execute.utils.writer.FastInnerCompa
 import org.apache.iotdb.db.engine.compaction.schedule.CompactionTaskManager;
 import org.apache.iotdb.db.engine.modification.Modification;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
-import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.WriteProcessException;
 import org.apache.iotdb.tsfile.exception.write.PageException;
 import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
@@ -100,8 +98,7 @@ public class FastCompactionPerformer
   }
 
   @Override
-  public void perform()
-      throws IOException, MetadataException, StorageEngineException, 
InterruptedException {
+  public void perform() throws Exception {
     this.subTaskSummary.setTemporalFileNum(targetFiles.size());
     try (MultiTsFileDeviceIterator deviceIterator =
             new MultiTsFileDeviceIterator(seqFiles, unseqFiles, 
readerCacheMap);
@@ -140,8 +137,6 @@ public class FastCompactionPerformer
       }
       compactionWriter.endFile();
       CompactionUtils.updatePlanIndexes(targetFiles, seqFiles, unseqFiles);
-    } catch (Exception e) {
-      throw new RuntimeException(e);
     } finally {
       // readers of source files have been closed in MultiTsFileDeviceIterator
       // clean cache
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
index 506ddbc4997..b6c18d3a487 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
@@ -155,6 +155,8 @@ public class CrossSpaceCompactionTask extends 
AbstractCompactionTask {
         performer.setSummary(summary);
         performer.perform();
 
+        CompactionUtils.updateProgressIndex(
+            targetTsfileResourceList, selectedSequenceFiles, 
selectedUnsequenceFiles);
         CompactionUtils.moveTargetFile(
             targetTsfileResourceList, false, storageGroupName + "-" + 
dataRegionId);
         CompactionUtils.combineModsInCrossCompaction(
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
index b212be69f8c..8de1947e210 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
@@ -150,6 +150,8 @@ public class InnerSpaceCompactionTask extends 
AbstractCompactionTask {
         performer.setSummary(summary);
         performer.perform();
 
+        CompactionUtils.updateProgressIndex(
+            targetTsFileList, selectedTsFileResourceList, 
Collections.emptyList());
         CompactionUtils.moveTargetFile(
             targetTsFileList, true, storageGroupName + "-" + dataRegionId);
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/CompactionUtils.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/CompactionUtils.java
index 5e873bea69f..a891e332e6b 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/CompactionUtils.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/CompactionUtils.java
@@ -234,6 +234,20 @@ public class CompactionUtils {
     }
   }
 
+  public static void updateProgressIndex(
+      List<TsFileResource> targetResources,
+      List<TsFileResource> seqResources,
+      List<TsFileResource> unseqResources) {
+    for (TsFileResource targetResource : targetResources) {
+      for (TsFileResource unseqResource : unseqResources) {
+        
targetResource.updateProgressIndex(unseqResource.getMaxProgressIndexAfterClose());
+      }
+      for (TsFileResource seqResource : seqResources) {
+        
targetResource.updateProgressIndex(seqResource.getMaxProgressIndexAfterClose());
+      }
+    }
+  }
+
   public static void updatePlanIndexes(
       List<TsFileResource> targetResources,
       List<TsFileResource> seqResources,
@@ -244,8 +258,7 @@ public class CompactionUtils {
     // however, since the data of unseq files are mixed together, we won't be 
able to know
     // which files are exactly contained in the new file, so we have to record 
all unseq files
     // in the new file
-    for (int i = 0; i < targetResources.size(); i++) {
-      TsFileResource targetResource = targetResources.get(i);
+    for (TsFileResource targetResource : targetResources) {
       for (TsFileResource unseqResource : unseqResources) {
         targetResource.updatePlanIndexes(unseqResource);
       }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
 
b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
index b2b1279cee3..e8fab937603 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionWithFastPerformerValidationTest.java
@@ -2124,9 +2124,7 @@ public class 
CrossSpaceCompactionWithFastPerformerValidationTest extends Abstrac
    * task.
    */
   @Test
-  public void testSelectingFilesWhenSomeFilesBeingDeleted()
-      throws MetadataException, IOException, WriteProcessException, 
StorageEngineException,
-          InterruptedException, MergeException {
+  public void testSelectingFilesWhenSomeFilesBeingDeleted() throws Exception {
     registerTimeseriesInMManger(5, 10, true);
     createFiles(5, 10, 5, 1000, 0, 0, 100, 100, false, true);
     createFiles(1, 5, 10, 4500, 500, 500, 0, 100, false, false);
diff --git 
a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
 
b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
index 440ec5a3296..7a38dea7999 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/MultiTsFileDeviceIteratorTest.java
@@ -917,9 +917,7 @@ public class MultiTsFileDeviceIteratorTest extends 
AbstractCompactionTest {
    * nonAligned property. Check whether the deviceID and its property can be 
obtained correctly.
    */
   @Test
-  public void getDeletedDevicesWithSameNameFromSeqFilesByFastPerformer()
-      throws MetadataException, IOException, WriteProcessException, 
StorageEngineException,
-          InterruptedException {
+  public void getDeletedDevicesWithSameNameFromSeqFilesByFastPerformer() 
throws Exception {
     TSFileDescriptor.getInstance().getConfig().setMaxDegreeOfIndexNode(3);
     int oldAlignedDeviceOffset = TsFileGeneratorUtils.alignDeviceOffset;
     TsFileGeneratorUtils.alignDeviceOffset = 0;
@@ -1064,9 +1062,7 @@ public class MultiTsFileDeviceIteratorTest extends 
AbstractCompactionTest {
    * aligned property. Check whether the deviceID and its property can be 
obtained correctly.
    */
   @Test
-  public void getDeletedDevicesWithSameNameFromSeqFilesByFastPerformer2()
-      throws MetadataException, IOException, WriteProcessException, 
StorageEngineException,
-          InterruptedException {
+  public void getDeletedDevicesWithSameNameFromSeqFilesByFastPerformer2() 
throws Exception {
     TSFileDescriptor.getInstance().getConfig().setMaxDegreeOfIndexNode(3);
     int oldAlignedDeviceOffset = TsFileGeneratorUtils.alignDeviceOffset;
     TsFileGeneratorUtils.alignDeviceOffset = 0;

Reply via email to