This is an automated email from the ASF dual-hosted git repository. leirui pushed a commit to branch research/M4-visualization in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 89c9cb7cb11ad386af8810136feaaf0723387c2a Author: Lei Rui <[email protected]> AuthorDate: Thu Jul 6 15:13:08 2023 +0800 add metric --- .../iotdb/tsfile/read/common/ChunkSuit4CPV.java | 26 ++++++++++---------- .../iotdb/tsfile/read/common/IOMonitor2.java | 28 ++++++++++++++++------ .../iotdb/tsfile/read/reader/page/PageReader.java | 23 +++++++++--------- 3 files changed, 45 insertions(+), 32 deletions(-) diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/ChunkSuit4CPV.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/ChunkSuit4CPV.java index 18d61065299..e0de93e5079 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/ChunkSuit4CPV.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/ChunkSuit4CPV.java @@ -262,18 +262,18 @@ public class ChunkSuit4CPV { while (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } } else if (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { while (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { estimatedPos--; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } if (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } // else equal } // else equal this.startPos = estimatedPos; // note this @@ -316,7 +316,7 @@ public class ChunkSuit4CPV { while (pageReader.timeBuffer.remaining() > 0) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; long t = pageReader.timeBuffer.getLong(); if (t >= targetTimestamp) { break; @@ -379,18 +379,18 @@ public class ChunkSuit4CPV { while (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { estimatedPos--; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } } else if (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { while (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } if (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { estimatedPos--; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } // else equal } // else equal this.endPos = estimatedPos; // note this @@ -433,7 +433,7 @@ public class ChunkSuit4CPV { while (pageReader.timeBuffer.remaining() > 0) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; long t = pageReader.timeBuffer.getLong(); if (t >= targetTimestamp) { break; @@ -441,7 +441,7 @@ public class ChunkSuit4CPV { } if (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; estimatedPos--; } // else equals no need to minus 1 @@ -502,18 +502,18 @@ public class ChunkSuit4CPV { while (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { estimatedPos--; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } } else if (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { while (pageReader.timeBuffer.getLong(estimatedPos * 8) < targetTimestamp) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } if (pageReader.timeBuffer.getLong(estimatedPos * 8) > targetTimestamp) { estimatedPos--; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } // else equal } // else equal @@ -532,7 +532,7 @@ public class ChunkSuit4CPV { if (!flag) { estimatedPos++; // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_timeIndex_traversedPointNum++; } long t = pageReader.timeBuffer.getLong(); if (t >= targetTimestamp) { diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/IOMonitor2.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/IOMonitor2.java index 44f5084c5da..e2bececf2c6 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/IOMonitor2.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/IOMonitor2.java @@ -98,11 +98,8 @@ public class IOMonitor2 { public static int DCP_C_DESERIALIZE_PAGEHEADER_DECOMPRESS_PAGEDATA_count = 0; // level 4 public static long DCP_C_DESERIALIZE_PAGEHEADER_DECOMPRESS_PAGEDATA_ns = 0; // level 4 - - public static long DCP_D_traversedPointNum = 0; // level 4 public static int DCP_D_DECODE_PAGEDATA_TRAVERSE_POINTS_count = 0; // level 4 public static long DCP_D_DECODE_PAGEDATA_TRAVERSE_POINTS_ns = 0; // level 4 - public static int SEARCH_ARRAY_a_verifBPTP_count = 0; // level 4 public static long SEARCH_ARRAY_a_verifBPTP_ns = 0; // level 4 @@ -115,6 +112,10 @@ public class IOMonitor2 { public static int SEARCH_ARRAY_c_genBPTP_count = 0; // level 4 public static long SEARCH_ARRAY_c_genBPTP_ns = 0; // level 4 + public static long DCP_D_getAllSatisfiedPageData_traversedPointNum = 0; // level 5 + public static long DCP_D_timeIndex_traversedPointNum = 0; // level 5 + public static long DCP_D_valueIndex_traversedPointNum = 0; // level 5 + public static Operation M4_LSM_status = null; // for counting the number of calling BCD by each step of M4-LSM public static int M4_LSM_merge_M4_time_span_B_READ_MEM_CHUNK_cnt = 0; // map from level 3 to 4 @@ -195,8 +196,6 @@ public class IOMonitor2 { DCP_C_DESERIALIZE_PAGEHEADER_DECOMPRESS_PAGEDATA_count = 0; DCP_C_DESERIALIZE_PAGEHEADER_DECOMPRESS_PAGEDATA_ns = 0; - DCP_D_traversedPointNum = 0; - DCP_D_DECODE_PAGEDATA_TRAVERSE_POINTS_count = 0; DCP_D_DECODE_PAGEDATA_TRAVERSE_POINTS_ns = 0; @@ -209,6 +208,11 @@ public class IOMonitor2 { SEARCH_ARRAY_c_genBPTP_count = 0; SEARCH_ARRAY_c_genBPTP_ns = 0; + /** level 5 */ + DCP_D_getAllSatisfiedPageData_traversedPointNum = 0; + DCP_D_timeIndex_traversedPointNum = 0; + DCP_D_valueIndex_traversedPointNum = 0; + /** map from level 3 to level 4 */ M4_LSM_status = null; M4_LSM_merge_M4_time_span_B_READ_MEM_CHUNK_cnt = @@ -593,9 +597,19 @@ public class IOMonitor2 { .append(SEARCH_ARRAY_c_genBPTP_count) .append("\n"); stringBuilder - .append("[4-cnt]DCP_D_traversedPointNum") + .append("[5-cnt]DCP_D_getAllSatisfiedPageData_traversedPointNum") + .append(",") + .append(DCP_D_getAllSatisfiedPageData_traversedPointNum) + .append("\n"); + stringBuilder + .append("[5-cnt]DCP_D_timeIndex_traversedPointNum") + .append(",") + .append(DCP_D_timeIndex_traversedPointNum) + .append("\n"); + stringBuilder + .append("[5-cnt]DCP_D_valueIndex_traversedPointNum") .append(",") - .append(DCP_D_traversedPointNum) + .append(DCP_D_valueIndex_traversedPointNum) .append("\n"); stringBuilder diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java index 27dac52c0b4..6c63f57282b 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java @@ -179,7 +179,7 @@ public class PageReader implements IPageReader { double foundValue = 0; // iterate SDT points from value big to small to find the first point not deleted for (int n = valueIndex.sortedModelPoints.size() - 1; n >= 0; n--) { // NOTE from big to small - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO ValuePoint valuePoint = valueIndex.sortedModelPoints.get(n); int idx = valuePoint.index; // index starting from 1 int pos = idx - 1; // pos starting from 0 @@ -232,7 +232,7 @@ public class PageReader implements IPageReader { while (localCursor < valueIndex.modelPointIdx_list.size() && (idx1 = valueIndex.modelPointIdx_list.get(localCursor - 1)) - 1 <= chunkSuit4CPV.endPos) { - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO idx2 = valueIndex.modelPointIdx_list.get(localCursor); double v1_UB = valueIndex.modelPointVal_list.get(localCursor - 1) + valueIndex.errorBound; double v2_UB = valueIndex.modelPointVal_list.get(localCursor) + valueIndex.errorBound; @@ -310,7 +310,7 @@ public class PageReader implements IPageReader { for (int j = search_interval_start; j <= search_interval_end; j++) { // idx starting from 1 - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO double v = valueBuffer.getDouble(timeBufferLength + (j - 1) * 8); // pos starting from 0 long t = timeBuffer.getLong((j - 1) * 8); // pos starting from 0 if (v > candidateTPvalue && !isDeleted_NoHistoryDeleteCursor(t)) { @@ -327,7 +327,7 @@ public class PageReader implements IPageReader { int search_interval_start = prune_intervals_end.get(i) + 1; // included int search_interval_end = prune_intervals_start.get(i) - 1; // included for (int j = search_interval_start; j <= search_interval_end; j++) { // starting from 1 - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO long v = valueBuffer.getLong(timeBufferLength + (j - 1) * 8); long t = timeBuffer.getLong((j - 1) * 8); if (v > candidateTPvalue && !isDeleted_NoHistoryDeleteCursor(t)) { @@ -358,7 +358,7 @@ public class PageReader implements IPageReader { double foundValue = 0; // iterate SDT points from value small to big to find the first point not deleted for (int n = 0; n < valueIndex.sortedModelPoints.size(); n++) { // NOTE from small to big - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO ValuePoint valuePoint = valueIndex.sortedModelPoints.get(n); int idx = valuePoint.index; // index starting from 1 int pos = idx - 1; // pos starting from 0 @@ -390,7 +390,7 @@ public class PageReader implements IPageReader { // time span while ((idx2 = valueIndex.modelPointIdx_list.get(chunkSuit4CPV.modelPointsCursor)) - 1 < chunkSuit4CPV.startPos) { - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO // -1 because idx starting from 1 while pos starting from 0 chunkSuit4CPV.modelPointsCursor++; // pointing to the right end of the first model segment that passes the left endpoint of the @@ -412,7 +412,7 @@ public class PageReader implements IPageReader { while (localCursor < valueIndex.modelPointIdx_list.size() && (idx1 = valueIndex.modelPointIdx_list.get(localCursor - 1)) - 1 <= chunkSuit4CPV.endPos) { - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO idx2 = valueIndex.modelPointIdx_list.get(localCursor); double v1_LB = valueIndex.modelPointVal_list.get(localCursor - 1) - valueIndex.errorBound; double v2_LB = valueIndex.modelPointVal_list.get(localCursor) - valueIndex.errorBound; @@ -490,7 +490,7 @@ public class PageReader implements IPageReader { for (int j = search_interval_start; j <= search_interval_end; j++) { // idx starting from 1 - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO double v = valueBuffer.getDouble(timeBufferLength + (j - 1) * 8); // pos starting from 0 long t = timeBuffer.getLong((j - 1) * 8); // pos starting from 0 if (v < candidateBPvalue && !isDeleted_NoHistoryDeleteCursor(t)) { @@ -507,7 +507,7 @@ public class PageReader implements IPageReader { int search_interval_start = prune_intervals_end.get(i) + 1; // included int search_interval_end = prune_intervals_start.get(i) - 1; // included for (int j = search_interval_start; j <= search_interval_end; j++) { // starting from 1 - IOMonitor2.DCP_D_traversedPointNum++; // TODO + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; // TODO long v = valueBuffer.getLong(timeBufferLength + (j - 1) * 8); long t = timeBuffer.getLong((j - 1) * 8); if (v < candidateBPvalue && !isDeleted_NoHistoryDeleteCursor(t)) { @@ -547,7 +547,7 @@ public class PageReader implements IPageReader { int count = 0; // update here, not in statistics for (int pos = chunkSuit4CPV.startPos; pos <= chunkSuit4CPV.endPos; pos++) { // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_valueIndex_traversedPointNum++; long timestamp = timeBuffer.getLong(pos * 8); switch (dataType) { case INT64: @@ -603,8 +603,7 @@ public class PageReader implements IPageReader { BatchData pageData = BatchDataFactory.createBatchData(dataType, ascending, false); while (timeDecoder.hasNext(timeBuffer)) { - // IOMonitor.incPointsTravered(); - IOMonitor2.DCP_D_traversedPointNum++; + IOMonitor2.DCP_D_getAllSatisfiedPageData_traversedPointNum++; long timestamp = timeDecoder.readLong(timeBuffer); switch (dataType) { case BOOLEAN:
