Skip to content

Commit 2bd8500

Browse files
authored
[To rel/0.12][IOTDB-2642] Fix the new file has a higher compact priority than the old file in unseq compaction (#5156)
1 parent 7356468 commit 2bd8500

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ private void continueFailedRenames(File fileFolder, String suffix) {
673673

674674
private void recoverTsFiles(List<TsFileResource> tsFiles, boolean isSeq) throws IOException {
675675
boolean needsCheckTsFile = true;
676+
List<TsFileResource> resourcesToBeInserted = new ArrayList<>();
676677
for (int i = tsFiles.size() - 1; i >= 0; i--) {
677678
TsFileResource tsFileResource = tsFiles.get(i);
678679
long timePartitionId = tsFileResource.getTimePartition();
@@ -694,7 +695,7 @@ private void recoverTsFiles(List<TsFileResource> tsFiles, boolean isSeq) throws
694695
writer =
695696
recoverPerformer.recover(false, this::getWalDirectByteBuffer, this::releaseWalBuffer);
696697
tsFileResource.setClosed(true);
697-
tsFileManagement.add(tsFileResource, isSeq);
698+
resourcesToBeInserted.add(tsFileResource);
698699
continue;
699700
} else {
700701
writer =
@@ -769,7 +770,10 @@ private void recoverTsFiles(List<TsFileResource> tsFiles, boolean isSeq) throws
769770
tsFileProcessor.getTsFileProcessorInfo().addTSPMemCost(chunkMetadataSize);
770771
}
771772
}
772-
tsFileManagement.add(tsFileResource, isSeq);
773+
resourcesToBeInserted.add(tsFileResource);
774+
}
775+
for (int i = resourcesToBeInserted.size() - 1; i >= 0; --i) {
776+
tsFileManagement.add(resourcesToBeInserted.get(i), isSeq);
773777
}
774778
}
775779

0 commit comments

Comments
 (0)