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

jackietien pushed a commit to branch ty/expOpt
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e49b847ea2d3ce9f2d8dc777dc88c3c6fc156cc9
Author: JackieTien97 <[email protected]>
AuthorDate: Sat Mar 23 16:32:59 2024 +0800

    Cache IDeviceId
---
 .../execution/operator/source/SeriesScanUtil.java    | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
index 7f4a98c8ddc..f8fcea4621c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/source/SeriesScanUtil.java
@@ -33,6 +33,7 @@ import 
org.apache.iotdb.db.storageengine.dataregion.read.reader.common.PriorityM
 import org.apache.iotdb.db.storageengine.dataregion.tsfile.TsFileResource;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata;
+import org.apache.iotdb.tsfile.file.metadata.IDeviceID;
 import org.apache.iotdb.tsfile.file.metadata.IMetadata;
 import org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
@@ -68,6 +69,8 @@ public class SeriesScanUtil {
 
   // The path of the target series which will be scanned.
   protected final PartialPath seriesPath;
+
+  private final IDeviceID deviceID;
   protected boolean isAligned = false;
   private final TSDataType dataType;
 
@@ -113,6 +116,7 @@ public class SeriesScanUtil {
       SeriesScanOptions scanOptions,
       FragmentInstanceContext context) {
     this.seriesPath = seriesPath;
+    this.deviceID = seriesPath.getIDeviceID();
     this.dataType = seriesPath.getSeriesType();
 
     this.scanOptions = scanOptions;
@@ -1303,7 +1307,7 @@ public class SeriesScanUtil {
     @SuppressWarnings("squid:S3740")
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getEndTime(seriesPath.getIDeviceID());
+      return fileResource.getEndTime(deviceID);
     }
 
     @SuppressWarnings("squid:S3740")
@@ -1326,7 +1330,7 @@ public class SeriesScanUtil {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time <= right.getEndTime(seriesPath.getIDeviceID());
+      return time <= right.getEndTime(deviceID);
     }
 
     @Override
@@ -1369,7 +1373,7 @@ public class SeriesScanUtil {
         TsFileResource tsFileResource = 
dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getIDeviceID(), scanOptions.getGlobalTimeFilter(), 
true, false)) {
+                deviceID, scanOptions.getGlobalTimeFilter(), true, false)) {
           break;
         }
         curSeqFileIndex--;
@@ -1383,7 +1387,7 @@ public class SeriesScanUtil {
         TsFileResource tsFileResource = 
dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getIDeviceID(), scanOptions.getGlobalTimeFilter(), 
false, false)) {
+                deviceID, scanOptions.getGlobalTimeFilter(), false, false)) {
           break;
         }
         curUnseqFileIndex++;
@@ -1426,7 +1430,7 @@ public class SeriesScanUtil {
     @SuppressWarnings("squid:S3740")
     @Override
     public long getOrderTime(TsFileResource fileResource) {
-      return fileResource.getStartTime(seriesPath.getIDeviceID());
+      return fileResource.getStartTime(deviceID);
     }
 
     @SuppressWarnings("squid:S3740")
@@ -1449,7 +1453,7 @@ public class SeriesScanUtil {
 
     @Override
     public boolean isOverlapped(long time, TsFileResource right) {
-      return time >= right.getStartTime(seriesPath.getIDeviceID());
+      return time >= right.getStartTime(deviceID);
     }
 
     @Override
@@ -1492,7 +1496,7 @@ public class SeriesScanUtil {
         TsFileResource tsFileResource = 
dataSource.getSeqResourceByIndex(curSeqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getIDeviceID(), scanOptions.getGlobalTimeFilter(), 
true, false)) {
+                deviceID, scanOptions.getGlobalTimeFilter(), true, false)) {
           break;
         }
         curSeqFileIndex++;
@@ -1506,7 +1510,7 @@ public class SeriesScanUtil {
         TsFileResource tsFileResource = 
dataSource.getUnseqResourceByIndex(curUnseqFileIndex);
         if (tsFileResource != null
             && tsFileResource.isSatisfied(
-                seriesPath.getIDeviceID(), scanOptions.getGlobalTimeFilter(), 
false, false)) {
+                deviceID, scanOptions.getGlobalTimeFilter(), false, false)) {
           break;
         }
         curUnseqFileIndex++;

Reply via email to