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 1448699284e Pipe: support parameter 
extractor.history.sloppy-time-range to improve historical data processing 
efficiency (#11387)
1448699284e is described below

commit 1448699284ef7fe04c48c5c05841aabaf80e642e
Author: Steve Yurong Su <[email protected]>
AuthorDate: Wed Oct 25 16:22:16 2023 +0800

    Pipe: support parameter extractor.history.sloppy-time-range to improve 
historical data processing efficiency (#11387)
---
 .../iotdb/db/pipe/config/constant/PipeExtractorConstant.java       | 2 ++
 .../historical/PipeHistoricalDataRegionTsFileExtractor.java        | 7 ++++++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/config/constant/PipeExtractorConstant.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/config/constant/PipeExtractorConstant.java
index 6a7c095c148..b4be2ed34b9 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/config/constant/PipeExtractorConstant.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/config/constant/PipeExtractorConstant.java
@@ -33,6 +33,8 @@ public class PipeExtractorConstant {
   public static final String EXTRACTOR_HISTORY_ENABLE_KEY = 
"extractor.history.enable";
   public static final String EXTRACTOR_HISTORY_START_TIME = 
"extractor.history.start-time";
   public static final String EXTRACTOR_HISTORY_END_TIME = 
"extractor.history.end-time";
+  public static final String EXTRACTOR_HISTORY_SLOPPY_TIME_RANGE =
+      "extractor.history.sloppy-time-range";
 
   public static final String EXTRACTOR_REALTIME_ENABLE = 
"extractor.realtime.enable";
   public static final String EXTRACTOR_REALTIME_MODE = 
"extractor.realtime.mode";
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/historical/PipeHistoricalDataRegionTsFileExtractor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/historical/PipeHistoricalDataRegionTsFileExtractor.java
index b250436622e..1a704b44722 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/historical/PipeHistoricalDataRegionTsFileExtractor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/extractor/historical/PipeHistoricalDataRegionTsFileExtractor.java
@@ -50,6 +50,7 @@ import java.util.stream.Collectors;
 
 import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_HISTORY_ENABLE_KEY;
 import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_HISTORY_END_TIME;
+import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_HISTORY_SLOPPY_TIME_RANGE;
 import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_HISTORY_START_TIME;
 import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_PATTERN_DEFAULT_VALUE;
 import static 
org.apache.iotdb.db.pipe.config.constant.PipeExtractorConstant.EXTRACTOR_PATTERN_KEY;
@@ -74,6 +75,8 @@ public class PipeHistoricalDataRegionTsFileExtractor 
implements PipeHistoricalDa
 
   private long historicalDataExtractionTimeLowerBound; // Arrival time
 
+  private boolean sloppyTimeRange; // true to disable time range filter after 
extraction
+
   private Queue<TsFileResource> pendingQueue;
 
   @Override
@@ -151,6 +154,8 @@ public class PipeHistoricalDataRegionTsFileExtractor 
implements PipeHistoricalDa
         }
       }
     }
+
+    sloppyTimeRange = 
parameters.getBooleanOrDefault(EXTRACTOR_HISTORY_SLOPPY_TIME_RANGE, false);
   }
 
   private void flushDataRegionAllTsFiles() {
@@ -289,7 +294,7 @@ public class PipeHistoricalDataRegionTsFileExtractor 
implements PipeHistoricalDa
             pattern,
             historicalDataExtractionStartTime,
             historicalDataExtractionEndTime,
-            !isTsFileResourceCoveredByTimeRange(resource));
+            !sloppyTimeRange && !isTsFileResourceCoveredByTimeRange(resource));
     
event.increaseReferenceCount(PipeHistoricalDataRegionTsFileExtractor.class.getName());
     try {
       PipeResourceManager.tsfile().unpinTsFileResource(resource);

Reply via email to