This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch tsFile_v4
in repository https://gitbox.apache.org/repos/asf/tsfile.git
The following commit(s) were added to refs/heads/tsFile_v4 by this push:
new 08a6d4b3 fix device order
08a6d4b3 is described below
commit 08a6d4b31eed1619100dbcea36d9ef47e6c92d3b
Author: jt2594838 <[email protected]>
AuthorDate: Fri Apr 12 18:58:45 2024 +0800
fix device order
---
.../java/org/apache/tsfile/file/metadata/TsFileMetadata.java | 3 ++-
.../java/org/apache/tsfile/write/writer/TsFileIOWriter.java | 2 +-
.../org/apache/tsfile/exception/TsFileExceptionTest.java | 2 +-
.../org/apache/tsfile/file/metadata/utils/TestHelper.java | 8 ++++++--
.../java/org/apache/tsfile/file/metadata/utils/Utils.java | 8 ++++----
.../test/java/org/apache/tsfile/read/GetAllDevicesTest.java | 12 ++++++++++--
.../src/test/java/org/apache/tsfile/utils/FileGenerator.java | 4 +++-
.../src/test/java/org/apache/tsfile/utils/RecordUtils.java | 4 +++-
8 files changed, 30 insertions(+), 13 deletions(-)
diff --git
a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
index f0dfcf53..dd339f03 100644
--- a/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
+++ b/tsfile/src/main/java/org/apache/tsfile/file/metadata/TsFileMetadata.java
@@ -19,6 +19,7 @@
package org.apache.tsfile.file.metadata;
+import java.util.TreeMap;
import org.apache.tsfile.compatibility.DeserializeConfig;
import org.apache.tsfile.utils.BloomFilter;
import org.apache.tsfile.utils.ReadWriteForEncodingUtils;
@@ -55,7 +56,7 @@ public class TsFileMetadata {
// metadataIndex
int tableIndexNodeNum = buffer.getInt();
- Map<String, MetadataIndexNode> tableIndexNodeMap = new HashMap<>();
+ Map<String, MetadataIndexNode> tableIndexNodeMap = new TreeMap<>();
for (int i = 0; i < tableIndexNodeNum; i++) {
String tableName = ReadWriteIOUtils.readString(buffer);
MetadataIndexNode metadataIndexNode =
diff --git
a/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
b/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
index 01f03004..8f107369 100644
--- a/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/tsfile/write/writer/TsFileIOWriter.java
@@ -456,7 +456,7 @@ public class TsFileIOWriter implements AutoCloseable {
splitDeviceByTable(deviceMetadataIndexMap);
// build an index root for each table
- Map<String, MetadataIndexNode> tableNodesMap = new HashMap<>();
+ Map<String, MetadataIndexNode> tableNodesMap = new TreeMap<>();
for (Entry<String, Map<IDeviceID, MetadataIndexNode>> entry :
tableDeviceNodesMap.entrySet()) {
tableNodesMap.put(entry.getKey(),
checkAndBuildLevelIndex(entry.getValue(), out));
}
diff --git
a/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
b/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
index 2132d999..74bfbc24 100644
--- a/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/exception/TsFileExceptionTest.java
@@ -140,7 +140,7 @@ public class TsFileExceptionTest {
@Test
public void testNoMeasurementException() {
NoMeasurementException e = new NoMeasurementException(MOCK);
- assertEquals(MOCK, e.getMessage());
+ assertEquals("No measurement for mock", e.getMessage());
}
@Test
diff --git
a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
index db43abcb..8506f2fd 100644
--- a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
+++ b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/TestHelper.java
@@ -21,6 +21,9 @@ package org.apache.tsfile.file.metadata.utils;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.file.header.PageHeader;
import org.apache.tsfile.file.header.PageHeaderTest;
+import org.apache.tsfile.file.metadata.DeviceMetadataIndexEntry;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
import org.apache.tsfile.file.metadata.MeasurementMetadataIndexEntry;
import org.apache.tsfile.file.metadata.MetadataIndexNode;
import org.apache.tsfile.file.metadata.TimeseriesMetadata;
@@ -47,9 +50,10 @@ public class TestHelper {
}
private static MetadataIndexNode generateMetaDataIndex() {
- MetadataIndexNode metaDataIndex = new
MetadataIndexNode(MetadataIndexNodeType.LEAF_MEASUREMENT);
+ MetadataIndexNode metaDataIndex = new
MetadataIndexNode(MetadataIndexNodeType.LEAF_DEVICE);
for (int i = 0; i < 5; i++) {
- metaDataIndex.addEntry(new MeasurementMetadataIndexEntry("d" + i, (long)
i * 5));
+ metaDataIndex.addEntry(new
DeviceMetadataIndexEntry(Factory.DEFAULT_FACTORY.create("d" + i),
+ (long) i * 5));
}
return metaDataIndex;
}
diff --git
a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
index 60761199..81fdd718 100644
--- a/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
+++ b/tsfile/src/test/java/org/apache/tsfile/file/metadata/utils/Utils.java
@@ -51,11 +51,11 @@ public class Utils {
public static boolean isFileMetaDataEqual(TsFileMetadata metadata1,
TsFileMetadata metadata2) {
if (Utils.isTwoObjectsNotNULL(metadata1, metadata2, "File MetaData")) {
if (Utils.isTwoObjectsNotNULL(
- metadata1.getTableMetadataIndexNodeMap().get(""),
- metadata2.getTableMetadataIndexNodeMap().get(""),
+
metadata1.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME),
+
metadata2.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME),
"Metadata " + "Index")) {
- MetadataIndexNode metaDataIndex1 =
metadata1.getTableMetadataIndexNodeMap().get("");
- MetadataIndexNode metaDataIndex2 =
metadata2.getTableMetadataIndexNodeMap().get("");
+ MetadataIndexNode metaDataIndex1 =
metadata1.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME);
+ MetadataIndexNode metaDataIndex2 =
metadata2.getTableMetadataIndexNodeMap().get(TestHelper.TEST_TABLE_NAME);
return metaDataIndex1.getChildren().size() ==
metaDataIndex2.getChildren().size();
}
}
diff --git a/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
b/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
index 3b7811f3..f979fcdc 100644
--- a/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
+++ b/tsfile/src/test/java/org/apache/tsfile/read/GetAllDevicesTest.java
@@ -19,6 +19,7 @@
package org.apache.tsfile.read;
+import java.util.ArrayList;
import org.apache.tsfile.common.conf.TSFileConfig;
import org.apache.tsfile.common.conf.TSFileDescriptor;
import org.apache.tsfile.file.metadata.IDeviceID;
@@ -72,14 +73,21 @@ public class GetAllDevicesTest {
public void testGetAllDevices(int deviceNum, int measurementNum) throws
IOException {
FileGenerator.generateFile(10000, deviceNum, measurementNum);
+
+
try (TsFileSequenceReader fileReader = new
TsFileSequenceReader(FILE_PATH)) {
+ List<IDeviceID> sortedDeviceIds = new ArrayList<>();
+ for (int i = 0; i < deviceNum; i++) {
+ sortedDeviceIds.add(IDeviceID.Factory.DEFAULT_FACTORY.create(
+ "d" + FileGenerator.generateIndexString(i, deviceNum)));
+ }
+ sortedDeviceIds.sort(null);
List<IDeviceID> devices = fileReader.getAllDevices();
Assert.assertEquals(deviceNum, devices.size());
for (int i = 0; i < deviceNum; i++) {
Assert.assertEquals(
- IDeviceID.Factory.DEFAULT_FACTORY.create(
- "d" + FileGenerator.generateIndexString(i, deviceNum)),
+ sortedDeviceIds.get(i),
devices.get(i));
}
diff --git a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
index 37a9a37c..aacd775a 100755
--- a/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/FileGenerator.java
@@ -22,6 +22,8 @@ import org.apache.tsfile.common.conf.TSFileConfig;
import org.apache.tsfile.common.conf.TSFileDescriptor;
import org.apache.tsfile.enums.TSDataType;
import org.apache.tsfile.exception.write.WriteProcessException;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
import org.apache.tsfile.file.metadata.enums.TSEncoding;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.write.TsFileWriter;
@@ -302,7 +304,7 @@ public class FileGenerator {
for (int i = 0; i < deviceNum; i++) {
for (int j = 0; j < measurementNum; j++) {
schema.registerTimeseries(
- new Path("d" + generateIndexString(i, deviceNum)),
+ Factory.DEFAULT_FACTORY.create("d" + generateIndexString(i,
deviceNum)),
new MeasurementSchema(
"s" + generateIndexString(j, measurementNum),
TSDataType.INT32,
diff --git a/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
b/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
index 53fc4ffe..fb0d04b5 100644
--- a/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
+++ b/tsfile/src/test/java/org/apache/tsfile/utils/RecordUtils.java
@@ -20,6 +20,8 @@ package org.apache.tsfile.utils;
import org.apache.tsfile.common.constant.JsonFormatConstant;
import org.apache.tsfile.enums.TSDataType;
+import org.apache.tsfile.file.metadata.IDeviceID;
+import org.apache.tsfile.file.metadata.IDeviceID.Factory;
import org.apache.tsfile.read.common.Path;
import org.apache.tsfile.write.record.TSRecord;
import org.apache.tsfile.write.record.datapoint.BooleanDataPoint;
@@ -68,7 +70,7 @@ public class RecordUtils {
for (int i = 2; i < items.length - 1; i += 2) {
// get measurementId and value
measurementId = items[i].trim();
- MeasurementGroup measurementGroup = schema.getSeriesSchema(new
Path(deviceId));
+ MeasurementGroup measurementGroup =
schema.getSeriesSchema(Factory.DEFAULT_FACTORY.create(deviceId));
IMeasurementSchema measurementSchema =
measurementGroup == null
? null