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

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

commit 86ed41f4096d8a3f7f675ce7702ad1284668e2e1
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 ecc1b66e..88e27585 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
@@ -32,6 +32,7 @@ import java.util.Optional;
 import static 
org.apache.tsfile.read.common.block.column.ColumnUtil.checkArrayRange;
 import static 
org.apache.tsfile.read.common.block.column.ColumnUtil.checkReadablePosition;
 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;
 
@@ -40,6 +41,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 int positionCount;
   private 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 d9c560dc..be952eaa 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
@@ -77,6 +77,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;
   }
 
@@ -110,6 +115,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