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