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

jackietien pushed a commit to branch QueryPerformace
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/QueryPerformace by this push:
     new a67982a11d Extreme performace
a67982a11d is described below

commit a67982a11d95a05ea0dad91580e9e776d1dc4152
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Jun 22 21:37:43 2022 +0800

    Extreme performace
---
 .../execution/datatransfer/LocalSinkHandle.java    |  2 +-
 .../execution/datatransfer/LocalSourceHandle.java  | 24 ++++-----
 .../operator/process/AggregationOperator.java      |  2 +-
 .../process/RawDataAggregationOperator.java        |  2 +-
 .../process/SlidingWindowAggregationOperator.java  |  2 +-
 .../AlignedSeriesAggregationScanOperator.java      |  2 +-
 .../source/SeriesAggregationScanOperator.java      |  2 +-
 .../tsfile/read/common/block/TsBlockBuilder.java   | 62 +++++++++++-----------
 .../read/common/block/column/BinaryColumn.java     |  3 +-
 .../common/block/column/BinaryColumnBuilder.java   |  5 +-
 .../read/common/block/column/BooleanColumn.java    |  4 +-
 .../common/block/column/BooleanColumnBuilder.java  |  4 +-
 .../read/common/block/column/DoubleColumn.java     |  3 +-
 .../common/block/column/DoubleColumnBuilder.java   |  4 +-
 .../read/common/block/column/FloatColumn.java      |  3 +-
 .../common/block/column/FloatColumnBuilder.java    |  4 +-
 .../tsfile/read/common/block/column/IntColumn.java |  4 +-
 .../read/common/block/column/IntColumnBuilder.java |  4 +-
 .../read/common/block/column/LongColumn.java       |  3 +-
 .../common/block/column/LongColumnBuilder.java     |  4 +-
 .../read/common/block/column/TimeColumn.java       |  4 +-
 .../common/block/column/TimeColumnBuilder.java     |  4 +-
 22 files changed, 68 insertions(+), 83 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSinkHandle.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSinkHandle.java
index 40b5760b82..a9ef21dfe2 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSinkHandle.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSinkHandle.java
@@ -116,7 +116,7 @@ public class LocalSinkHandle implements ISinkHandle {
       if (queue.hasNoMoreTsBlocks()) {
         return;
       }
-      logger.info("send TsBlocks. Size: {}", tsBlocks.size());
+      //      logger.info("send TsBlocks. Size: {}", tsBlocks.size());
       synchronized (this) {
         for (TsBlock tsBlock : tsBlocks) {
           blocked = queue.add(tsBlock);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSourceHandle.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSourceHandle.java
index 205604b806..f8fe2b62a0 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSourceHandle.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/datatransfer/LocalSourceHandle.java
@@ -78,20 +78,18 @@ public class LocalSourceHandle implements ISourceHandle {
 
   @Override
   public TsBlock receive() {
-    try (SetThreadName sourceHandleName = new SetThreadName(threadName)) {
-      if (aborted) {
-        throw new IllegalStateException("Source handle is aborted.");
-      }
-      if (!queue.isBlocked().isDone()) {
-        throw new IllegalStateException("Source handle is blocked.");
-      }
-      TsBlock tsBlock;
-      synchronized (queue) {
-        tsBlock = queue.remove();
-      }
-      checkAndInvokeOnFinished();
-      return tsBlock;
+    if (aborted) {
+      throw new IllegalStateException("Source handle is aborted.");
+    }
+    if (!queue.isBlocked().isDone()) {
+      throw new IllegalStateException("Source handle is blocked.");
+    }
+    TsBlock tsBlock;
+    synchronized (queue) {
+      tsBlock = queue.remove();
     }
+    checkAndInvokeOnFinished();
+    return tsBlock;
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
index 4dd1d9c411..f062fb9e07 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/AggregationOperator.java
@@ -74,7 +74,7 @@ public class AggregationOperator implements ProcessOperator {
     for (Aggregator aggregator : aggregators) {
       dataTypes.addAll(Arrays.asList(aggregator.getOutputType()));
     }
-    tsBlockBuilder = new TsBlockBuilder(dataTypes);
+    tsBlockBuilder = new TsBlockBuilder(1, dataTypes);
     this.timeRangeIterator =
         initTimeRangeIterator(groupByTimeParameter, ascending, 
outputPartialTimeWindow);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/RawDataAggregationOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/RawDataAggregationOperator.java
index fc15c496f5..a6ddffc1c9 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/RawDataAggregationOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/RawDataAggregationOperator.java
@@ -79,7 +79,7 @@ public class RawDataAggregationOperator implements 
ProcessOperator {
     for (Aggregator aggregator : aggregators) {
       dataTypes.addAll(Arrays.asList(aggregator.getOutputType()));
     }
-    tsBlockBuilder = new TsBlockBuilder(dataTypes);
+    tsBlockBuilder = new TsBlockBuilder(1, dataTypes);
     this.timeRangeIterator = initTimeRangeIterator(groupByTimeParameter, 
ascending, true);
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/SlidingWindowAggregationOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/SlidingWindowAggregationOperator.java
index f7ed25a7fc..1d77cbdfc6 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/SlidingWindowAggregationOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/process/SlidingWindowAggregationOperator.java
@@ -76,7 +76,7 @@ public class SlidingWindowAggregationOperator implements 
ProcessOperator {
     for (Aggregator aggregator : aggregators) {
       outputDataTypes.addAll(Arrays.asList(aggregator.getOutputType()));
     }
-    this.tsBlockBuilder = new TsBlockBuilder(outputDataTypes);
+    this.tsBlockBuilder = new TsBlockBuilder(1, outputDataTypes);
     this.timeRangeIterator = initTimeRangeIterator(groupByTimeParameter, 
ascending, false);
     this.ascending = ascending;
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AlignedSeriesAggregationScanOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AlignedSeriesAggregationScanOperator.java
index 37f4f8ddfa..bbda016487 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AlignedSeriesAggregationScanOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/AlignedSeriesAggregationScanOperator.java
@@ -93,7 +93,7 @@ public class AlignedSeriesAggregationScanOperator implements 
DataSourceOperator
     for (Aggregator aggregator : aggregators) {
       dataTypes.addAll(Arrays.asList(aggregator.getOutputType()));
     }
-    tsBlockBuilder = new TsBlockBuilder(dataTypes);
+    tsBlockBuilder = new TsBlockBuilder(1, dataTypes);
     this.timeRangeIterator = initTimeRangeIterator(groupByTimeParameter, 
ascending, true);
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesAggregationScanOperator.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesAggregationScanOperator.java
index f9763b5533..35cf1390b6 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesAggregationScanOperator.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/execution/operator/source/SeriesAggregationScanOperator.java
@@ -100,7 +100,7 @@ public class SeriesAggregationScanOperator implements 
DataSourceOperator {
     for (Aggregator aggregator : aggregators) {
       dataTypes.addAll(Arrays.asList(aggregator.getOutputType()));
     }
-    tsBlockBuilder = new TsBlockBuilder(dataTypes);
+    tsBlockBuilder = new TsBlockBuilder(1, dataTypes);
     this.timeRangeIterator = initTimeRangeIterator(groupByTimeParameter, 
ascending, true);
   }
 
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
index b88614fca3..d3684b056c 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/TsBlockBuilder.java
@@ -118,29 +118,29 @@ public class TsBlockBuilder {
     }
   }
 
-  private TsBlockBuilder(
-      int maxTsBlockBytes,
-      List<TSDataType> types,
-      TimeColumnBuilder templateTimeColumnBuilder,
-      ColumnBuilder[] templateValueColumnBuilders) {
-    this.types = requireNonNull(types, "types is null");
-
-    tsBlockBuilderStatus = new TsBlockBuilderStatus(maxTsBlockBytes);
-    valueColumnBuilders = new ColumnBuilder[types.size()];
-
-    checkArgument(
-        templateValueColumnBuilders.length == types.size(),
-        "Size of templates and types should match");
-    timeColumnBuilder =
-        (TimeColumnBuilder)
-            templateTimeColumnBuilder.newColumnBuilderLike(
-                tsBlockBuilderStatus.createColumnBuilderStatus());
-    for (int i = 0; i < valueColumnBuilders.length; i++) {
-      valueColumnBuilders[i] =
-          templateValueColumnBuilders[i].newColumnBuilderLike(
-              tsBlockBuilderStatus.createColumnBuilderStatus());
-    }
-  }
+  //  private TsBlockBuilder(
+  //      int maxTsBlockBytes,
+  //      List<TSDataType> types,
+  //      TimeColumnBuilder templateTimeColumnBuilder,
+  //      ColumnBuilder[] templateValueColumnBuilders) {
+  //    this.types = requireNonNull(types, "types is null");
+  //
+  //    tsBlockBuilderStatus = new TsBlockBuilderStatus(maxTsBlockBytes);
+  //    valueColumnBuilders = new ColumnBuilder[types.size()];
+  //
+  //    checkArgument(
+  //        templateValueColumnBuilders.length == types.size(),
+  //        "Size of templates and types should match");
+  //    timeColumnBuilder =
+  //        (TimeColumnBuilder)
+  //            templateTimeColumnBuilder.newColumnBuilderLike(
+  //                tsBlockBuilderStatus.createColumnBuilderStatus());
+  //    for (int i = 0; i < valueColumnBuilders.length; i++) {
+  //      valueColumnBuilders[i] =
+  //          templateValueColumnBuilders[i].newColumnBuilderLike(
+  //              tsBlockBuilderStatus.createColumnBuilderStatus());
+  //    }
+  //  }
 
   public void buildValueColumnBuilders(List<TSDataType> types) {
     this.types = requireNonNull(types, "types is null");
@@ -190,8 +190,6 @@ public class TsBlockBuilder {
     if (isEmpty()) {
       return;
     }
-    tsBlockBuilderStatus =
-        new 
TsBlockBuilderStatus(tsBlockBuilderStatus.getMaxTsBlockSizeInBytes());
 
     declaredPositions = 0;
 
@@ -201,13 +199,13 @@ public class TsBlockBuilder {
     }
   }
 
-  public TsBlockBuilder newTsBlockBuilderLike() {
-    return new TsBlockBuilder(
-        tsBlockBuilderStatus.getMaxTsBlockSizeInBytes(),
-        types,
-        timeColumnBuilder,
-        valueColumnBuilders);
-  }
+  //  public TsBlockBuilder newTsBlockBuilderLike() {
+  //    return new TsBlockBuilder(
+  //        tsBlockBuilderStatus.getMaxTsBlockSizeInBytes(),
+  //        types,
+  //        timeColumnBuilder,
+  //        valueColumnBuilders);
+  //  }
 
   public TimeColumnBuilder getTimeColumnBuilder() {
     return timeColumnBuilder;
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
index 3d81b062f2..2418044bca 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumn.java
@@ -26,7 +26,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
 import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
 
 public class BinaryColumn implements Column {
@@ -66,7 +65,7 @@ public class BinaryColumn implements Column {
     this.valueIsNull = valueIsNull;
 
     // TODO we need to sum up all the Binary's retainedSize here
-    retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumnBuilder.java
index ad1e05ac61..9ffcf50fb8 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BinaryColumnBuilder.java
@@ -29,7 +29,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class BinaryColumnBuilder implements ColumnBuilder {
 
@@ -130,8 +129,8 @@ public class BinaryColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    // TODO we should take retain size into account here
-    return new BinaryColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
index 8397010c6d..d4d4b435aa 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumn.java
@@ -25,8 +25,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
-
 public class BooleanColumn implements Column {
 
   private static final int INSTANCE_SIZE =
@@ -64,7 +62,7 @@ public class BooleanColumn implements Column {
     }
     this.valueIsNull = valueIsNull;
 
-    retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + 
sizeOf(values));
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumnBuilder.java
index ba40884023..964249ece8 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/BooleanColumnBuilder.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class BooleanColumnBuilder implements ColumnBuilder {
 
@@ -130,7 +129,8 @@ public class BooleanColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new BooleanColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
index 13c07fad97..ee7c2af501 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumn.java
@@ -25,7 +25,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
 import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
 
 public class DoubleColumn implements Column {
@@ -65,7 +64,7 @@ public class DoubleColumn implements Column {
     }
     this.valueIsNull = valueIsNull;
 
-    retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + 
sizeOf(values));
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumnBuilder.java
index 78f9faa068..0fc65dc784 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/DoubleColumnBuilder.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class DoubleColumnBuilder implements ColumnBuilder {
 
@@ -130,7 +129,8 @@ public class DoubleColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new DoubleColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
index 7c81c60dce..15fb84ab66 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumn.java
@@ -25,7 +25,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
 import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
 
 public class FloatColumn implements Column {
@@ -64,7 +63,7 @@ public class FloatColumn implements Column {
     }
     this.valueIsNull = valueIsNull;
 
-    retainedSizeInBytes = (INSTANCE_SIZE + sizeOf(valueIsNull) + 
sizeOf(values));
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumnBuilder.java
index c5f97b77fc..eb9d96cf8f 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/FloatColumnBuilder.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class FloatColumnBuilder implements ColumnBuilder {
 
@@ -130,7 +129,8 @@ public class FloatColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new FloatColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
index a0982b4c16..26d54cb231 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumn.java
@@ -25,8 +25,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
-
 public class IntColumn implements Column {
 
   private static final int INSTANCE_SIZE = 
ClassLayout.parseClass(IntColumn.class).instanceSize();
@@ -63,7 +61,7 @@ public class IntColumn implements Column {
     }
     this.valueIsNull = valueIsNull;
 
-    retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumnBuilder.java
index 00e6863cea..dc15c032eb 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/IntColumnBuilder.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class IntColumnBuilder implements ColumnBuilder {
 
@@ -130,7 +129,8 @@ public class IntColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new IntColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
index 59c04cb4ed..91df86b9a0 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumn.java
@@ -25,7 +25,6 @@ import org.openjdk.jol.info.ClassLayout;
 
 import java.util.Optional;
 
-import static io.airlift.slice.SizeOf.sizeOf;
 import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
 
 public class LongColumn implements Column {
@@ -64,7 +63,7 @@ public class LongColumn implements Column {
     }
     this.valueIsNull = valueIsNull;
 
-    retainedSizeInBytes = INSTANCE_SIZE + sizeOf(valueIsNull) + sizeOf(values);
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumnBuilder.java
index 5f0037f688..fa6932ae17 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/LongColumnBuilder.java
@@ -28,7 +28,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class LongColumnBuilder implements ColumnBuilder {
 
@@ -130,7 +129,8 @@ public class LongColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new LongColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   private void growCapacity() {
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
index 89ee38a156..078e3917f3 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumn.java
@@ -22,8 +22,6 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.openjdk.jol.info.ClassLayout;
 
-import static io.airlift.slice.SizeOf.sizeOf;
-
 public class TimeColumn implements Column {
 
   private static final int INSTANCE_SIZE = 
ClassLayout.parseClass(LongColumn.class).instanceSize();
@@ -54,7 +52,7 @@ public class TimeColumn implements Column {
     }
     this.values = values;
 
-    retainedSizeInBytes = INSTANCE_SIZE + sizeOf(values);
+    retainedSizeInBytes = INSTANCE_SIZE;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumnBuilder.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumnBuilder.java
index 59157916be..9ce3198e36 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumnBuilder.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/block/column/TimeColumnBuilder.java
@@ -27,7 +27,6 @@ import java.util.Arrays;
 
 import static io.airlift.slice.SizeOf.sizeOf;
 import static java.lang.Math.max;
-import static 
org.apache.iotdb.tsfile.read.common.block.column.ColumnUtil.calculateBlockResetSize;
 
 public class TimeColumnBuilder implements ColumnBuilder {
 
@@ -108,7 +107,8 @@ public class TimeColumnBuilder implements ColumnBuilder {
 
   @Override
   public ColumnBuilder newColumnBuilderLike(ColumnBuilderStatus 
columnBuilderStatus) {
-    return new TimeColumnBuilder(columnBuilderStatus, 
calculateBlockResetSize(positionCount));
+    positionCount = 0;
+    return this;
   }
 
   public int getPositionCount() {

Reply via email to