This is an automated email from the ASF dual-hosted git repository. caogaofei pushed a commit to branch beyyes/develop in repository https://gitbox.apache.org/repos/asf/tsfile.git
commit 9b6d4fd3476c19cf6b4861a3d17227fc65da6ba4 Author: Beyyes <[email protected]> AuthorDate: Wed Jan 31 21:07:07 2024 +0800 add maxTsBlockLineNumber variable in TsBlockBuilder --- .../apache/tsfile/read/common/block/TsBlockBuilder.java | 17 +++++++++++++---- .../org/apache/tsfile/common/block/TsBlockTest.java | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java index b2ba141d..872372b7 100644 --- a/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java +++ b/tsfile/src/main/java/org/apache/tsfile/read/common/block/TsBlockBuilder.java @@ -49,9 +49,6 @@ public class TsBlockBuilder { // This could be any other small number. private static final int DEFAULT_INITIAL_EXPECTED_ENTRIES = 8; - public static final int MAX_LINE_NUMBER = - TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); - private static final int DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES = TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(); @@ -60,6 +57,8 @@ public class TsBlockBuilder { private List<TSDataType> types; private TsBlockBuilderStatus tsBlockBuilderStatus; private int declaredPositions; + private int maxTsBlockLineNumber = + TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber(); private TsBlockBuilder() {} @@ -266,7 +265,7 @@ public class TsBlockBuilder { } public boolean isFull() { - return declaredPositions >= MAX_LINE_NUMBER || tsBlockBuilderStatus.isFull(); + return declaredPositions >= maxTsBlockLineNumber || tsBlockBuilderStatus.isFull(); } public boolean isEmpty() { @@ -277,6 +276,16 @@ public class TsBlockBuilder { return declaredPositions; } + public int getMaxTsBlockLineNumber() { + return this.maxTsBlockLineNumber; + } + + public void setMaxTsBlockLineNumber(int maxTsBlockLineNumber) { + if (maxTsBlockLineNumber > 0) { + this.maxTsBlockLineNumber = maxTsBlockLineNumber; + } + } + public long getSizeInBytes() { return tsBlockBuilderStatus.getSizeInBytes(); } diff --git a/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java b/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java index 25755390..47db6562 100644 --- a/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java +++ b/tsfile/src/test/java/org/apache/tsfile/common/block/TsBlockTest.java @@ -74,6 +74,7 @@ public class TsBlockTest { long[] timeArray = {1L, 2L, 3L, 4L, 5L}; int[] valueArray = {10, 20, 30, 40, 50}; TsBlockBuilder builder = new TsBlockBuilder(Collections.singletonList(TSDataType.INT32)); + builder.setMaxTsBlockLineNumber(2); for (int i = 0; i < timeArray.length; i++) { builder.getTimeColumnBuilder().writeLong(timeArray[i]); builder.getColumnBuilder(0).writeInt(valueArray[i]);
