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

justinchen 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 31a07eaeb60 Pipe: Trimmed the unnecessary device getting for 
historical tsFiles (#17036)
31a07eaeb60 is described below

commit 31a07eaeb601d5b6ca4d21c0906d47af2b479f6e
Author: Caideyipi <[email protected]>
AuthorDate: Mon Jan 19 17:55:58 2026 +0800

    Pipe: Trimmed the unnecessary device getting for historical tsFiles (#17036)
---
 ...HistoricalDataRegionTsFileAndDeletionSource.java | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java
index 3112c3220fe..e71e4ed3819 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/source/dataregion/historical/PipeHistoricalDataRegionTsFileAndDeletionSource.java
@@ -72,6 +72,7 @@ import java.io.IOException;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -579,9 +580,11 @@ public class 
PipeHistoricalDataRegionTsFileAndDeletionSource
                   Collectors.toMap(
                       Function.identity(),
                       resource ->
-                          resource.getDevices().stream()
-                              .map(IDeviceID::getTableName)
-                              .collect(Collectors.toSet())));
+                          isModelDetected && isTableModel
+                              ? resource.getDevices().stream()
+                                  .map(IDeviceID::getTableName)
+                                  .collect(Collectors.toSet())
+                              : Collections.emptySet()));
       
filteredTsFileResources2TableNames.putAll(sequenceTsFileResources2TableNames);
 
       final Map<TsFileResource, Set<String>> 
unSequenceTsFileResources2TableNames =
@@ -610,9 +613,11 @@ public class 
PipeHistoricalDataRegionTsFileAndDeletionSource
                   Collectors.toMap(
                       Function.identity(),
                       resource ->
-                          resource.getDevices().stream()
-                              .map(IDeviceID::getTableName)
-                              .collect(Collectors.toSet())));
+                          isModelDetected && isTableModel
+                              ? resource.getDevices().stream()
+                                  .map(IDeviceID::getTableName)
+                                  .collect(Collectors.toSet())
+                              : Collections.emptySet()));
       
filteredTsFileResources2TableNames.putAll(unSequenceTsFileResources2TableNames);
 
       filteredTsFileResources2TableNames
@@ -683,6 +688,10 @@ public class 
PipeHistoricalDataRegionTsFileAndDeletionSource
   }
 
   private boolean mayTsFileResourceOverlappedWithPattern(final TsFileResource 
resource) {
+    // Trimming to avoid unnecessary file device getter
+    if (isDbNameCoveredByPattern) {
+      return true;
+    }
     final Set<IDeviceID> deviceSet;
     try {
       final Map<IDeviceID, Boolean> deviceIsAlignedMap =

Reply via email to