This is an automated email from the ASF dual-hosted git repository.
shuwenwei pushed a commit to branch transferSchemaTreeInBatches
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/transferSchemaTreeInBatches by
this push:
new 553d727f387 fix reviewed issues
553d727f387 is described below
commit 553d727f387fc3e624b226eb693f6fea691856d3
Author: shuwenwei <[email protected]>
AuthorDate: Thu Jul 31 10:02:48 2025 +0800
fix reviewed issues
---
.../org/apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java | 4 ++++
.../operator/schema/SchemaFetchScanOperator.java | 4 ++--
.../plan/analyze/schema/ClusterSchemaFetchExecutor.java | 17 +++++++++++++----
.../operator/schema/SchemaFetchScanOperatorTest.java | 4 ++--
4 files changed, 21 insertions(+), 8 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java
index 6a65ab1ed7e..8904f04d8bb 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java
@@ -100,6 +100,10 @@ public class IoTDBOrderByIT {
@BeforeClass
public static void setUp() throws Exception {
EnvFactory.getEnv().getConfig().getDataNodeCommonConfig().setSortBufferSize(1024
* 1024L);
+ EnvFactory.getEnv()
+ .getConfig()
+ .getDataNodeCommonConfig()
+ .setQueryMemoryProportion("1:100:200:50:200:400:200:50");
EnvFactory.getEnv().initClusterEnvironment();
insertData();
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java
index ac2fd52322d..0f31799f835 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperator.java
@@ -163,7 +163,7 @@ public class SchemaFetchScanOperator implements
SourceOperator {
boolean isFirstBatch = schemaNodeIteratorForSerialize == null;
prepareSchemaNodeIteratorForSerialize();
// to indicate this binary data is database info
- ReadWriteIOUtils.write((byte) 1, baos);
+ ReadWriteIOUtils.write((byte) 2, baos);
// the estimated mem cost to deserialize the total schema tree
if (isFirstBatch) {
ReadWriteIOUtils.write(schemaTreeMemCost, baos);
@@ -178,7 +178,7 @@ public class SchemaFetchScanOperator implements
SourceOperator {
isFinished = !schemaNodeIteratorForSerialize.hasNext();
if (isFinished) {
// indicate all continuous binary data is finished
- currentBatch[0] = 2;
+ currentBatch[0] = 3;
releaseSchemaTree();
baos = null;
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java
index a37d364dfab..b959e05e1c5 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetchExecutor.java
@@ -303,14 +303,23 @@ class ClusterSchemaFetchExecutor {
for (int i = 0; i < size; i++) {
databaseSet.add(ReadWriteIOUtils.readString(inputStream));
}
- } else if (type == 1 || type == 2) {
+ } else if (type == 1) {
+ // for data from old version
+ ClusterSchemaTree deserializedSchemaTree =
ClusterSchemaTree.deserialize(inputStream);
+ if (context != null) {
+
context.reserveMemoryForSchemaTree(deserializedSchemaTree.ramBytesUsed());
+ }
+ resultSchemaTree.mergeSchemaTree(deserializedSchemaTree);
+ } else if (type == 2 || type == 3) {
if (deserializer.isFirstBatch()) {
long memCost = ReadWriteIOUtils.readLong(inputStream);
- context.reserveMemoryForSchemaTree(memCost);
+ if (context != null) {
+ context.reserveMemoryForSchemaTree(memCost);
+ }
}
deserializer.deserializeFromBatch(inputStream);
- if (type == 2) {
- // 'type == 2' indicates this batch is finished
+ if (type == 3) {
+ // 'type == 3' indicates this batch is finished
resultSchemaTree.mergeSchemaTree(deserializer.finish());
}
} else {
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
index 7b050dbda9d..6a0a006b0ed 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
@@ -101,7 +101,7 @@ public class SchemaFetchScanOperatorTest {
Binary binary = tsBlock.getColumn(0).getBinary(0);
InputStream inputStream = new ByteArrayInputStream(binary.getValues());
if (!deserializer.isFirstBatch()) {
- Assert.assertEquals(1, type);
+ Assert.assertEquals(2, type);
}
type = ReadWriteIOUtils.readByte(inputStream);
if (deserializer.isFirstBatch()) {
@@ -109,7 +109,7 @@ public class SchemaFetchScanOperatorTest {
}
deserializer.deserializeFromBatch(inputStream);
}
- Assert.assertEquals(2, type);
+ Assert.assertEquals(3, type);
Assert.assertFalse(schemaFetchScanOperator.hasNext());
ClusterSchemaTree schemaTree = deserializer.finish();