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; } }
