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

leirui pushed a commit to branch research/LTS-visualization
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 19d7c1a96618151cede01daa49a0b07ca7f949d1
Author: Lei Rui <[email protected]>
AuthorDate: Thu Feb 1 00:27:26 2024 +0800

    add
---
 .../resources/conf/iotdb-engine.properties         |  4 +--
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  2 +-
 .../groupby/LocalGroupByExecutorTri_ILTS.java      | 41 +++++++++++-----------
 3 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties 
b/server/src/assembly/resources/conf/iotdb-engine.properties
index 1e1306ddc67..5ab21cc46b5 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -34,9 +34,9 @@ pnv=100
 
 #for ILTS
 numIterations=4
-acc_avg=false
+acc_avg=true
 acc_rectangle=true
-acc_convex=false
+acc_convex=true
 acc_iterRepeat=true
 
 ####################
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 04eba688ecc..613ee79ce97 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -478,7 +478,7 @@ public class IoTDBConfig {
 
   private boolean acc_avg = true;
   private boolean acc_rectangle = true;
-  private boolean acc_convex = false;
+  private boolean acc_convex = true;
   private boolean acc_iterRepeat = true;
 
   public boolean isAcc_iterRepeat() {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_ILTS.java
 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_ILTS.java
index 12a8b9b9cbf..5e20c45fe9c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_ILTS.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/dataset/groupby/LocalGroupByExecutorTri_ILTS.java
@@ -19,6 +19,13 @@
 
 package org.apache.iotdb.db.query.dataset.groupby;
 
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
@@ -42,18 +49,9 @@ import org.apache.iotdb.tsfile.read.filter.GroupByFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.read.reader.page.PageReader;
 import org.apache.iotdb.tsfile.utils.Pair;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 public class LocalGroupByExecutorTri_ILTS implements GroupByExecutor {
 
   private static final IoTDBConfig CONFIG = 
IoTDBDescriptor.getInstance().getConfig();
@@ -238,7 +236,7 @@ public class LocalGroupByExecutorTri_ILTS implements 
GroupByExecutor {
                   // TODO 以后元数据可以增加sum of timestamps,目前就基于时间戳均匀间隔1的假设来处理
                   rt +=
                       (chunkSuit4Tri.chunkMetadata.getStartTime()
-                              + chunkSuit4Tri.chunkMetadata.getEndTime())
+                          + chunkSuit4Tri.chunkMetadata.getEndTime())
                           * 
chunkSuit4Tri.chunkMetadata.getStatistics().getCount()
                           / 2.0;
                   rv += 
chunkSuit4Tri.chunkMetadata.getStatistics().getSumDoubleValue();
@@ -299,18 +297,18 @@ public class LocalGroupByExecutorTri_ILTS implements 
GroupByExecutor {
           //   然后遍历如果这个chunk的非紧致上限<=当前已知的maxDistance,那么整个chunk都不用管了
           for (ChunkSuit4Tri chunkSuit4Tri : chunkSuit4TriList) {
             long[] rect_t =
-                new long[] {
-                  chunkSuit4Tri.chunkMetadata.getStartTime(), // FPt
-                  chunkSuit4Tri.chunkMetadata.getEndTime(), // LPt
-                  
chunkSuit4Tri.chunkMetadata.getStatistics().getBottomTimestamp(), // BPt
-                  
chunkSuit4Tri.chunkMetadata.getStatistics().getTopTimestamp() // TPt
+                new long[]{
+                    chunkSuit4Tri.chunkMetadata.getStartTime(), // FPt
+                    chunkSuit4Tri.chunkMetadata.getEndTime(), // LPt
+                    
chunkSuit4Tri.chunkMetadata.getStatistics().getBottomTimestamp(), // BPt
+                    
chunkSuit4Tri.chunkMetadata.getStatistics().getTopTimestamp() // TPt
                 };
             double[] rect_v =
-                new double[] {
-                  (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getFirstValue(), // FPv
-                  (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getLastValue(), // LPv
-                  (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getMinValue(), // BPv
-                  (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getMaxValue() // TPv
+                new double[]{
+                    (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getFirstValue(), // FPv
+                    (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getLastValue(), // LPv
+                    (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getMinValue(), // BPv
+                    (double) 
chunkSuit4Tri.chunkMetadata.getStatistics().getMaxValue() // TPv
                 };
             // 用落在桶内的元数据点(紧致下限)更新maxDistance&select_t&select_v
             for (int i = 0; i < 4; i++) {
@@ -398,6 +396,9 @@ public class LocalGroupByExecutorTri_ILTS implements 
GroupByExecutor {
 
                 // TODO 下面假装已经有凸包剪枝,先实验看看如果跳过一些点不用遍历有多少加速效果
                 if (CONFIG.isAcc_convex()) {
+                  if (chunkSuit4Tri.chunkMetadata.getEndTime() < 
localCurEndTime) {
+                    chunkSuit4Tri.pageReader = null;
+                  }
                   break;
                 }
               }

Reply via email to