Skip to content

Commit 0bb345c

Browse files
authored
[To dev/1.3] Correct binary column memory calculation
1 parent 260d982 commit 0bb345c

8 files changed

Lines changed: 19 additions & 17 deletions

File tree

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/SharedTsBlockQueue.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,8 @@ public TsBlock remove() {
186186
localFragmentInstanceId.getQueryId(),
187187
fullFragmentInstanceId,
188188
localPlanNodeId,
189-
tsBlock.getRetainedSizeInBytes());
190-
bufferRetainedSizeInBytes -= tsBlock.getRetainedSizeInBytes();
189+
tsBlock.getSizeInBytes());
190+
bufferRetainedSizeInBytes -= tsBlock.getSizeInBytes();
191191
// Every time LocalSourceHandle consumes a TsBlock, it needs to send the event to
192192
// corresponding LocalSinkChannel.
193193
if (sinkChannel != null) {
@@ -226,10 +226,10 @@ public ListenableFuture<Void> add(TsBlock tsBlock) {
226226
localFragmentInstanceId.getQueryId(),
227227
fullFragmentInstanceId,
228228
localPlanNodeId,
229-
tsBlock.getRetainedSizeInBytes(),
229+
tsBlock.getSizeInBytes(),
230230
maxBytesCanReserve);
231231
blockedOnMemory = pair.left;
232-
bufferRetainedSizeInBytes += tsBlock.getRetainedSizeInBytes();
232+
bufferRetainedSizeInBytes += tsBlock.getSizeInBytes();
233233

234234
// reserve memory failed, we should wait until there is enough memory
235235
if (!Boolean.TRUE.equals(pair.right)) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/sink/SinkChannel.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public synchronized void send(TsBlock tsBlock) {
201201
if (noMoreTsBlocks) {
202202
return;
203203
}
204-
long retainedSizeInBytes = tsBlock.getRetainedSizeInBytes();
204+
long sizeInBytes = tsBlock.getSizeInBytes();
205205
int startSequenceId;
206206
startSequenceId = nextSequenceId;
207207
blocked =
@@ -211,17 +211,16 @@ public synchronized void send(TsBlock tsBlock) {
211211
localFragmentInstanceId.getQueryId(),
212212
fullFragmentInstanceId,
213213
localPlanNodeId,
214-
retainedSizeInBytes,
214+
sizeInBytes,
215215
maxBytesCanReserve)
216216
.left;
217-
bufferRetainedSizeInBytes += retainedSizeInBytes;
217+
bufferRetainedSizeInBytes += sizeInBytes;
218218

219219
sequenceIdToTsBlock.put(nextSequenceId, new Pair<>(tsBlock, currentTsBlockSize));
220220
nextSequenceId += 1;
221-
currentTsBlockSize = retainedSizeInBytes;
221+
currentTsBlockSize = sizeInBytes;
222222

223-
// TODO: consider merge multiple NewDataBlockEvent for less network traffic.
224-
submitSendNewDataBlockEventTask(startSequenceId, ImmutableList.of(retainedSizeInBytes));
223+
submitSendNewDataBlockEventTask(startSequenceId, ImmutableList.of(sizeInBytes));
225224
} finally {
226225
DATA_EXCHANGE_COST_METRIC_SET.recordDataExchangeCost(
227226
SINK_HANDLE_SEND_TSBLOCK_REMOTE, System.nanoTime() - startTime);

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/exchange/source/LocalSourceHandle.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,7 @@ public TsBlock receive() {
123123
if (tsBlock != null) {
124124
if (LOGGER.isDebugEnabled()) {
125125
LOGGER.debug(
126-
"[GetTsBlockFromQueue] TsBlock:{} size:{}",
127-
currSequenceId,
128-
tsBlock.getRetainedSizeInBytes());
126+
"[GetTsBlockFromQueue] TsBlock:{} size:{}", currSequenceId, tsBlock.getSizeInBytes());
129127
}
130128
currSequenceId++;
131129
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/AbstractOperator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void initializeMaxTsBlockLength(TsBlock tsBlock) {
4444
long oneTupleSize =
4545
Math.max(
4646
1,
47-
(tsBlock.getRetainedSizeInBytes() - tsBlock.getTotalInstanceSize())
47+
(tsBlock.getSizeInBytes() - tsBlock.getTotalInstanceSize())
4848
/ tsBlock.getPositionCount());
4949
if (oneTupleSize > maxReturnSize) {
5050
// make sure at least one-tuple-at-a-time

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/SortOperator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public TsBlock next() throws Exception {
138138
if (tsBlock == null) {
139139
return null;
140140
}
141-
dataSize += tsBlock.getRetainedSizeInBytes();
141+
dataSize += tsBlock.getSizeInBytes();
142142
cacheTsBlock(tsBlock);
143143
} catch (IoTDBException e) {
144144
clear();
@@ -184,7 +184,7 @@ private void prepareSortReaders() throws IoTDBException {
184184
}
185185

186186
private void cacheTsBlock(TsBlock tsBlock) throws IoTDBException {
187-
long bytesSize = tsBlock.getRetainedSizeInBytes();
187+
long bytesSize = tsBlock.getSizeInBytes();
188188
if (bytesSize + cachedBytes < SORT_BUFFER_SIZE) {
189189
cachedBytes += bytesSize;
190190
for (int i = 0; i < tsBlock.getPositionCount(); i++) {

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/exchange/Utils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public static List<TsBlock> createMockTsBlocks(int numOfTsBlocks, long mockTsBlo
4141
for (int i = 0; i < numOfTsBlocks; i++) {
4242
TsBlock mockTsBlock = Mockito.mock(TsBlock.class);
4343
Mockito.when(mockTsBlock.getRetainedSizeInBytes()).thenReturn(mockTsBlockSize);
44+
Mockito.when(mockTsBlock.getSizeInBytes()).thenReturn(mockTsBlockSize);
4445
mockTsBlocks.add(mockTsBlock);
4546
}
4647

@@ -50,6 +51,7 @@ public static List<TsBlock> createMockTsBlocks(int numOfTsBlocks, long mockTsBlo
5051
public static TsBlock createMockTsBlock(long mockTsBlockSize) {
5152
TsBlock mockTsBlock = Mockito.mock(TsBlock.class);
5253
Mockito.when(mockTsBlock.getRetainedSizeInBytes()).thenReturn(mockTsBlockSize);
54+
Mockito.when(mockTsBlock.getSizeInBytes()).thenReturn(mockTsBlockSize);
5355
return mockTsBlock;
5456
}
5557

@@ -144,6 +146,7 @@ public static TsBlockSerde createMockTsBlockSerde(long mockTsBlockSize) {
144146
TsBlockSerde mockTsBlockSerde = Mockito.mock(TsBlockSerde.class);
145147
TsBlock mockTsBlock = Mockito.mock(TsBlock.class);
146148
Mockito.when(mockTsBlock.getRetainedSizeInBytes()).thenReturn(mockTsBlockSize);
149+
Mockito.when(mockTsBlock.getSizeInBytes()).thenReturn(mockTsBlockSize);
147150
Mockito.when(mockTsBlockSerde.deserialize(Mockito.any(ByteBuffer.class)))
148151
.thenReturn(mockTsBlock);
149152
return mockTsBlockSerde;

iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OperatorMemoryTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ public void pipelineExchangeOperatorTest() {
249249
public void lastCacheScanOperatorTest() {
250250
TsBlock tsBlock = Mockito.mock(TsBlock.class);
251251
Mockito.when(tsBlock.getRetainedSizeInBytes()).thenReturn(1024L);
252+
Mockito.when(tsBlock.getSizeInBytes()).thenReturn(1024L);
252253
LastCacheScanOperator lastCacheScanOperator = new LastCacheScanOperator(null, null, tsBlock);
253254

254255
assertEquals(1024, lastCacheScanOperator.calculateMaxPeekMemory());
@@ -379,6 +380,7 @@ public void lastQueryOperatorTest() {
379380
public void lastQuerySortOperatorTest() {
380381
TsBlock tsBlock = Mockito.mock(TsBlock.class);
381382
Mockito.when(tsBlock.getRetainedSizeInBytes()).thenReturn(16 * 1024L);
383+
Mockito.when(tsBlock.getSizeInBytes()).thenReturn(16 * 1024L);
382384
Mockito.when(tsBlock.getPositionCount()).thenReturn(16);
383385
List<Operator> children = new ArrayList<>(4);
384386

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@
175175
<thrift.version>0.14.1</thrift.version>
176176
<xz.version>1.9</xz.version>
177177
<zstd-jni.version>1.5.6-3</zstd-jni.version>
178-
<tsfile.version>1.1.2-250603-SNAPSHOT</tsfile.version>
178+
<tsfile.version>1.1.2-250616-SNAPSHOT</tsfile.version>
179179
</properties>
180180
<!--
181181
if we claim dependencies in dependencyManagement, then we do not claim

0 commit comments

Comments
 (0)