You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2019/11/30 07:39:32 UTC

[incubator-iotdb] branch rel/0.9 updated: fix statistics batch (#593)

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

qiaojialin pushed a commit to branch rel/0.9
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/rel/0.9 by this push:
     new 4e310ea  fix statistics batch (#593)
4e310ea is described below

commit 4e310ea608c2e43d80fd5c4e982c927ba55c590d
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Sat Nov 30 15:39:25 2019 +0800

    fix statistics batch (#593)
---
 .../file/metadata/statistics/BinaryStatistics.java |  9 +++---
 .../metadata/statistics/BooleanStatistics.java     |  9 +++---
 .../file/metadata/statistics/DoubleStatistics.java | 10 +++---
 .../file/metadata/statistics/FloatStatistics.java  | 10 +++---
 .../metadata/statistics/IntegerStatistics.java     |  9 +++---
 .../file/metadata/statistics/LongStatistics.java   |  8 ++---
 .../file/metadata/statistics/NoStatistics.java     |  8 ++---
 .../file/metadata/statistics/Statistics.java       | 20 ++++--------
 .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java  | 36 ++++------------------
 .../iotdb/tsfile/write/chunk/IChunkWriter.java     | 10 ------
 10 files changed, 42 insertions(+), 87 deletions(-)

diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
index 64dc577..6926793 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
@@ -110,14 +110,13 @@ public class BinaryStatistics extends Statistics<Binary> {
   }
 
   @Override
-  public void updateStats(Binary[] values) {
-    for (Binary value : values) {
+  public void updateStats(Binary[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
       if (isEmpty) {
-        initializeStats(value, value, value, value, 0);
+        initializeStats(values[i], values[i], values[i], values[i], 0);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, 0);
-        isEmpty = false;
+        updateStats(values[i], values[i], values[i], values[i], 0);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BooleanStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BooleanStatistics.java
index 097dba0..f5b97f6 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BooleanStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BooleanStatistics.java
@@ -53,14 +53,13 @@ public class BooleanStatistics extends Statistics<Boolean> {
   }
 
   @Override
-  public void updateStats(boolean[] values) {
-    for (boolean value : values) {
+  public void updateStats(boolean[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
       if (isEmpty) {
-        initializeStats(value, value, value, value, 0);
+        initializeStats(values[i], values[i], values[i], values[i], 0);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, 0);
-        isEmpty = false;
+        updateStats(values[i], values[i], values[i], values[i], 0);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
index 250aaac..45e0163 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
@@ -52,13 +52,13 @@ public class DoubleStatistics extends Statistics<Double> {
   }
 
   @Override
-  public void updateStats(double[] values) {
-    for (double value : values) {
-      if (this.isEmpty) {
-        initializeStats(value, value, value, value, value);
+  public void updateStats(double[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
+      if (isEmpty) {
+        initializeStats(values[i], values[i], values[i], values[i], values[i]);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, value);
+        updateStats(values[i], values[i], values[i], values[i], values[i]);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
index e1f487b..6ecea31 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/FloatStatistics.java
@@ -52,13 +52,13 @@ public class FloatStatistics extends Statistics<Float> {
   }
 
   @Override
-  public void updateStats(float[] values) {
-    for (float value : values) {
-      if (this.isEmpty) {
-        initializeStats(value, value, value, value, value);
+  public void updateStats(float[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
+      if (isEmpty) {
+        initializeStats(values[i], values[i], values[i], values[i], values[i]);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, value);
+        updateStats(values[i], values[i], values[i], values[i], values[i]);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
index f2ab8cf..2020558 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/IntegerStatistics.java
@@ -53,14 +53,13 @@ public class IntegerStatistics extends Statistics<Integer> {
   }
 
   @Override
-  public void updateStats(int[] values) {
-    for (int value : values) {
+  public void updateStats(int[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
       if (isEmpty) {
-        initializeStats(value, value, value, value, value);
+        initializeStats(values[i], values[i], values[i], values[i], values[i]);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, value);
-        isEmpty = false;
+        updateStats(values[i], values[i], values[i], values[i], values[i]);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
index 0e4ace5..4b34989 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/LongStatistics.java
@@ -77,13 +77,13 @@ public class LongStatistics extends Statistics<Long> {
   }
 
   @Override
-  public void updateStats(long[] values) {
-    for (long value : values) {
+  public void updateStats(long[] values, int batchSize) {
+    for (int i = 0; i < batchSize; i++) {
       if (isEmpty) {
-        initializeStats(value, value, value, value, value);
+        initializeStats(values[i], values[i], values[i], values[i], values[i]);
         isEmpty = false;
       } else {
-        updateStats(value, value, value, value, value);
+        updateStats(values[i], values[i], values[i], values[i], values[i]);
       }
     }
   }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/NoStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/NoStatistics.java
index 9f66ba4..132f603 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/NoStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/NoStatistics.java
@@ -65,22 +65,22 @@ public class NoStatistics extends Statistics<Long> {
   }
 
   @Override
-  public void updateStats(boolean[] values) {
+  public void updateStats(boolean[] values, int batchSize) {
     // NoStatistics does not make any statistics
   }
 
   @Override
-  public void updateStats(int[] values) {
+  public void updateStats(int[] values, int batchSize) {
     // NoStatistics does not make any statistics
   }
 
   @Override
-  public void updateStats(long[] values) {
+  public void updateStats(long[] values, int batchSize) {
     // NoStatistics does not make any statistics
   }
 
   @Override
-  public void updateStats(Binary[] values) {
+  public void updateStats(Binary[] values, int batchSize) {
     // NoStatistics does not make any statistics
   }
 
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
index 2e20555..227e294 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
@@ -194,39 +194,31 @@ public abstract class Statistics<T> {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(BigDecimal value) {
-    throw new UnsupportedOperationException();
-  }
-
   public void updateStats(Binary value) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(boolean[] values) {
-    throw new UnsupportedOperationException();
-  }
-
-  public void updateStats(int[] values) {
+  public void updateStats(boolean[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(long[] values) {
+  public void updateStats(int[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(float[] values) {
+  public void updateStats(long[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(double[] values) {
+  public void updateStats(float[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(BigDecimal[] values) {
+  public void updateStats(double[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
-  public void updateStats(Binary[] values) {
+  public void updateStats(Binary[] values, int batchSize) {
     throw new UnsupportedOperationException();
   }
 
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
index d5bad0a..31ffb38 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
@@ -167,18 +167,6 @@ public class ChunkWriterImpl implements IChunkWriter {
   }
 
   @Override
-  public void write(long time, BigDecimal value) {
-    this.maxTimestamp = time;
-    ++valueCountInOnePage;
-    pageWriter.write(time, value);
-    pageStatistics.updateStats(value);
-    if (minTimestamp == Long.MIN_VALUE) {
-      minTimestamp = time;
-    }
-    checkPageSizeAndMayOpenANewPage();
-  }
-
-  @Override
   public void write(long time, Binary value) {
     this.maxTimestamp = time;
     ++valueCountInOnePage;
@@ -198,7 +186,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
@@ -210,7 +198,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
@@ -222,7 +210,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
@@ -234,7 +222,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
@@ -246,19 +234,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
-    checkPageSizeAndMayOpenANewPage();
-  }
-
-  @Override
-  public void write(long[] timestamps, BigDecimal[] values, int batchSize) {
-    this.maxTimestamp = timestamps[batchSize - 1];
-    valueCountInOnePage += batchSize;
-    if (minTimestamp == Long.MIN_VALUE) {
-      minTimestamp = timestamps[0];
-    }
-    pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
@@ -270,7 +246,7 @@ public class ChunkWriterImpl implements IChunkWriter {
       minTimestamp = timestamps[0];
     }
     pageWriter.write(timestamps, values, batchSize);
-    pageStatistics.updateStats(values);
+    pageStatistics.updateStats(values, batchSize);
     checkPageSizeAndMayOpenANewPage();
   }
 
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkWriter.java
index 3f7f762..c375b45 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkWriter.java
@@ -57,11 +57,6 @@ public interface IChunkWriter {
   /**
    * write a time value pair.
    */
-  void write(long time, BigDecimal value);
-
-  /**
-   * write a time value pair.
-   */
   void write(long time, Binary value);
 
   /**
@@ -92,11 +87,6 @@ public interface IChunkWriter {
   /**
    * write time series
    */
-  void write(long[] timestamps, BigDecimal[] values, int batchSize);
-
-  /**
-   * write time series
-   */
   void write(long[] timestamps, Binary[] values, int batchSize);
 
   /**