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 65099ff4384bad3a773aa35452bf5831ceca9d9e
Author: Lei Rui <[email protected]>
AuthorDate: Fri Jul 7 10:00:24 2023 +0800

    fix metric
---
 .../iotdb/tsfile/read/common/ChunkSuit4CPV.java    |  1 -
 .../iotdb/tsfile/read/reader/page/PageReader.java  | 30 ++++++++++++++--------
 2 files changed, 19 insertions(+), 12 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 e0de93e5079..866ae9e513c 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
@@ -315,7 +315,6 @@ public class ChunkSuit4CPV {
       pageReader.valueBuffer.position(pageReader.timeBufferLength);
       while (pageReader.timeBuffer.remaining() > 0) {
         estimatedPos++;
-        //        IOMonitor.incPointsTravered();
         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/reader/page/PageReader.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/page/PageReader.java
index 6c63f57282b..2b56950bf8f 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
@@ -168,8 +168,8 @@ public class PageReader implements IPageReader {
   }
 
   public void updateTP_withValueIndex(ChunkSuit4CPV chunkSuit4CPV) {
-    long start = System.nanoTime();
     if (TSFileDescriptor.getInstance().getConfig().isUseValueIndex()) {
+      long start = System.nanoTime();
       // NOTE: get valueIndex from 
chunkSuit4CPV.getChunkMetadata().getStatistics(), not
       // chunkSuit4CPV.getStatistics()!
       ValueIndex valueIndex = 
chunkSuit4CPV.getChunkMetadata().getStatistics().valueIndex;
@@ -197,7 +197,9 @@ public class PageReader implements IPageReader {
       if (!isFound) { // unfortunately all sdt points are deleted
         // this includes the case that all points including model points are 
deleted,
         // which is handled by updateBPTP
-        updateBPTP(chunkSuit4CPV); // then fall back to baseline method
+        updateBPTP_withoutTimeMeasure(chunkSuit4CPV); // then fall back to 
baseline method
+        // time measured here, avoid counting twice
+        IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, 
System.nanoTime() - start);
         return;
       }
       double threshold_LB = foundValue - valueIndex.errorBound; // near max LB
@@ -340,15 +342,15 @@ public class PageReader implements IPageReader {
       } else {
         throw new UnSupportedDataTypeException(String.valueOf(dataType));
       }
-    } else {
+      IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, 
System.nanoTime() - start);
+    } else { // not use value index
       updateBPTP(chunkSuit4CPV);
     }
-    IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, System.nanoTime() 
- start);
   }
 
   public void updateBP_withValueIndex(ChunkSuit4CPV chunkSuit4CPV) {
-    long start = System.nanoTime();
     if (TSFileDescriptor.getInstance().getConfig().isUseValueIndex()) {
+      long start = System.nanoTime();
       // NOTE: get valueIndex from 
chunkSuit4CPV.getChunkMetadata().getStatistics(), not
       // chunkSuit4CPV.getStatistics()!
       ValueIndex valueIndex = 
chunkSuit4CPV.getChunkMetadata().getStatistics().valueIndex;
@@ -376,8 +378,10 @@ public class PageReader implements IPageReader {
       if (!isFound) { // unfortunately all sdt points are deleted
         // this includes the case that all points including model points are 
deleted,
         // which is handled by updateBPTP
-        updateBPTP(chunkSuit4CPV); // then fall back to baseline method
-        return;
+        updateBPTP_withoutTimeMeasure(chunkSuit4CPV); // then fall back to 
baseline method
+        // time measured here, avoid counting twice
+        IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, 
System.nanoTime() - start);
+        return; // note here
       }
       double threshold_UB = foundValue + valueIndex.errorBound; // near min UB
 
@@ -520,14 +524,13 @@ public class PageReader implements IPageReader {
       } else {
         throw new UnSupportedDataTypeException(String.valueOf(dataType));
       }
-    } else {
+      IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, 
System.nanoTime() - start);
+    } else { // not use value index
       updateBPTP(chunkSuit4CPV);
     }
-    IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, System.nanoTime() 
- start);
   }
 
-  public void updateBPTP(ChunkSuit4CPV chunkSuit4CPV) {
-    long start = System.nanoTime();
+  public void updateBPTP_withoutTimeMeasure(ChunkSuit4CPV chunkSuit4CPV) {
     deleteCursor = 0; // TODO DEBUG
     Statistics statistics = null;
     switch (dataType) {
@@ -592,6 +595,11 @@ public class PageReader implements IPageReader {
     } else {
       chunkSuit4CPV.statistics.setCount(0); // otherwise count won't be zero
     }
+  }
+
+  public void updateBPTP(ChunkSuit4CPV chunkSuit4CPV) {
+    long start = System.nanoTime();
+    updateBPTP_withoutTimeMeasure(chunkSuit4CPV);
     IOMonitor2.addMeasure(Operation.SEARCH_ARRAY_c_genBPTP, System.nanoTime() 
- start);
   }
 

Reply via email to