Skip to content

Commit 67c450b

Browse files
authored
Load: Add IT test about Load file across multiple time partitions (apache#16253)
* add IT * add IT
1 parent e626e8b commit 67c450b

File tree

3 files changed

+89
-6
lines changed

3 files changed

+89
-6
lines changed

integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBLoadTsFileIT.java

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ public void testLoad() throws Exception {
224224
generator.generateData(SchemaConfig.DEVICE_2, 10000, PARTITION_INTERVAL / 10_000, false);
225225
generator.generateData(SchemaConfig.DEVICE_3, 10000, PARTITION_INTERVAL / 10_000, false);
226226
generator.generateData(SchemaConfig.DEVICE_4, 10000, PARTITION_INTERVAL / 10_000, true);
227+
for (int i = 0; i < 10000; i++) {
228+
generator.generateData(SchemaConfig.DEVICE_4, 1, PARTITION_INTERVAL - 10, true);
229+
}
227230
writtenPoint2 = generator.getTotalNumber();
228231
}
229232

@@ -255,6 +258,86 @@ public void testLoad() throws Exception {
255258
}
256259
}
257260

261+
@Test
262+
public void testLoadAcrossMultipleTimePartitions() throws Exception {
263+
registerSchema();
264+
265+
final long writtenPoint1;
266+
// device 0, device 1, sg 0
267+
try (final TsFileGenerator generator =
268+
new TsFileGenerator(new File(tmpDir, "1-0-0-0.tsfile"))) {
269+
generator.registerTimeseries(
270+
SchemaConfig.DEVICE_0,
271+
Arrays.asList(
272+
SchemaConfig.MEASUREMENT_00,
273+
SchemaConfig.MEASUREMENT_01,
274+
SchemaConfig.MEASUREMENT_02,
275+
SchemaConfig.MEASUREMENT_03,
276+
SchemaConfig.MEASUREMENT_04,
277+
SchemaConfig.MEASUREMENT_05,
278+
SchemaConfig.MEASUREMENT_06,
279+
SchemaConfig.MEASUREMENT_07));
280+
generator.registerAlignedTimeseries(
281+
SchemaConfig.DEVICE_1,
282+
Arrays.asList(
283+
SchemaConfig.MEASUREMENT_10,
284+
SchemaConfig.MEASUREMENT_11,
285+
SchemaConfig.MEASUREMENT_12,
286+
SchemaConfig.MEASUREMENT_13,
287+
SchemaConfig.MEASUREMENT_14,
288+
SchemaConfig.MEASUREMENT_15,
289+
SchemaConfig.MEASUREMENT_16,
290+
SchemaConfig.MEASUREMENT_17));
291+
for (int i = 0; i < 1000; i++) {
292+
generator.generateData(SchemaConfig.DEVICE_0, 1, PARTITION_INTERVAL - 10, true);
293+
}
294+
for (int i = 0; i < 1000; i++) {
295+
generator.generateData(SchemaConfig.DEVICE_1, 1, PARTITION_INTERVAL - 10, true);
296+
}
297+
writtenPoint1 = generator.getTotalNumber();
298+
}
299+
300+
final long writtenPoint2;
301+
// device 2, device 3, device4, sg 1
302+
try (final TsFileGenerator generator =
303+
new TsFileGenerator(new File(tmpDir, "2-0-0-0.tsfile"))) {
304+
generator.registerTimeseries(
305+
SchemaConfig.DEVICE_2, Collections.singletonList(SchemaConfig.MEASUREMENT_20));
306+
generator.registerTimeseries(
307+
SchemaConfig.DEVICE_3, Collections.singletonList(SchemaConfig.MEASUREMENT_30));
308+
generator.registerAlignedTimeseries(
309+
SchemaConfig.DEVICE_4, Collections.singletonList(SchemaConfig.MEASUREMENT_40));
310+
for (int i = 0; i < 1000; i++) {
311+
generator.generateData(SchemaConfig.DEVICE_2, 1, PARTITION_INTERVAL - 10, true);
312+
}
313+
for (int i = 0; i < 1000; i++) {
314+
generator.generateData(SchemaConfig.DEVICE_3, 1, PARTITION_INTERVAL - 10, true);
315+
}
316+
for (int i = 0; i < 1000; i++) {
317+
generator.generateData(SchemaConfig.DEVICE_4, 1, PARTITION_INTERVAL - 10, true);
318+
}
319+
writtenPoint2 = generator.getTotalNumber();
320+
}
321+
322+
try (final Connection connection = EnvFactory.getEnv().getConnection();
323+
final Statement statement = connection.createStatement()) {
324+
325+
statement.execute(String.format("load \"%s\" sglevel=2", tmpDir.getAbsolutePath()));
326+
327+
try (final ResultSet resultSet =
328+
statement.executeQuery("select count(*) from root.sg.** group by level=1,2")) {
329+
if (resultSet.next()) {
330+
long sg1Count = resultSet.getLong("count(root.sg.test_0.*.*)");
331+
Assert.assertEquals(writtenPoint1, sg1Count);
332+
long sg2Count = resultSet.getLong("count(root.sg.test_1.*.*)");
333+
Assert.assertEquals(writtenPoint2, sg2Count);
334+
} else {
335+
Assert.fail("This ResultSet is empty.");
336+
}
337+
}
338+
}
339+
}
340+
258341
@Test
259342
public void testLoadWithExtendTemplate() throws Exception {
260343
final long writtenPoint1;

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,7 @@ public class IoTDBConfig {
11121112

11131113
private long loadTableSchemaCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
11141114

1115-
private long loadMeasurementCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
1115+
private long loadMeasurementIdCacheSizeInBytes = 2 * 1024 * 1024L; // 2MB
11161116

11171117
private String[] loadActiveListeningDirs =
11181118
new String[] {
@@ -4008,11 +4008,11 @@ public void setLoadTableSchemaCacheSizeInBytes(long loadTableSchemaCacheSizeInBy
40084008
}
40094009

40104010
public long getLoadMeasurementIdCacheSizeInBytes() {
4011-
return loadMeasurementCacheSizeInBytes;
4011+
return loadMeasurementIdCacheSizeInBytes;
40124012
}
40134013

4014-
public void setLoadMeasurementCacheSizeInBytes(long loadMeasurementCacheSizeInBytes) {
4015-
this.loadMeasurementCacheSizeInBytes = loadMeasurementCacheSizeInBytes;
4014+
public void setLoadMeasurementIdCacheSizeInBytes(long loadMeasurementIdCacheSizeInBytes) {
4015+
this.loadMeasurementIdCacheSizeInBytes = loadMeasurementIdCacheSizeInBytes;
40164016
}
40174017

40184018
public void setPipeReceiverFileDirs(String[] pipeReceiverFileDirs) {

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,10 +2313,10 @@ private void loadLoadTsFileProps(TrimProperties properties) throws IOException {
23132313
"load_table_schema_cache_size_in_bytes",
23142314
Long.toString(conf.getLoadTableSchemaCacheSizeInBytes()))));
23152315

2316-
conf.setLoadMeasurementCacheSizeInBytes(
2316+
conf.setLoadMeasurementIdCacheSizeInBytes(
23172317
Long.parseLong(
23182318
properties.getProperty(
2319-
"load_measurement_cache_size_in_bytes",
2319+
"load_measurement_id_cache_size_in_bytes",
23202320
Long.toString(conf.getLoadMeasurementIdCacheSizeInBytes()))));
23212321

23222322
conf.setLoadActiveListeningMaxThreadNum(

0 commit comments

Comments
 (0)