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; }
