This is an automated email from the ASF dual-hosted git repository.
justinchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 67c450be53f Load: Add IT test about Load file across multiple time
partitions (#16253)
67c450be53f is described below
commit 67c450be53f83201c98569f4e75e45d5fa3072aa
Author: Zhenyu Luo <[email protected]>
AuthorDate: Tue Aug 26 11:39:48 2025 +0800
Load: Add IT test about Load file across multiple time partitions (#16253)
* add IT
* add IT
---
.../org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java | 83 ++++++++++++++++++++++
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 8 +--
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 4 +-
3 files changed, 89 insertions(+), 6 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java
index a89becf1aa5..7d5f7be8a1e 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java
@@ -224,6 +224,9 @@ public class IoTDBLoadTsFileIT {
generator.generateData(SchemaConfig.DEVICE_2, 10000, PARTITION_INTERVAL
/ 10_000, false);
generator.generateData(SchemaConfig.DEVICE_3, 10000, PARTITION_INTERVAL
/ 10_000, false);
generator.generateData(SchemaConfig.DEVICE_4, 10000, PARTITION_INTERVAL
/ 10_000, true);
+ for (int i = 0; i < 10000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_4, 1, PARTITION_INTERVAL -
10, true);
+ }
writtenPoint2 = generator.getTotalNumber();
}
@@ -255,6 +258,86 @@ public class IoTDBLoadTsFileIT {
}
}
+ @Test
+ public void testLoadAcrossMultipleTimePartitions() throws Exception {
+ registerSchema();
+
+ final long writtenPoint1;
+ // device 0, device 1, sg 0
+ try (final TsFileGenerator generator =
+ new TsFileGenerator(new File(tmpDir, "1-0-0-0.tsfile"))) {
+ generator.registerTimeseries(
+ SchemaConfig.DEVICE_0,
+ Arrays.asList(
+ SchemaConfig.MEASUREMENT_00,
+ SchemaConfig.MEASUREMENT_01,
+ SchemaConfig.MEASUREMENT_02,
+ SchemaConfig.MEASUREMENT_03,
+ SchemaConfig.MEASUREMENT_04,
+ SchemaConfig.MEASUREMENT_05,
+ SchemaConfig.MEASUREMENT_06,
+ SchemaConfig.MEASUREMENT_07));
+ generator.registerAlignedTimeseries(
+ SchemaConfig.DEVICE_1,
+ Arrays.asList(
+ SchemaConfig.MEASUREMENT_10,
+ SchemaConfig.MEASUREMENT_11,
+ SchemaConfig.MEASUREMENT_12,
+ SchemaConfig.MEASUREMENT_13,
+ SchemaConfig.MEASUREMENT_14,
+ SchemaConfig.MEASUREMENT_15,
+ SchemaConfig.MEASUREMENT_16,
+ SchemaConfig.MEASUREMENT_17));
+ for (int i = 0; i < 1000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_0, 1, PARTITION_INTERVAL -
10, true);
+ }
+ for (int i = 0; i < 1000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_1, 1, PARTITION_INTERVAL -
10, true);
+ }
+ writtenPoint1 = generator.getTotalNumber();
+ }
+
+ final long writtenPoint2;
+ // device 2, device 3, device4, sg 1
+ try (final TsFileGenerator generator =
+ new TsFileGenerator(new File(tmpDir, "2-0-0-0.tsfile"))) {
+ generator.registerTimeseries(
+ SchemaConfig.DEVICE_2,
Collections.singletonList(SchemaConfig.MEASUREMENT_20));
+ generator.registerTimeseries(
+ SchemaConfig.DEVICE_3,
Collections.singletonList(SchemaConfig.MEASUREMENT_30));
+ generator.registerAlignedTimeseries(
+ SchemaConfig.DEVICE_4,
Collections.singletonList(SchemaConfig.MEASUREMENT_40));
+ for (int i = 0; i < 1000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_2, 1, PARTITION_INTERVAL -
10, true);
+ }
+ for (int i = 0; i < 1000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_3, 1, PARTITION_INTERVAL -
10, true);
+ }
+ for (int i = 0; i < 1000; i++) {
+ generator.generateData(SchemaConfig.DEVICE_4, 1, PARTITION_INTERVAL -
10, true);
+ }
+ writtenPoint2 = generator.getTotalNumber();
+ }
+
+ try (final Connection connection = EnvFactory.getEnv().getConnection();
+ final Statement statement = connection.createStatement()) {
+
+ statement.execute(String.format("load \"%s\" sglevel=2",
tmpDir.getAbsolutePath()));
+
+ try (final ResultSet resultSet =
+ statement.executeQuery("select count(*) from root.sg.** group by
level=1,2")) {
+ if (resultSet.next()) {
+ long sg1Count = resultSet.getLong("count(root.sg.test_0.*.*)");
+ Assert.assertEquals(writtenPoint1, sg1Count);
+ long sg2Count = resultSet.getLong("count(root.sg.test_1.*.*)");
+ Assert.assertEquals(writtenPoint2, sg2Count);
+ } else {
+ Assert.fail("This ResultSet is empty.");
+ }
+ }
+ }
+ }
+
@Test
public void testLoadWithExtendTemplate() throws Exception {
final long writtenPoint1;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 0d9ed8ca883..fe97abc0251 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -1112,7 +1112,7 @@ public class IoTDBConfig {
private long loadTableSchemaCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
- private long loadMeasurementCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
+ private long loadMeasurementIdCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
private String[] loadActiveListeningDirs =
new String[] {
@@ -4008,11 +4008,11 @@ public class IoTDBConfig {
}
public long getLoadMeasurementIdCacheSizeInBytes() {
- return loadMeasurementCacheSizeInBytes;
+ return loadMeasurementIdCacheSizeInBytes;
}
- public void setLoadMeasurementCacheSizeInBytes(long
loadMeasurementCacheSizeInBytes) {
- this.loadMeasurementCacheSizeInBytes = loadMeasurementCacheSizeInBytes;
+ public void setLoadMeasurementIdCacheSizeInBytes(long
loadMeasurementIdCacheSizeInBytes) {
+ this.loadMeasurementIdCacheSizeInBytes = loadMeasurementIdCacheSizeInBytes;
}
public void setPipeReceiverFileDirs(String[] pipeReceiverFileDirs) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 5dba46abf99..738c8f58ec6 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -2313,10 +2313,10 @@ public class IoTDBDescriptor {
"load_table_schema_cache_size_in_bytes",
Long.toString(conf.getLoadTableSchemaCacheSizeInBytes()))));
- conf.setLoadMeasurementCacheSizeInBytes(
+ conf.setLoadMeasurementIdCacheSizeInBytes(
Long.parseLong(
properties.getProperty(
- "load_measurement_cache_size_in_bytes",
+ "load_measurement_id_cache_size_in_bytes",
Long.toString(conf.getLoadMeasurementIdCacheSizeInBytes()))));
conf.setLoadActiveListeningMaxThreadNum(