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

jackietien pushed a commit to branch CorrectBinaryColumnBuilder-1.1
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit b149d46a2d691c8dfd5c41047ff4841310f02c5b
Author: JackieTien97 <[email protected]>
AuthorDate: Thu Jul 3 11:11:11 2025 +0800

    Correct the memroy calculation of BinaryColumnBuilder
---
 .../org/apache/tsfile/read/common/block/column/BinaryColumn.java  | 3 +++
 .../tsfile/read/common/block/column/BinaryColumnBuilder.java      | 8 ++++++++
 2 files changed, 11 insertions(+)

diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumn.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumn.java
index ab244311..c51e4fd7 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumn.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumn.java
@@ -30,6 +30,7 @@ import java.util.Arrays;
 import java.util.Optional;
 
 import static 
org.apache.tsfile.read.common.block.column.ColumnUtil.checkValidRegion;
+import static org.apache.tsfile.utils.RamUsageEstimator.NUM_BYTES_OBJECT_REF;
 import static org.apache.tsfile.utils.RamUsageEstimator.sizeOf;
 import static org.apache.tsfile.utils.RamUsageEstimator.sizeOfBooleanArray;
 
@@ -38,6 +39,8 @@ public class BinaryColumn implements Column {
   private static final int INSTANCE_SIZE =
       (int) RamUsageEstimator.shallowSizeOfInstance(BinaryColumn.class);
 
+  public static final int SHALLOW_SIZE_IN_BYTES_PER_POSITION = 
NUM_BYTES_OBJECT_REF + Byte.BYTES;
+
   private final int arrayOffset;
   private final int positionCount;
   private final boolean[] valueIsNull;
diff --git 
a/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumnBuilder.java
 
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumnBuilder.java
index fa5d9cdf..20928cfd 100644
--- 
a/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumnBuilder.java
+++ 
b/java/tsfile/src/main/java/org/apache/tsfile/read/common/block/column/BinaryColumnBuilder.java
@@ -72,6 +72,11 @@ public class BinaryColumnBuilder implements ColumnBuilder {
 
     hasNonNullValue = true;
     positionCount++;
+    if (columnBuilderStatus != null) {
+      columnBuilderStatus.addBytes(
+          BinaryColumn.SHALLOW_SIZE_IN_BYTES_PER_POSITION
+              + (value == null ? 0 : (int) value.ramBytesUsed()));
+    }
     return this;
   }
 
@@ -105,6 +110,9 @@ public class BinaryColumnBuilder implements ColumnBuilder {
 
     hasNullValue = true;
     positionCount++;
+    if (columnBuilderStatus != null) {
+      
columnBuilderStatus.addBytes(BinaryColumn.SHALLOW_SIZE_IN_BYTES_PER_POSITION);
+    }
     return this;
   }
 

Reply via email to