You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by le...@apache.org on 2024/02/05 08:26:46 UTC
(iotdb) 26/30: fix
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 d90b9900ae2938239865da99f305db9ba92c2d6e
Author: Lei Rui <10...@qq.com>
AuthorDate: Sat Feb 3 16:02:10 2024 +0800
fix
---
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 4 +-
.../groupby/LocalGroupByExecutorTri_ILTS.java | 44 +++++++++++-----------
2 files changed, 25 insertions(+), 23 deletions(-)
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 ee121e18ed6..4d3cc624750 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
@@ -433,7 +433,7 @@ public class IoTDBConfig {
private boolean enableCPV = false;
- private String enableTri = "MinMax"; // MinMax, MinMaxLTTB, M4, LTTB, ILTS
+ private String enableTri = "ILTS"; // MinMax, MinMaxLTTB, M4, LTTB, ILTS
private long p1t;
private double p1v;
@@ -450,7 +450,7 @@ public class IoTDBConfig {
this.numIterations = numIterations;
}
- private int numIterations = 4;
+ private int numIterations = 2;
public boolean isAcc_avg() {
return acc_avg;
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 dfac9d21a81..25a9ccc6f71 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,14 +19,6 @@
package org.apache.iotdb.db.query.dataset.groupby;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.BitSet;
-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;
@@ -51,9 +43,19 @@ 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.BitSet;
+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 +240,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();
@@ -300,18 +302,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++) {
@@ -598,8 +600,8 @@ public class LocalGroupByExecutorTri_ILTS implements GroupByExecutor {
}
// from right to left
IOMonitor2.DCP_D_getAllSatisfiedPageData_traversedPointNum++;
- reverseBitSetIdx = reverseBitSet.nextSetBit(
- reverseBitSetIdx + 1); // note this! use reverseBitSet!!
+ reverseBitSetIdx =
+ reverseBitSet.nextSetBit(reverseBitSetIdx + 1); // note this! use reverseBitSet!!
if (reverseBitSetIdx != -1) {
t = pageReader.timeBuffer.getLong((count - reverseBitSetIdx - 1) * 8);
v =