You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2021/03/11 08:34:37 UTC
[iotdb] 01/01: [IOTDB-1203] Create interface of IMeasurementSchema
This is an automated email from the ASF dual-hosted git repository.
sunzesong pushed a commit to branch IMeasurementSchema
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2113864fb19a78ba68c6a7d0b6522d41a4682621
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Thu Mar 11 16:33:31 2021 +0800
[IOTDB-1203] Create interface of IMeasurementSchema
---
.../java/org/apache/iotdb/cluster/ClientMain.java | 5 +-
.../cluster/client/sync/SyncClientAdaptor.java | 6 +--
.../apache/iotdb/cluster/metadata/CMManager.java | 14 ++---
.../apache/iotdb/cluster/metadata/MetaPuller.java | 15 +++---
.../iotdb/cluster/query/LocalQueryExecutor.java | 6 +--
.../caller/PullMeasurementSchemaHandler.java | 7 +--
.../cluster/client/sync/SyncClientAdaptorTest.java | 5 +-
.../org/apache/iotdb/cluster/common/IoTDBTest.java | 4 +-
.../org/apache/iotdb/cluster/common/TestUtils.java | 9 ++--
.../caller/PullMeasurementSchemaHandlerTest.java | 10 ++--
.../cluster/server/member/DataGroupMemberTest.java | 3 +-
.../cluster/server/member/MetaGroupMemberTest.java | 10 ++--
.../iotdb/db/engine/flush/MemTableFlushTask.java | 8 +--
.../iotdb/db/engine/flush/NotifyFlushMemTable.java | 4 +-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 8 +--
.../apache/iotdb/db/engine/memtable/IMemTable.java | 4 +-
.../db/engine/memtable/IWritableMemChunk.java | 4 +-
.../db/engine/memtable/PrimitiveMemTable.java | 4 +-
.../iotdb/db/engine/memtable/WritableMemChunk.java | 8 +--
.../db/engine/merge/manage/MergeResource.java | 12 ++---
.../db/engine/merge/task/MergeMultiChunkTask.java | 6 +--
.../iotdb/db/engine/merge/task/MergeTask.java | 4 +-
.../engine/storagegroup/StorageGroupProcessor.java | 4 +-
.../apache/iotdb/db/metadata/MLogTxtWriter.java | 4 +-
.../org/apache/iotdb/db/metadata/MManager.java | 13 ++---
.../java/org/apache/iotdb/db/metadata/MTree.java | 8 +--
.../apache/iotdb/db/metadata/MeasurementMeta.java | 14 ++---
.../iotdb/db/metadata/mnode/MeasurementMNode.java | 11 ++--
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 8 +--
.../db/qp/physical/sys/MeasurementMNodePlan.java | 9 ++--
.../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 29 +++++-----
.../org/apache/iotdb/db/utils/SchemaUtils.java | 3 +-
.../query/reader/series/SeriesReaderTestUtil.java | 3 +-
.../db/writelog/recover/SeqTsFileRecoverTest.java | 3 +-
.../java/org/apache/iotdb/session/Session.java | 6 +--
.../iotdb/spark/tsfile/NarrowConverter.scala | 4 +-
.../apache/iotdb/spark/tsfile/WideConverter.scala | 5 +-
.../iotdb/tsfile/read/TsFileSequenceReader.java | 13 ++---
.../apache/iotdb/tsfile/write/TsFileWriter.java | 13 ++---
.../tsfile/write/chunk/ChunkGroupWriterImpl.java | 3 +-
.../iotdb/tsfile/write/chunk/ChunkWriterImpl.java | 8 +--
.../tsfile/write/chunk/IChunkGroupWriter.java | 4 +-
.../apache/iotdb/tsfile/write/page/PageWriter.java | 6 +--
.../tsfile/write/schema/IMeasurementSchema.java | 62 ++++++++++++++++++++++
.../tsfile/write/schema/MeasurementSchema.java | 38 ++++++++++++-
.../apache/iotdb/tsfile/write/schema/Schema.java | 25 ++++-----
.../write/writer/RestorableTsFileIOWriter.java | 8 +--
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 4 +-
.../org/apache/iotdb/tsfile/utils/RecordUtils.java | 4 +-
.../tsfile/write/DefaultDeviceTemplateTest.java | 3 +-
.../write/schema/converter/SchemaBuilderTest.java | 17 +++---
51 files changed, 302 insertions(+), 186 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
index 7543f4a..cf30381 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
@@ -41,6 +41,7 @@ import org.apache.iotdb.service.rpc.thrift.TSProtocolVersion;
import org.apache.iotdb.service.rpc.thrift.TSStatus;
import org.apache.iotdb.session.SessionDataSet;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.commons.cli.CommandLine;
@@ -115,7 +116,7 @@ public class ClientMain {
private static final TSDataType[] DATA_TYPES = new TSDataType[] {TSDataType.DOUBLE};
- private static List<MeasurementSchema> schemas;
+ private static List<IMeasurementSchema> schemas;
private static final String[] DATA_QUERIES =
new String[] {
@@ -364,7 +365,7 @@ public class ClientMain {
private static void registerTimeseries(long sessionId, Client client) throws TException {
TSCreateTimeseriesReq req = new TSCreateTimeseriesReq();
req.setSessionId(sessionId);
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
req.setDataType(schema.getType().ordinal());
req.setEncoding(schema.getEncodingType().ordinal());
req.setCompressor(schema.getCompressor().ordinal());
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptor.java b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptor.java
index d518c62..2e43741 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptor.java
@@ -61,7 +61,7 @@ import org.apache.iotdb.tsfile.read.filter.TimeFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterFactory;
import org.apache.iotdb.tsfile.read.filter.operator.AndFilter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
import org.apache.thrift.TException;
@@ -268,10 +268,10 @@ public class SyncClientAdaptor {
return response.get();
}
- public static List<MeasurementSchema> pullMeasurementSchema(
+ public static List<IMeasurementSchema> pullMeasurementSchema(
AsyncDataClient client, PullSchemaRequest pullSchemaRequest)
throws TException, InterruptedException {
- AtomicReference<List<MeasurementSchema>> measurementSchemas = new AtomicReference<>();
+ AtomicReference<List<IMeasurementSchema>> measurementSchemas = new AtomicReference<>();
client.pullMeasurementSchema(
pullSchemaRequest,
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
index 39e6e8f..223e383 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CMManager.java
@@ -76,7 +76,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
import org.apache.thrift.TException;
@@ -189,10 +189,10 @@ public class CMManager extends MManager {
seriesType = super.getSeriesType(path);
} catch (PathNotExistException e) {
// pull from remote node
- List<MeasurementSchema> schemas =
+ List<IMeasurementSchema> schemas =
metaPuller.pullMeasurementSchemas(Collections.singletonList(path));
if (!schemas.isEmpty()) {
- MeasurementSchema measurementSchema = schemas.get(0);
+ IMeasurementSchema measurementSchema = schemas.get(0);
MeasurementMNode measurementMNode =
new MeasurementMNode(
null, measurementSchema.getMeasurementId(), measurementSchema, null);
@@ -269,8 +269,8 @@ public class CMManager extends MManager {
for (String s : measurementList) {
schemasToPull.add(deviceId.concatNode(s));
}
- List<MeasurementSchema> schemas = metaPuller.pullMeasurementSchemas(schemasToPull);
- for (MeasurementSchema schema : schemas) {
+ List<IMeasurementSchema> schemas = metaPuller.pullMeasurementSchemas(schemasToPull);
+ for (IMeasurementSchema schema : schemas) {
// TODO-Cluster: also pull alias?
MeasurementMNode measurementMNode =
new MeasurementMNode(null, schema.getMeasurementId(), schema, null);
@@ -337,10 +337,10 @@ public class CMManager extends MManager {
}
@Override
- public MeasurementSchema getSeriesSchema(PartialPath device, String measurement)
+ public IMeasurementSchema getSeriesSchema(PartialPath device, String measurement)
throws MetadataException {
try {
- MeasurementSchema measurementSchema = super.getSeriesSchema(device, measurement);
+ IMeasurementSchema measurementSchema = super.getSeriesSchema(device, measurement);
if (measurementSchema != null) {
return measurementSchema;
}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/MetaPuller.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/MetaPuller.java
index 13ece7b..57a6286 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/MetaPuller.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/MetaPuller.java
@@ -34,6 +34,7 @@ import org.apache.iotdb.cluster.utils.ClusterUtils;
import org.apache.iotdb.db.exception.metadata.MetadataException;
import org.apache.iotdb.db.metadata.PartialPath;
import org.apache.iotdb.db.service.IoTDB;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.thrift.TException;
@@ -77,7 +78,7 @@ public class MetaPuller {
* Pull the all timeseries schemas of given prefixPaths from remote nodes. All prefixPaths must
* contain the storage group.
*/
- List<MeasurementSchema> pullMeasurementSchemas(List<PartialPath> prefixPaths)
+ List<IMeasurementSchema> pullMeasurementSchemas(List<PartialPath> prefixPaths)
throws MetadataException {
logger.debug("{}: Pulling timeseries schemas of {}", metaGroupMember.getName(), prefixPaths);
// split the paths by the data groups that will hold them
@@ -88,7 +89,7 @@ public class MetaPuller {
partitionGroupPathMap.computeIfAbsent(partitionGroup, g -> new ArrayList<>()).add(prefixPath);
}
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
// pull timeseries schema from every group involved
if (logger.isDebugEnabled()) {
logger.debug(
@@ -127,7 +128,7 @@ public class MetaPuller {
private void pullMeasurementSchemas(
PartitionGroup partitionGroup,
List<PartialPath> prefixPaths,
- List<MeasurementSchema> results) {
+ List<IMeasurementSchema> results) {
if (partitionGroup.contains(metaGroupMember.getThisNode())) {
// the node is in the target group, synchronize with leader should be enough
try {
@@ -166,7 +167,7 @@ public class MetaPuller {
}
private boolean pullMeasurementSchemas(
- Node node, PullSchemaRequest request, List<MeasurementSchema> results) {
+ Node node, PullSchemaRequest request, List<IMeasurementSchema> results) {
if (logger.isDebugEnabled()) {
logger.debug(
"{}: Pulling timeseries schemas of {} and other {} paths from {}",
@@ -176,7 +177,7 @@ public class MetaPuller {
node);
}
- List<MeasurementSchema> schemas = null;
+ List<IMeasurementSchema> schemas = null;
try {
schemas = pullMeasurementSchemas(node, request);
} catch (IOException | TException e) {
@@ -215,9 +216,9 @@ public class MetaPuller {
return false;
}
- private List<MeasurementSchema> pullMeasurementSchemas(Node node, PullSchemaRequest request)
+ private List<IMeasurementSchema> pullMeasurementSchemas(Node node, PullSchemaRequest request)
throws TException, InterruptedException, IOException {
- List<MeasurementSchema> schemas;
+ List<IMeasurementSchema> schemas;
if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
AsyncDataClient client =
metaGroupMember
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/LocalQueryExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/LocalQueryExecutor.java
index 028b3fc..e2767d9 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/LocalQueryExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/LocalQueryExecutor.java
@@ -67,7 +67,7 @@ import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterFactory;
import org.apache.iotdb.tsfile.read.reader.IBatchReader;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
import org.slf4j.Logger;
@@ -302,7 +302,7 @@ public class LocalQueryExecutor {
// collect local timeseries schemas and send to the requester
// the measurements in them are the full paths.
List<String> prefixPaths = request.getPrefixPaths();
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (String prefixPath : prefixPaths) {
getCMManager().collectSeries(new PartialPath(prefixPath), measurementSchemas);
}
@@ -321,7 +321,7 @@ public class LocalQueryExecutor {
DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
try {
dataOutputStream.writeInt(measurementSchemas.size());
- for (MeasurementSchema timeseriesSchema : measurementSchemas) {
+ for (IMeasurementSchema timeseriesSchema : measurementSchemas) {
timeseriesSchema.serializeTo(dataOutputStream);
}
} catch (IOException ignored) {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandler.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandler.java
index aec74db..6eceac0 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandler.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandler.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.cluster.server.handlers.caller;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.PullSchemaResp;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.thrift.async.AsyncMethodCallback;
@@ -38,12 +39,12 @@ public class PullMeasurementSchemaHandler implements AsyncMethodCallback<PullSch
private Node owner;
private List<String> prefixPaths;
- private AtomicReference<List<MeasurementSchema>> timeseriesSchemas;
+ private AtomicReference<List<IMeasurementSchema>> timeseriesSchemas;
public PullMeasurementSchemaHandler(
Node owner,
List<String> prefixPaths,
- AtomicReference<List<MeasurementSchema>> timeseriesSchemas) {
+ AtomicReference<List<IMeasurementSchema>> timeseriesSchemas) {
this.owner = owner;
this.prefixPaths = prefixPaths;
this.timeseriesSchemas = timeseriesSchemas;
@@ -53,7 +54,7 @@ public class PullMeasurementSchemaHandler implements AsyncMethodCallback<PullSch
public void onComplete(PullSchemaResp response) {
ByteBuffer buffer = response.schemaBytes;
int size = buffer.getInt();
- List<MeasurementSchema> schemas = new ArrayList<>(size);
+ List<IMeasurementSchema> schemas = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
schemas.add(MeasurementSchema.deserializeFrom(buffer));
}
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptorTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptorTest.java
index 608c8a0..52c3198 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptorTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/client/sync/SyncClientAdaptorTest.java
@@ -50,6 +50,7 @@ import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.service.rpc.thrift.TSStatus;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
@@ -88,7 +89,7 @@ public class SyncClientAdaptorTest {
private ByteBuffer peekNextNotNullValueResult;
private Map<Integer, SimpleSnapshot> snapshotMap;
private ByteBuffer lastResult;
- private List<MeasurementSchema> measurementSchemas;
+ private List<IMeasurementSchema> measurementSchemas;
private List<TimeseriesSchema> timeseriesSchemas;
private List<String> paths;
@@ -196,7 +197,7 @@ public class SyncClientAdaptorTest {
PullSchemaRequest request, AsyncMethodCallback<PullSchemaResp> resultHandler) {
ByteBuffer byteBuffer = ByteBuffer.allocate(4096);
byteBuffer.putInt(measurementSchemas.size());
- for (MeasurementSchema schema : measurementSchemas) {
+ for (IMeasurementSchema schema : measurementSchemas) {
schema.serializeTo(byteBuffer);
}
byteBuffer.flip();
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
index e7b1b7b..eafe889 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
@@ -43,7 +43,7 @@ import org.apache.iotdb.tsfile.exception.filter.QueryFilterOptimizationException
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.expression.IExpression;
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.junit.After;
import org.junit.Before;
@@ -133,7 +133,7 @@ public abstract class IoTDBTest {
private void createTimeSeries(int sgNum, int seriesNum) {
try {
- MeasurementSchema schema = TestUtils.getTestMeasurementSchema(seriesNum);
+ IMeasurementSchema schema = TestUtils.getTestMeasurementSchema(seriesNum);
planExecutor.processNonQuery(
new CreateTimeSeriesPlan(
new PartialPath(
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestUtils.java b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestUtils.java
index 53becb4..3bd5a4e 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestUtils.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestUtils.java
@@ -53,6 +53,7 @@ import org.apache.iotdb.tsfile.utils.TsPrimitiveType;
import org.apache.iotdb.tsfile.write.TsFileWriter;
import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
@@ -186,7 +187,7 @@ public class TestUtils {
return "s" + seriesNum;
}
- public static MeasurementSchema getTestMeasurementSchema(int seriesNum) {
+ public static IMeasurementSchema getTestMeasurementSchema(int seriesNum) {
TSDataType dataType = TSDataType.DOUBLE;
TSEncoding encoding = IoTDBDescriptor.getInstance().getConfig().getDefaultDoubleEncoding();
return new MeasurementSchema(
@@ -200,7 +201,7 @@ public class TestUtils {
public static MeasurementMNode getTestMeasurementMNode(int seriesNum) {
TSDataType dataType = TSDataType.DOUBLE;
TSEncoding encoding = IoTDBDescriptor.getInstance().getConfig().getDefaultDoubleEncoding();
- MeasurementSchema measurementSchema =
+ IMeasurementSchema measurementSchema =
new MeasurementSchema(
TestUtils.getTestMeasurement(seriesNum),
dataType,
@@ -386,7 +387,7 @@ public class TestUtils {
file.getParentFile().mkdirs();
try (TsFileWriter writer = new TsFileWriter(file)) {
for (int k = 0; k < seriesNum; k++) {
- MeasurementSchema schema = getTestMeasurementSchema(k);
+ IMeasurementSchema schema = getTestMeasurementSchema(k);
writer.registerTimeseries(new Path(getTestSg(sgNum), schema.getMeasurementId()), schema);
}
@@ -394,7 +395,7 @@ public class TestUtils {
long timestamp = i * ptNum + j;
TSRecord record = new TSRecord(timestamp, getTestSg(sgNum));
for (int k = 0; k < seriesNum; k++) {
- MeasurementSchema schema = getTestMeasurementSchema(k);
+ IMeasurementSchema schema = getTestMeasurementSchema(k);
DataPoint dataPoint =
DataPoint.getDataPoint(
schema.getType(), schema.getMeasurementId(), String.valueOf(k));
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandlerTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandlerTest.java
index bd23a0d..45c7042 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandlerTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/PullMeasurementSchemaHandlerTest.java
@@ -23,7 +23,7 @@ import org.apache.iotdb.cluster.common.TestException;
import org.apache.iotdb.cluster.common.TestUtils;
import org.apache.iotdb.cluster.rpc.thrift.Node;
import org.apache.iotdb.cluster.rpc.thrift.PullSchemaResp;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.junit.Test;
@@ -44,8 +44,8 @@ public class PullMeasurementSchemaHandlerTest {
public void testComplete() throws InterruptedException {
Node owner = TestUtils.getNode(1);
String prefixPath = "root";
- AtomicReference<List<MeasurementSchema>> result = new AtomicReference<>();
- List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+ AtomicReference<List<IMeasurementSchema>> result = new AtomicReference<>();
+ List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
for (int i = 0; i < 10; i++) {
measurementSchemas.add(TestUtils.getTestMeasurementSchema(i));
}
@@ -59,7 +59,7 @@ public class PullMeasurementSchemaHandlerTest {
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
try {
dataOutputStream.writeInt(measurementSchemas.size());
- for (MeasurementSchema measurementSchema : measurementSchemas) {
+ for (IMeasurementSchema measurementSchema : measurementSchemas) {
measurementSchema.serializeTo(dataOutputStream);
}
} catch (IOException e) {
@@ -79,7 +79,7 @@ public class PullMeasurementSchemaHandlerTest {
public void testError() throws InterruptedException {
Node owner = TestUtils.getNode(1);
String prefixPath = "root";
- AtomicReference<List<MeasurementSchema>> result = new AtomicReference<>();
+ AtomicReference<List<IMeasurementSchema>> result = new AtomicReference<>();
PullMeasurementSchemaHandler handler =
new PullMeasurementSchemaHandler(owner, Collections.singletonList(prefixPath), result);
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
index 84d069a..cd3d8df 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
@@ -83,7 +83,6 @@ import org.apache.iotdb.tsfile.read.filter.TimeFilter;
import org.apache.iotdb.tsfile.read.filter.ValueFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.operator.AndFilter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
import org.apache.thrift.async.AsyncMethodCallback;
@@ -612,7 +611,7 @@ public class DataGroupMemberTest extends MemberTest {
PullSchemaRequest request = new PullSchemaRequest();
request.setPrefixPaths(Collections.singletonList(TestUtils.getTestSg(0)));
- AtomicReference<List<MeasurementSchema>> result = new AtomicReference<>();
+ AtomicReference<List<IMeasurementSchema>> result = new AtomicReference<>();
PullMeasurementSchemaHandler handler =
new PullMeasurementSchemaHandler(TestUtils.getNode(1), request.getPrefixPaths(), result);
new DataAsyncService(dataGroupMember).pullMeasurementSchema(request, handler);
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
index 08914d1..010ebb6 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
@@ -98,7 +98,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.common.BatchData;
import org.apache.iotdb.tsfile.read.filter.TimeFilter;
import org.apache.iotdb.tsfile.read.filter.ValueFilter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
import org.apache.thrift.async.AsyncMethodCallback;
@@ -277,7 +277,7 @@ public class MetaGroupMemberTest extends MemberTest {
}
private PullSchemaResp mockedPullTimeSeriesSchema(PullSchemaRequest request) {
- List<MeasurementSchema> schemas = new ArrayList<>();
+ List<IMeasurementSchema> schemas = new ArrayList<>();
List<String> prefixPaths = request.getPrefixPaths();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
@@ -286,7 +286,7 @@ public class MetaGroupMemberTest extends MemberTest {
if (!prefixPath.equals(TestUtils.getTestSeries(10, 0))) {
IoTDB.metaManager.collectSeries(new PartialPath(prefixPath), schemas);
dataOutputStream.writeInt(schemas.size());
- for (MeasurementSchema schema : schemas) {
+ for (IMeasurementSchema schema : schemas) {
schema.serializeTo(dataOutputStream);
}
} else {
@@ -856,7 +856,7 @@ public class MetaGroupMemberTest extends MemberTest {
insertPlan.setDataTypes(new TSDataType[insertPlan.getMeasurements().length]);
for (int i = 0; i < 10; i++) {
insertPlan.setDeviceId(new PartialPath(TestUtils.getTestSg(i)));
- MeasurementSchema schema = TestUtils.getTestMeasurementSchema(0);
+ IMeasurementSchema schema = TestUtils.getTestMeasurementSchema(0);
try {
IoTDB.metaManager.createTimeseries(
new PartialPath(schema.getMeasurementId()),
@@ -912,7 +912,7 @@ public class MetaGroupMemberTest extends MemberTest {
for (int i = 0; i < 10; i++) {
insertPlan.setDeviceId(new PartialPath(TestUtils.getTestSg(i)));
- MeasurementSchema schema = TestUtils.getTestMeasurementSchema(0);
+ IMeasurementSchema schema = TestUtils.getTestMeasurementSchema(0);
try {
IoTDB.metaManager.createTimeseries(
new PartialPath(schema.getMeasurementId()),
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
index 9397af1..5366f43 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
@@ -30,7 +30,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.iotdb.tsfile.write.chunk.ChunkWriterImpl;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import org.slf4j.Logger;
@@ -110,7 +110,7 @@ public class MemTableFlushTask {
for (Map.Entry<String, IWritableMemChunk> iWritableMemChunkEntry : value.entrySet()) {
long startTime = System.currentTimeMillis();
IWritableMemChunk series = iWritableMemChunkEntry.getValue();
- MeasurementSchema desc = series.getSchema();
+ IMeasurementSchema desc = series.getSchema();
TVList tvList = series.getSortedTVListForFlush();
sortTime += System.currentTimeMillis() - startTime;
encodingTaskQueue.put(new Pair<>(tvList, desc));
@@ -233,8 +233,8 @@ public class MemTableFlushTask {
break;
} else {
long starTime = System.currentTimeMillis();
- Pair<TVList, MeasurementSchema> encodingMessage =
- (Pair<TVList, MeasurementSchema>) task;
+ Pair<TVList, IMeasurementSchema> encodingMessage =
+ (Pair<TVList, IMeasurementSchema>) task;
IChunkWriter seriesWriter = new ChunkWriterImpl(encodingMessage.right);
writeOneSeries(encodingMessage.left, seriesWriter, encodingMessage.right.getType());
seriesWriter.sealCurrentPage();
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/NotifyFlushMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/NotifyFlushMemTable.java
index 5ba50d0..4aeb66c 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/NotifyFlushMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/NotifyFlushMemTable.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.engine.flush;
import org.apache.iotdb.db.engine.memtable.AbstractMemTable;
import org.apache.iotdb.db.engine.memtable.IMemTable;
import org.apache.iotdb.db.engine.memtable.IWritableMemChunk;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
/**
* Only used in sync flush and async close to start a flush task This memtable is not managed by
@@ -30,7 +30,7 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
public class NotifyFlushMemTable extends AbstractMemTable {
@Override
- protected IWritableMemChunk genMemSeries(MeasurementSchema schema) {
+ protected IWritableMemChunk genMemSeries(IMeasurementSchema schema) {
return null;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index 21c9bf2..3538aa1 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -33,7 +33,7 @@ import org.apache.iotdb.db.utils.datastructure.TVList;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.common.TimeRange;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import java.io.IOException;
import java.util.HashMap;
@@ -93,7 +93,7 @@ public abstract class AbstractMemTable implements IMemTable {
}
private IWritableMemChunk createIfNotExistAndGet(
- String deviceId, String measurement, MeasurementSchema schema) {
+ String deviceId, String measurement, IMeasurementSchema schema) {
Map<String, IWritableMemChunk> memSeries =
memTableMap.computeIfAbsent(deviceId, k -> new HashMap<>());
@@ -106,7 +106,7 @@ public abstract class AbstractMemTable implements IMemTable {
});
}
- protected abstract IWritableMemChunk genMemSeries(MeasurementSchema schema);
+ protected abstract IWritableMemChunk genMemSeries(IMeasurementSchema schema);
@Override
public void insert(InsertRowPlan insertRowPlan) {
@@ -157,7 +157,7 @@ public abstract class AbstractMemTable implements IMemTable {
public void write(
String deviceId,
String measurement,
- MeasurementSchema schema,
+ IMeasurementSchema schema,
long insertTime,
Object objectValue) {
IWritableMemChunk memSeries = createIfNotExistAndGet(deviceId, measurement, schema);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
index ce412a2..b3fb16a 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IMemTable.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.common.TimeRange;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import java.io.IOException;
import java.util.List;
@@ -49,7 +49,7 @@ public interface IMemTable {
void write(
String deviceId,
String measurement,
- MeasurementSchema schema,
+ IMeasurementSchema schema,
long insertTime,
Object objectValue);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
index bdb4bbc..622d864 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.engine.memtable;
import org.apache.iotdb.db.utils.datastructure.TVList;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Binary;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
public interface IWritableMemChunk {
@@ -56,7 +56,7 @@ public interface IWritableMemChunk {
long count();
- MeasurementSchema getSchema();
+ IMeasurementSchema getSchema();
/**
* served for query requests.
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
index 254d722..30d1a49 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
@@ -20,7 +20,7 @@
package org.apache.iotdb.db.engine.memtable;
import org.apache.iotdb.db.rescon.TVListAllocator;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import java.util.HashMap;
import java.util.Map;
@@ -38,7 +38,7 @@ public class PrimitiveMemTable extends AbstractMemTable {
}
@Override
- protected IWritableMemChunk genMemSeries(MeasurementSchema schema) {
+ protected IWritableMemChunk genMemSeries(IMeasurementSchema schema) {
return new WritableMemChunk(schema, TVListAllocator.getInstance().allocate(schema.getType()));
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
index 4536896..550c173 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
@@ -22,14 +22,14 @@ import org.apache.iotdb.db.utils.datastructure.TVList;
import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Binary;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
public class WritableMemChunk implements IWritableMemChunk {
- private MeasurementSchema schema;
+ private IMeasurementSchema schema;
private TVList list;
- public WritableMemChunk(MeasurementSchema schema, TVList list) {
+ public WritableMemChunk(IMeasurementSchema schema, TVList list) {
this.schema = schema;
this.list = list;
}
@@ -188,7 +188,7 @@ public class WritableMemChunk implements IWritableMemChunk {
}
@Override
- public MeasurementSchema getSchema() {
+ public IMeasurementSchema getSchema() {
return schema;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/manage/MergeResource.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/manage/MergeResource.java
index bd1ea17..9853864 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/merge/manage/MergeResource.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/manage/MergeResource.java
@@ -32,7 +32,7 @@ import org.apache.iotdb.tsfile.read.common.Chunk;
import org.apache.iotdb.tsfile.read.reader.IPointReader;
import org.apache.iotdb.tsfile.write.chunk.ChunkWriterImpl;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import java.io.IOException;
@@ -61,9 +61,9 @@ public class MergeResource {
private Map<TsFileResource, TsFileSequenceReader> fileReaderCache = new HashMap<>();
private Map<TsFileResource, RestorableTsFileIOWriter> fileWriterCache = new HashMap<>();
private Map<TsFileResource, List<Modification>> modificationCache = new HashMap<>();
- private Map<PartialPath, MeasurementSchema> measurementSchemaMap =
+ private Map<PartialPath, IMeasurementSchema> measurementSchemaMap =
new HashMap<>(); // is this too waste?
- private Map<MeasurementSchema, IChunkWriter> chunkWriterCache = new ConcurrentHashMap<>();
+ private Map<IMeasurementSchema, IChunkWriter> chunkWriterCache = new ConcurrentHashMap<>();
private long timeLowerBound = Long.MIN_VALUE;
@@ -103,7 +103,7 @@ public class MergeResource {
chunkWriterCache.clear();
}
- public MeasurementSchema getSchema(PartialPath path) {
+ public IMeasurementSchema getSchema(PartialPath path) {
return measurementSchemaMap.get(path);
}
@@ -171,7 +171,7 @@ public class MergeResource {
* Construct the a new or get an existing ChunkWriter of a measurement. Different timeseries of
* the same measurement and data type shares the same instance.
*/
- public IChunkWriter getChunkWriter(MeasurementSchema measurementSchema) {
+ public IChunkWriter getChunkWriter(IMeasurementSchema measurementSchema) {
return chunkWriterCache.computeIfAbsent(measurementSchema, ChunkWriterImpl::new);
}
@@ -256,7 +256,7 @@ public class MergeResource {
this.cacheDeviceMeta = cacheDeviceMeta;
}
- public void setMeasurementSchemaMap(Map<PartialPath, MeasurementSchema> measurementSchemaMap) {
+ public void setMeasurementSchemaMap(Map<PartialPath, IMeasurementSchema> measurementSchemaMap) {
this.measurementSchemaMap = measurementSchemaMap;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeMultiChunkTask.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeMultiChunkTask.java
index 70f24d5..0dcf205 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeMultiChunkTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeMultiChunkTask.java
@@ -40,7 +40,7 @@ import org.apache.iotdb.tsfile.read.common.Chunk;
import org.apache.iotdb.tsfile.read.reader.IPointReader;
import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReader;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
@@ -297,7 +297,7 @@ public class MergeMultiChunkTask {
RestorableTsFileIOWriter mergeFileWriter = resource.getMergeFileWriter(currTsFile);
for (PartialPath path : currMergingPaths) {
- MeasurementSchema schema = resource.getSchema(path);
+ IMeasurementSchema schema = resource.getSchema(path);
mergeFileWriter.addSchema(path, schema);
}
// merge unseq data with seq data in this file or small chunks in this file into a larger chunk
@@ -619,7 +619,7 @@ public class MergeMultiChunkTask {
while (!chunkIdxHeap.isEmpty()) {
int pathIdx = chunkIdxHeap.poll();
PartialPath path = currMergingPaths.get(pathIdx);
- MeasurementSchema measurementSchema = resource.getSchema(path);
+ IMeasurementSchema measurementSchema = resource.getSchema(path);
IChunkWriter chunkWriter = resource.getChunkWriter(measurementSchema);
if (Thread.interrupted()) {
Thread.currentThread().interrupt();
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeTask.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeTask.java
index ec96335..cb98e41 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeTask.java
@@ -29,7 +29,7 @@ import org.apache.iotdb.db.metadata.mnode.MNode;
import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
import org.apache.iotdb.db.service.IoTDB;
import org.apache.iotdb.db.utils.MergeUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -146,7 +146,7 @@ public class MergeTask implements Callable<Void> {
mergeLogger.logFiles(resource);
Set<PartialPath> devices = IoTDB.metaManager.getDevices(new PartialPath(storageGroupName));
- Map<PartialPath, MeasurementSchema> measurementSchemaMap = new HashMap<>();
+ Map<PartialPath, IMeasurementSchema> measurementSchemaMap = new HashMap<>();
List<PartialPath> unmergedSeries = new ArrayList<>();
for (PartialPath device : devices) {
MNode deviceNode = IoTDB.metaManager.getNodeByPath(device);
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index b5b76df..1f9d80e 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -75,7 +75,7 @@ import org.apache.iotdb.tsfile.fileSystem.fsFactory.FSFactory;
import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import org.apache.commons.io.FileUtils;
@@ -1609,7 +1609,7 @@ public class StorageGroupProcessor {
(timeFilter == null ? "null" : timeFilter));
}
- MeasurementSchema schema = IoTDB.metaManager.getSeriesSchema(deviceId, measurementId);
+ IMeasurementSchema schema = IoTDB.metaManager.getSeriesSchema(deviceId, measurementId);
List<TsFileResource> tsfileResourcesForQuery = new ArrayList<>();
long timeLowerBound =
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java b/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
index ebfa2c6..853436c 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MLogTxtWriter.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.db.qp.physical.sys.MNodePlan;
import org.apache.iotdb.db.qp.physical.sys.MeasurementMNodePlan;
import org.apache.iotdb.db.qp.physical.sys.StorageGroupMNodePlan;
import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -228,7 +228,7 @@ public class MLogTxtWriter implements AutoCloseable {
if (plan.getAlias() != null) {
s.append(plan.getAlias());
}
- MeasurementSchema schema = plan.getSchema();
+ IMeasurementSchema schema = plan.getSchema();
s.append(",").append(schema.getType().ordinal()).append(",");
s.append(schema.getEncodingType().ordinal()).append(",");
s.append(schema.getCompressor().ordinal()).append(",");
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index c6bcb78..f6bb7ab 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -69,6 +69,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.utils.Pair;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
@@ -908,7 +909,7 @@ public class MManager {
try {
Pair<Map<String, String>, Map<String, String>> tagAndAttributePair =
tagLogFile.read(config.getTagAttributeTotalSize(), leaf.getOffset());
- MeasurementSchema measurementSchema = leaf.getSchema();
+ IMeasurementSchema measurementSchema = leaf.getSchema();
res.add(
new ShowTimeSeriesResult(
leaf.getFullPath(),
@@ -996,7 +997,7 @@ public class MManager {
return res;
}
- public MeasurementSchema getSeriesSchema(PartialPath device, String measurement)
+ public IMeasurementSchema getSeriesSchema(PartialPath device, String measurement)
throws MetadataException {
MNode node = mtree.getNodeByPath(device);
MNode leaf = node.getChild(measurement);
@@ -1654,7 +1655,7 @@ public class MManager {
while (!nodeDeque.isEmpty()) {
MNode node = nodeDeque.removeFirst();
if (node instanceof MeasurementMNode) {
- MeasurementSchema nodeSchema = ((MeasurementMNode) node).getSchema();
+ IMeasurementSchema nodeSchema = ((MeasurementMNode) node).getSchema();
timeseriesSchemas.add(
new TimeseriesSchema(
node.getFullPath(),
@@ -1673,13 +1674,13 @@ public class MManager {
}
public void collectMeasurementSchema(
- MNode startingNode, Collection<MeasurementSchema> measurementSchemas) {
+ MNode startingNode, Collection<IMeasurementSchema> measurementSchemas) {
Deque<MNode> nodeDeque = new ArrayDeque<>();
nodeDeque.addLast(startingNode);
while (!nodeDeque.isEmpty()) {
MNode node = nodeDeque.removeFirst();
if (node instanceof MeasurementMNode) {
- MeasurementSchema nodeSchema = ((MeasurementMNode) node).getSchema();
+ IMeasurementSchema nodeSchema = ((MeasurementMNode) node).getSchema();
measurementSchemas.add(
new MeasurementSchema(
node.getName(),
@@ -1693,7 +1694,7 @@ public class MManager {
}
/** Collect the timeseries schemas under "startingPath". */
- public void collectSeries(PartialPath startingPath, List<MeasurementSchema> measurementSchemas) {
+ public void collectSeries(PartialPath startingPath, List<IMeasurementSchema> measurementSchemas) {
MNode mNode;
try {
mNode = getNodeByPath(startingPath);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index 39a5088..762e2a8 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -41,7 +41,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -496,7 +496,7 @@ public class MTree implements Serializable {
/**
* Get measurement schema for a given path. Path must be a complete Path from root to leaf node.
*/
- MeasurementSchema getSchema(PartialPath path) throws MetadataException {
+ IMeasurementSchema getSchema(PartialPath path) throws MetadataException {
MeasurementMNode node = (MeasurementMNode) getNodeByPath(path);
return node.getSchema();
}
@@ -1082,7 +1082,7 @@ public class MTree implements Serializable {
PartialPath nodePath = node.getPartialPath();
String[] tsRow = new String[7];
tsRow[0] = ((MeasurementMNode) node).getAlias();
- MeasurementSchema measurementSchema = ((MeasurementMNode) node).getSchema();
+ IMeasurementSchema measurementSchema = ((MeasurementMNode) node).getSchema();
tsRow[1] = getStorageGroupPath(nodePath).getFullPath();
tsRow[2] = measurementSchema.getType().toString();
tsRow[3] = measurementSchema.getEncodingType().toString();
@@ -1193,7 +1193,7 @@ public class MTree implements Serializable {
* <p>e.g., MTree has [root.sg1.d1.s1, root.sg1.d1.s2, root.sg1.d2.s1] given path = root.sg1.d1
* return [s1, s2]
*
- * @param partial Path
+ * @param path Path
* @return All child nodes' seriesPath(s) of given seriesPath.
*/
Set<String> getChildNodeInNextLevel(PartialPath path) throws MetadataException {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MeasurementMeta.java b/server/src/main/java/org/apache/iotdb/db/metadata/MeasurementMeta.java
index 7963c7b..59a5068 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MeasurementMeta.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MeasurementMeta.java
@@ -19,34 +19,34 @@
package org.apache.iotdb.db.metadata;
import org.apache.iotdb.tsfile.read.TimeValuePair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
public class MeasurementMeta {
- private MeasurementSchema measurementSchema = null;
+ private IMeasurementSchema measurementSchema;
private String alias = null; // TODO get schema by alias
private TimeValuePair timeValuePair = null;
public MeasurementMeta(
- MeasurementSchema measurementSchema, String alias, TimeValuePair timeValuePair) {
+ IMeasurementSchema measurementSchema, String alias, TimeValuePair timeValuePair) {
this.measurementSchema = measurementSchema;
this.alias = alias;
this.timeValuePair = timeValuePair;
}
- public MeasurementMeta(MeasurementSchema measurementSchema, String alias) {
+ public MeasurementMeta(IMeasurementSchema measurementSchema, String alias) {
this.measurementSchema = measurementSchema;
this.alias = alias;
}
- public MeasurementMeta(MeasurementSchema measurementSchema) {
+ public MeasurementMeta(IMeasurementSchema measurementSchema) {
this.measurementSchema = measurementSchema;
}
- public MeasurementSchema getMeasurementSchema() {
+ public IMeasurementSchema getMeasurementSchema() {
return measurementSchema;
}
- public void setMeasurementSchema(MeasurementSchema measurementSchema) {
+ public void setMeasurementSchema(IMeasurementSchema measurementSchema) {
this.measurementSchema = measurementSchema;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
index 5f096bd..008bbe2 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MeasurementMNode.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.TimeValuePair;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import java.io.IOException;
@@ -36,7 +37,7 @@ public class MeasurementMNode extends MNode {
private static final long serialVersionUID = -1199657856921206435L;
/** measurement's Schema for one timeseries represented by current leaf node */
- private MeasurementSchema schema;
+ private IMeasurementSchema schema;
private String alias;
// tag/attribute's start offset in tag file
@@ -59,13 +60,13 @@ public class MeasurementMNode extends MNode {
}
public MeasurementMNode(
- MNode parent, String measurementName, MeasurementSchema schema, String alias) {
+ MNode parent, String measurementName, IMeasurementSchema schema, String alias) {
super(parent, measurementName);
this.schema = schema;
this.alias = alias;
}
- public MeasurementSchema getSchema() {
+ public IMeasurementSchema getSchema() {
return schema;
}
@@ -119,7 +120,7 @@ public class MeasurementMNode extends MNode {
this.alias = alias;
}
- public void setSchema(MeasurementSchema schema) {
+ public void setSchema(IMeasurementSchema schema) {
this.schema = schema;
}
@@ -147,7 +148,7 @@ public class MeasurementMNode extends MNode {
props.put(propInfo.split(":")[0], propInfo.split(":")[1]);
}
}
- MeasurementSchema schema =
+ IMeasurementSchema schema =
new MeasurementSchema(
name,
Byte.parseByte(nodeInfo[3]),
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 54a0bf7..41d665f 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -134,7 +134,7 @@ import org.apache.iotdb.tsfile.read.query.dataset.EmptyDataSet;
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.Pair;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import java.io.File;
@@ -955,7 +955,7 @@ public class PlanExecutor implements IPlanExecutor {
String.format(
"Cannot load file %s because the file has crashed.", file.getAbsolutePath()));
}
- Map<Path, MeasurementSchema> schemaMap = new HashMap<>();
+ Map<Path, IMeasurementSchema> schemaMap = new HashMap<>();
List<ChunkGroupMetadata> chunkGroupMetadataList = new ArrayList<>();
try (TsFileSequenceReader reader = new TsFileSequenceReader(file.getAbsolutePath(), false)) {
@@ -985,7 +985,7 @@ public class PlanExecutor implements IPlanExecutor {
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
private void createSchemaAutomatically(
List<ChunkGroupMetadata> chunkGroupMetadataList,
- Map<Path, MeasurementSchema> knownSchemas,
+ Map<Path, IMeasurementSchema> knownSchemas,
int sgLevel)
throws QueryProcessException, MetadataException {
if (chunkGroupMetadataList.isEmpty()) {
@@ -1005,7 +1005,7 @@ public class PlanExecutor implements IPlanExecutor {
+ chunkMetadata.getMeasurementUid());
if (!registeredSeries.contains(series)) {
registeredSeries.add(series);
- MeasurementSchema schema =
+ IMeasurementSchema schema =
knownSchemas.get(new Path(series.getDevice(), series.getMeasurement()));
if (schema == null) {
throw new MetadataException(
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MeasurementMNodePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MeasurementMNodePlan.java
index cee286a..a46f8f7 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MeasurementMNodePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/MeasurementMNodePlan.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.qp.physical.sys;
import org.apache.iotdb.db.metadata.PartialPath;
import org.apache.iotdb.db.qp.logical.Operator;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import java.io.DataOutputStream;
@@ -31,7 +32,7 @@ import java.util.List;
import java.util.Objects;
public class MeasurementMNodePlan extends MNodePlan {
- private MeasurementSchema schema;
+ private IMeasurementSchema schema;
private String alias;
private long offset;
@@ -40,7 +41,7 @@ public class MeasurementMNodePlan extends MNodePlan {
}
public MeasurementMNodePlan(
- String name, String alias, long offset, int childSize, MeasurementSchema schema) {
+ String name, String alias, long offset, int childSize, IMeasurementSchema schema) {
super(false, Operator.OperatorType.MEASUREMENT_MNODE);
this.name = name;
this.alias = alias;
@@ -91,11 +92,11 @@ public class MeasurementMNodePlan extends MNodePlan {
index = buffer.getLong();
}
- public MeasurementSchema getSchema() {
+ public IMeasurementSchema getSchema() {
return schema;
}
- public void setSchema(MeasurementSchema schema) {
+ public void setSchema(IMeasurementSchema schema) {
this.schema = schema;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java b/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
index b7e0842..93867cf 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/upgrade/TsFileOnlineUpgradeTool.java
@@ -43,6 +43,7 @@ import org.apache.iotdb.tsfile.v2.read.TsFileSequenceReaderForV2;
import org.apache.iotdb.tsfile.v2.read.reader.page.PageReaderV2;
import org.apache.iotdb.tsfile.write.chunk.ChunkWriterImpl;
import org.apache.iotdb.tsfile.write.chunk.IChunkWriter;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
@@ -85,7 +86,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
* file metadata size. Then the reader will skip the first TSFileConfig.OLD_MAGIC_STRING.length()
* bytes of the file for preparing reading real data.
*
- * @param file the data file
+ * @param resourceToBeUpgraded resource to be updated
* @throws IOException If some I/O error occurs
*/
public TsFileOnlineUpgradeTool(TsFileResource resourceToBeUpgraded) throws IOException {
@@ -103,7 +104,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
/**
* upgrade a single TsFile
*
- * @param tsFileName old version tsFile's absolute path
+ * @param resourceToBeUpgraded resource to be updated
* @param upgradedResources new version tsFiles' resources
*/
public static void upgradeOneTsfile(
@@ -143,7 +144,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
List<List<ByteBuffer>> pageDataInChunkGroup = new ArrayList<>();
List<List<Boolean>> needToDecodeInfoInChunkGroup = new ArrayList<>();
byte marker;
- List<MeasurementSchema> measurementSchemaList = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemaList = new ArrayList<>();
try {
while ((marker = reader.readMarker()) != MetaMarker.SEPARATOR) {
switch (marker) {
@@ -153,7 +154,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
newChunkGroup = false;
}
ChunkHeader header = reader.readChunkHeader();
- MeasurementSchema measurementSchema =
+ IMeasurementSchema measurementSchema =
new MeasurementSchema(
header.getMeasurementID(),
header.getDataType(),
@@ -297,14 +298,14 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
*/
private void rewrite(
String deviceId,
- List<MeasurementSchema> schemas,
+ List<IMeasurementSchema> schemas,
List<List<PageHeader>> pageHeadersInChunkGroup,
List<List<ByteBuffer>> dataInChunkGroup,
List<List<Boolean>> needToDecodeInfoInChunkGroup)
throws IOException, PageException {
- Map<Long, Map<MeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup = new HashMap<>();
+ Map<Long, Map<IMeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup = new HashMap<>();
for (int i = 0; i < schemas.size(); i++) {
- MeasurementSchema schema = schemas.get(i);
+ IMeasurementSchema schema = schemas.get(i);
List<ByteBuffer> pageDataInChunk = dataInChunkGroup.get(i);
List<PageHeader> pageHeadersInChunk = pageHeadersInChunkGroup.get(i);
List<Boolean> needToDecodeInfoInChunk = needToDecodeInfoInChunkGroup.get(i);
@@ -326,7 +327,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
}
}
- for (Entry<Long, Map<MeasurementSchema, ChunkWriterImpl>> entry :
+ for (Entry<Long, Map<IMeasurementSchema, ChunkWriterImpl>> entry :
chunkWritersInChunkGroup.entrySet()) {
long partitionId = entry.getKey();
TsFileIOWriter tsFileIOWriter = partitionWriterMap.get(partitionId);
@@ -375,15 +376,15 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
private void writePageInToFile(
File oldTsFile,
- MeasurementSchema schema,
+ IMeasurementSchema schema,
PageHeader pageHeader,
ByteBuffer pageData,
- Map<Long, Map<MeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup,
+ Map<Long, Map<IMeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup,
boolean isOnlyOnePageChunk)
throws PageException {
long partitionId = StorageEngine.getTimePartition(pageHeader.getStartTime());
getOrDefaultTsFileIOWriter(oldTsFile, partitionId);
- Map<MeasurementSchema, ChunkWriterImpl> chunkWriters =
+ Map<IMeasurementSchema, ChunkWriterImpl> chunkWriters =
chunkWritersInChunkGroup.getOrDefault(partitionId, new HashMap<>());
ChunkWriterImpl chunkWriter = chunkWriters.getOrDefault(schema, new ChunkWriterImpl(schema));
chunkWriter.writePageHeaderAndDataIntoBuff(pageData, pageHeader, isOnlyOnePageChunk);
@@ -393,9 +394,9 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
private void decodeAndWritePageInToFiles(
File oldTsFile,
- MeasurementSchema schema,
+ IMeasurementSchema schema,
ByteBuffer pageData,
- Map<Long, Map<MeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup)
+ Map<Long, Map<IMeasurementSchema, ChunkWriterImpl>> chunkWritersInChunkGroup)
throws IOException {
valueDecoder.reset();
PageReaderV2 pageReader =
@@ -406,7 +407,7 @@ public class TsFileOnlineUpgradeTool implements AutoCloseable {
Object value = batchData.currentValue();
long partitionId = StorageEngine.getTimePartition(time);
- Map<MeasurementSchema, ChunkWriterImpl> chunkWriters =
+ Map<IMeasurementSchema, ChunkWriterImpl> chunkWriters =
chunkWritersInChunkGroup.getOrDefault(partitionId, new HashMap<>());
ChunkWriterImpl chunkWriter = chunkWriters.getOrDefault(schema, new ChunkWriterImpl(schema));
getOrDefaultTsFileIOWriter(oldTsFile, partitionId);
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
index f040c6b..92e5f3a 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/SchemaUtils.java
@@ -30,6 +30,7 @@ import org.apache.iotdb.db.service.IoTDB;
import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.TimeseriesSchema;
@@ -114,7 +115,7 @@ public class SchemaUtils {
TSDataType dataType = schema.getType();
TSEncoding encoding = schema.getEncodingType();
CompressionType compressionType = schema.getCompressor();
- MeasurementSchema measurementSchema =
+ IMeasurementSchema measurementSchema =
new MeasurementSchema(path.getMeasurement(), dataType, encoding, compressionType);
MeasurementMNode measurementMNode =
diff --git a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
index 4a699e0..2a9d808 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
@@ -37,6 +37,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.write.TsFileWriter;
import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import java.io.File;
@@ -167,7 +168,7 @@ public class SeriesReaderTestUtil {
List<String> deviceIds)
throws IOException, WriteProcessException {
TsFileWriter fileWriter = new TsFileWriter(tsFileResource.getTsFile());
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
for (MeasurementSchema measurementSchema : measurementSchemas) {
template.put(measurementSchema.getMeasurementId(), measurementSchema);
}
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
index 0dae987..f24f023 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
@@ -48,6 +48,7 @@ import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
import org.apache.iotdb.tsfile.write.TsFileWriter;
import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.Schema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
@@ -113,7 +114,7 @@ public class SeqTsFileRecoverTest {
}
Schema schema = new Schema();
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
for (int i = 0; i < 10; i++) {
template.put(
"sensor" + i, new MeasurementSchema("sensor" + i, TSDataType.INT64, TSEncoding.PLAIN));
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java b/session/src/main/java/org/apache/iotdb/session/Session.java
index b873ade..cfeb6c0 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -42,7 +42,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
import org.apache.iotdb.tsfile.write.record.Tablet;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1008,7 +1008,7 @@ public class Session {
TSInsertTabletReq request = new TSInsertTabletReq();
request.setDeviceId(tablet.deviceId);
- for (MeasurementSchema measurementSchema : tablet.getSchemas()) {
+ for (IMeasurementSchema measurementSchema : tablet.getSchemas()) {
request.addToMeasurements(measurementSchema.getMeasurementId());
request.addToTypes(measurementSchema.getType().ordinal());
}
@@ -1109,7 +1109,7 @@ public class Session {
request.addToDeviceIds(tablet.deviceId);
List<String> measurements = new ArrayList<>();
List<Integer> dataTypes = new ArrayList<>();
- for (MeasurementSchema measurementSchema : tablet.getSchemas()) {
+ for (IMeasurementSchema measurementSchema : tablet.getSchemas()) {
measurements.add(measurementSchema.getMeasurementId());
dataTypes.add(measurementSchema.getType().ordinal());
}
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
index 1291796..503f24f 100644
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/NarrowConverter.scala
@@ -36,7 +36,7 @@ import org.apache.iotdb.tsfile.read.expression.{IExpression, QueryExpression}
import org.apache.iotdb.tsfile.read.filter.{TimeFilter, ValueFilter}
import org.apache.iotdb.tsfile.write.record.TSRecord
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint
-import org.apache.iotdb.tsfile.write.schema.{MeasurementSchema, Schema}
+import org.apache.iotdb.tsfile.write.schema.{IMeasurementSchema, MeasurementSchema, Schema}
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.sources._
import org.apache.spark.sql.types._
@@ -527,7 +527,7 @@ object NarrowConverter extends Converter {
* @param options encoding options
* @return MeasurementSchema
*/
- def getSeriesSchema(field: StructField, options: Map[String, String]): MeasurementSchema = {
+ def getSeriesSchema(field: StructField, options: Map[String, String]): IMeasurementSchema = {
val dataType = getTsDataType(field.dataType)
val encodingStr = dataType match {
case TSDataType.BOOLEAN => options.getOrElse(QueryConstant.BOOLEAN, TSEncoding.PLAIN.toString)
diff --git a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
index 293bb65..e7a8e42 100755
--- a/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
+++ b/spark-tsfile/src/main/scala/org/apache/iotdb/spark/tsfile/WideConverter.scala
@@ -35,10 +35,11 @@ import org.apache.iotdb.tsfile.read.filter.{TimeFilter, ValueFilter}
import org.apache.iotdb.tsfile.utils.Binary
import org.apache.iotdb.tsfile.write.record.TSRecord
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint
-import org.apache.iotdb.tsfile.write.schema.{MeasurementSchema, Schema}
+import org.apache.iotdb.tsfile.write.schema.{IMeasurementSchema, MeasurementSchema, Schema}
import org.apache.spark.sql.catalyst.InternalRow
import org.apache.spark.sql.sources._
import org.apache.spark.sql.types._
+
import scala.collection.JavaConversions._
import scala.collection.mutable
import scala.collection.mutable.ListBuffer
@@ -421,7 +422,7 @@ object WideConverter extends Converter {
* @param options encoding options
* @return MeasurementSchema
*/
- def getSeriesSchema(field: StructField, options: Map[String, String]): MeasurementSchema = {
+ def getSeriesSchema(field: StructField, options: Map[String, String]): IMeasurementSchema = {
val dataType = getTsDataType(field.dataType)
val encodingStr = dataType match {
case TSDataType.BOOLEAN => options.getOrElse(QueryConstant.BOOLEAN, TSEncoding.PLAIN.toString)
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 256288f..af2829a 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -48,6 +48,7 @@ import org.apache.iotdb.tsfile.read.reader.page.PageReader;
import org.apache.iotdb.tsfile.utils.BloomFilter;
import org.apache.iotdb.tsfile.utils.Pair;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.slf4j.Logger;
@@ -944,7 +945,7 @@ public class TsFileSequenceReader implements AutoCloseable {
*/
@SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
public long selfCheck(
- Map<Path, MeasurementSchema> newSchema,
+ Map<Path, IMeasurementSchema> newSchema,
List<ChunkGroupMetadata> chunkGroupMetadataList,
boolean fastFinish)
throws IOException {
@@ -985,7 +986,7 @@ public class TsFileSequenceReader implements AutoCloseable {
long truncatedSize = headerLength;
byte marker;
String lastDeviceId = null;
- List<MeasurementSchema> measurementSchemaList = new ArrayList<>();
+ List<IMeasurementSchema> measurementSchemaList = new ArrayList<>();
try {
while ((marker = this.readMarker()) != MetaMarker.SEPARATOR) {
switch (marker) {
@@ -997,7 +998,7 @@ public class TsFileSequenceReader implements AutoCloseable {
// insertion is not tolerable
ChunkHeader chunkHeader = this.readChunkHeader(marker);
measurementID = chunkHeader.getMeasurementID();
- MeasurementSchema measurementSchema =
+ IMeasurementSchema measurementSchema =
new MeasurementSchema(
measurementID,
chunkHeader.getDataType(),
@@ -1076,7 +1077,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (lastDeviceId != null) {
// schema of last chunk group
if (newSchema != null) {
- for (MeasurementSchema tsSchema : measurementSchemaList) {
+ for (IMeasurementSchema tsSchema : measurementSchemaList) {
newSchema.putIfAbsent(
new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
}
@@ -1095,7 +1096,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (lastDeviceId != null) {
// schema of last chunk group
if (newSchema != null) {
- for (MeasurementSchema tsSchema : measurementSchemaList) {
+ for (IMeasurementSchema tsSchema : measurementSchemaList) {
newSchema.putIfAbsent(
new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
}
@@ -1118,7 +1119,7 @@ public class TsFileSequenceReader implements AutoCloseable {
if (lastDeviceId != null) {
// schema of last chunk group
if (newSchema != null) {
- for (MeasurementSchema tsSchema : measurementSchemaList) {
+ for (IMeasurementSchema tsSchema : measurementSchemaList) {
newSchema.putIfAbsent(new Path(lastDeviceId, tsSchema.getMeasurementId()), tsSchema);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
index 8ce3f01..69bbab8 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.tsfile.write.chunk.IChunkGroupWriter;
import org.apache.iotdb.tsfile.write.record.TSRecord;
import org.apache.iotdb.tsfile.write.record.Tablet;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.Schema;
import org.apache.iotdb.tsfile.write.writer.RestorableTsFileIOWriter;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
@@ -150,7 +150,8 @@ public class TsFileWriter implements AutoCloseable {
}
}
- public void registerDeviceTemplate(String templateName, Map<String, MeasurementSchema> template) {
+ public void registerDeviceTemplate(
+ String templateName, Map<String, IMeasurementSchema> template) {
schema.registerDeviceTemplate(templateName, template);
}
@@ -158,7 +159,7 @@ public class TsFileWriter implements AutoCloseable {
schema.registerDevice(deviceId, templateName);
}
- public void registerTimeseries(Path path, MeasurementSchema measurementSchema)
+ public void registerTimeseries(Path path, IMeasurementSchema measurementSchema)
throws WriteProcessException {
if (schema.containsTimeseries(path)) {
throw new WriteProcessException("given timeseries has exists! " + path);
@@ -190,7 +191,7 @@ public class TsFileWriter implements AutoCloseable {
groupWriter.tryToAddSeriesWriter(schema.getSeriesSchema(path), pageSize);
} else if (schema.getDeviceTemplates() != null && schema.getDeviceTemplates().size() == 1) {
// use the default template without needing to register device
- Map<String, MeasurementSchema> template =
+ Map<String, IMeasurementSchema> template =
schema.getDeviceTemplates().entrySet().iterator().next().getValue();
if (template.containsKey(path.getMeasurement())) {
groupWriter.tryToAddSeriesWriter(template.get(path.getMeasurement()), pageSize);
@@ -220,14 +221,14 @@ public class TsFileWriter implements AutoCloseable {
String deviceId = tablet.deviceId;
// add all SeriesWriter of measurements in this Tablet to this ChunkGroupWriter
- for (MeasurementSchema timeseries : tablet.getSchemas()) {
+ for (IMeasurementSchema timeseries : tablet.getSchemas()) {
String measurementId = timeseries.getMeasurementId();
Path path = new Path(deviceId, measurementId);
if (schema.containsTimeseries(path)) {
groupWriter.tryToAddSeriesWriter(schema.getSeriesSchema(path), pageSize);
} else if (schema.getDeviceTemplates() != null && schema.getDeviceTemplates().size() == 1) {
// use the default template without needing to register device
- Map<String, MeasurementSchema> template =
+ Map<String, IMeasurementSchema> template =
schema.getDeviceTemplates().entrySet().iterator().next().getValue();
if (template.containsKey(path.getMeasurement())) {
groupWriter.tryToAddSeriesWriter(template.get(path.getMeasurement()), pageSize);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
index 1dbc9f5..b0ef852 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.write.record.Tablet;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
@@ -51,7 +52,7 @@ public class ChunkGroupWriterImpl implements IChunkGroupWriter {
}
@Override
- public void tryToAddSeriesWriter(MeasurementSchema schema, int pageSizeThreshold) {
+ public void tryToAddSeriesWriter(IMeasurementSchema schema, int pageSizeThreshold) {
if (!chunkWriters.containsKey(schema.getMeasurementId())) {
IChunkWriter seriesWriter = new ChunkWriterImpl(schema);
this.chunkWriters.put(schema.getMeasurementId(), seriesWriter);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
index 2c00f4a..c3e7bf8 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
@@ -30,7 +30,7 @@ import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.PublicBAOS;
import org.apache.iotdb.tsfile.utils.ReadWriteForEncodingUtils;
import org.apache.iotdb.tsfile.write.page.PageWriter;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
import org.slf4j.Logger;
@@ -45,7 +45,7 @@ public class ChunkWriterImpl implements IChunkWriter {
private static final Logger logger = LoggerFactory.getLogger(ChunkWriterImpl.class);
- private MeasurementSchema measurementSchema;
+ private IMeasurementSchema measurementSchema;
private ICompressor compressor;
@@ -92,7 +92,7 @@ public class ChunkWriterImpl implements IChunkWriter {
private Statistics<?> firstPageStatistics;
/** @param schema schema of this measurement */
- public ChunkWriterImpl(MeasurementSchema schema) {
+ public ChunkWriterImpl(IMeasurementSchema schema) {
this.measurementSchema = schema;
this.compressor = ICompressor.getCompressor(schema.getCompressor());
this.pageBuffer = new PublicBAOS();
@@ -115,7 +115,7 @@ public class ChunkWriterImpl implements IChunkWriter {
checkSdtEncoding();
}
- public ChunkWriterImpl(MeasurementSchema schema, boolean isMerging) {
+ public ChunkWriterImpl(IMeasurementSchema schema, boolean isMerging) {
this(schema);
this.isMerging = isMerging;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
index 0c73fbb..9dee2ad 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.tsfile.write.chunk;
import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
import org.apache.iotdb.tsfile.write.record.Tablet;
import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
import java.io.IOException;
@@ -77,7 +77,7 @@ public interface IChunkGroupWriter {
* @param measurementSchema a measurement descriptor containing the message of the series
* @param pageSize the specified page size
*/
- void tryToAddSeriesWriter(MeasurementSchema measurementSchema, int pageSize);
+ void tryToAddSeriesWriter(IMeasurementSchema measurementSchema, int pageSize);
/**
* get the serialized size of current chunkGroup header + all chunks. Notice, the value does not
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/page/PageWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/page/PageWriter.java
index 8467d15..5fa9977 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/page/PageWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/page/PageWriter.java
@@ -26,7 +26,7 @@ import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.PublicBAOS;
import org.apache.iotdb.tsfile.utils.ReadWriteForEncodingUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,7 +63,7 @@ public class PageWriter {
this(null, null);
}
- public PageWriter(MeasurementSchema measurementSchema) {
+ public PageWriter(IMeasurementSchema measurementSchema) {
this(measurementSchema.getTimeEncoder(), measurementSchema.getValueEncoder());
this.statistics = Statistics.getStatsByType(measurementSchema.getType());
this.compressor = ICompressor.getCompressor(measurementSchema.getCompressor());
@@ -263,7 +263,7 @@ public class PageWriter {
}
/** reset this page */
- public void reset(MeasurementSchema measurementSchema) {
+ public void reset(IMeasurementSchema measurementSchema) {
timeOut.reset();
valueOut.reset();
statistics = Statistics.getStatsByType(measurementSchema.getType());
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java
new file mode 100644
index 0000000..e0c3dd7
--- /dev/null
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/IMeasurementSchema.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.tsfile.write.schema;
+
+import org.apache.iotdb.tsfile.encoding.encoder.Encoder;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
+import java.util.List;
+import java.util.Map;
+
+public interface IMeasurementSchema {
+
+ String getMeasurementId();
+
+ CompressionType getCompressor();
+
+ TSEncoding getEncodingType();
+
+ TSDataType getType();
+
+ TSEncoding getTimeTSEncoding();
+
+ Encoder getTimeEncoder();
+
+ Encoder getValueEncoder();
+
+ Map<String, String> getProps();
+
+ List<String> getValueMeasurementIdList();
+
+ List<TSDataType> getValueTSDataTypeList();
+
+ List<TSEncoding> getValueTSEncodingList();
+
+ List<Encoder> getValueEncoderList();
+
+ int serializeTo(ByteBuffer buffer);
+
+ int serializeTo(OutputStream outputStream) throws IOException;
+}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
index 34ee496..e035787 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
@@ -32,7 +32,9 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.nio.ByteBuffer;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -42,7 +44,8 @@ import java.util.Objects;
* MeasurementSchema maintains respective TSEncodingBuilder; For TSDataType, only ENUM has
* TSDataTypeConverter up to now.
*/
-public class MeasurementSchema implements Comparable<MeasurementSchema>, Serializable {
+public class MeasurementSchema
+ implements IMeasurementSchema, Comparable<MeasurementSchema>, Serializable {
public static final MeasurementSchema TIME_SCHEMA =
new MeasurementSchema(
@@ -170,6 +173,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
return measurementSchema;
}
+ @Override
public String getMeasurementId() {
return measurementId;
}
@@ -178,23 +182,32 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
this.measurementId = measurementId;
}
+ @Override
public Map<String, String> getProps() {
return props;
}
+ @Override
public TSEncoding getEncodingType() {
return TSEncoding.deserialize(encoding);
}
+ @Override
public TSDataType getType() {
return TSDataType.deserialize(type);
}
+ @Override
+ public TSEncoding getTimeTSEncoding() {
+ return getEncodingType();
+ }
+
public void setProps(Map<String, String> props) {
this.props = props;
}
/** function for getting time encoder. */
+ @Override
public Encoder getTimeEncoder() {
TSEncoding timeEncoding =
TSEncoding.valueOf(TSFileDescriptor.getInstance().getConfig().getTimeEncoder());
@@ -203,6 +216,26 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
return TSEncodingBuilder.getEncodingBuilder(timeEncoding).getEncoder(timeType);
}
+ @Override
+ public List<String> getValueMeasurementIdList() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<TSDataType> getValueTSDataTypeList() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<TSEncoding> getValueTSEncodingList() {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public List<Encoder> getValueEncoderList() {
+ return Collections.emptyList();
+ }
+
/**
* get Encoder of value from encodingConverter by measurementID and data type.
*
@@ -218,11 +251,13 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
return encodingConverter.getEncoder(TSDataType.deserialize(type));
}
+ @Override
public CompressionType getCompressor() {
return CompressionType.deserialize(compressor);
}
/** function for serializing data to output stream. */
+ @Override
public int serializeTo(OutputStream outputStream) throws IOException {
int byteLen = 0;
@@ -248,6 +283,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
}
/** function for serializing data to byte buffer. */
+ @Override
public int serializeTo(ByteBuffer buffer) {
int byteLen = 0;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
index 84768e7..a01ca7e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/Schema.java
@@ -36,35 +36,36 @@ public class Schema implements Serializable {
* Path (device + measurement) -> measurementSchema By default, use the LinkedHashMap to store the
* order of insertion
*/
- private Map<Path, MeasurementSchema> registeredTimeseries;
+ private Map<Path, IMeasurementSchema> registeredTimeseries;
/** template name -> (measuremnet -> MeasurementSchema) */
- private Map<String, Map<String, MeasurementSchema>> deviceTemplates;
+ private Map<String, Map<String, IMeasurementSchema>> deviceTemplates;
public Schema() {
this.registeredTimeseries = new LinkedHashMap<>();
}
- public Schema(Map<Path, MeasurementSchema> knownSchema) {
+ public Schema(Map<Path, IMeasurementSchema> knownSchema) {
this.registeredTimeseries = knownSchema;
}
- public void registerTimeseries(Path path, MeasurementSchema descriptor) {
+ public void registerTimeseries(Path path, IMeasurementSchema descriptor) {
this.registeredTimeseries.put(path, descriptor);
}
- public void registerDeviceTemplate(String templateName, Map<String, MeasurementSchema> template) {
+ public void registerDeviceTemplate(
+ String templateName, Map<String, IMeasurementSchema> template) {
if (deviceTemplates == null) {
deviceTemplates = new HashMap<>();
}
this.deviceTemplates.put(templateName, template);
}
- public void extendTemplate(String templateName, MeasurementSchema descriptor) {
+ public void extendTemplate(String templateName, IMeasurementSchema descriptor) {
if (deviceTemplates == null) {
deviceTemplates = new HashMap<>();
}
- Map<String, MeasurementSchema> template =
+ Map<String, IMeasurementSchema> template =
this.deviceTemplates.getOrDefault(templateName, new HashMap<>());
template.put(descriptor.getMeasurementId(), descriptor);
this.deviceTemplates.put(templateName, template);
@@ -74,14 +75,14 @@ public class Schema implements Serializable {
if (!deviceTemplates.containsKey(templateName)) {
return;
}
- Map<String, MeasurementSchema> template = deviceTemplates.get(templateName);
- for (Map.Entry<String, MeasurementSchema> entry : template.entrySet()) {
+ Map<String, IMeasurementSchema> template = deviceTemplates.get(templateName);
+ for (Map.Entry<String, IMeasurementSchema> entry : template.entrySet()) {
Path path = new Path(deviceId, entry.getKey());
registerTimeseries(path, entry.getValue());
}
}
- public MeasurementSchema getSeriesSchema(Path path) {
+ public IMeasurementSchema getSeriesSchema(Path path) {
return registeredTimeseries.get(path);
}
@@ -92,7 +93,7 @@ public class Schema implements Serializable {
return registeredTimeseries.get(path).getType();
}
- public Map<String, Map<String, MeasurementSchema>> getDeviceTemplates() {
+ public Map<String, Map<String, IMeasurementSchema>> getDeviceTemplates() {
return deviceTemplates;
}
@@ -102,7 +103,7 @@ public class Schema implements Serializable {
}
// for test
- public Map<Path, MeasurementSchema> getRegisteredTimeseriesMap() {
+ public Map<Path, IMeasurementSchema> getRegisteredTimeseriesMap() {
return registeredTimeseries;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
index 26f8494..b3f74ac 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/RestorableTsFileIOWriter.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
import org.apache.iotdb.tsfile.read.TsFileCheckStatus;
import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
import org.apache.iotdb.tsfile.read.common.Path;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,7 +57,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
private static final Logger logger = LoggerFactory.getLogger("FileMonitor");
private long truncatedSize = -1;
- private Map<Path, MeasurementSchema> knownSchemas = new HashMap<>();
+ private Map<Path, IMeasurementSchema> knownSchemas = new HashMap<>();
private int lastFlushedChunkGroupIndex = 0;
@@ -147,7 +147,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
return truncatedSize;
}
- public Map<Path, MeasurementSchema> getKnownSchema() {
+ public Map<Path, IMeasurementSchema> getKnownSchema() {
return knownSchemas;
}
@@ -228,7 +228,7 @@ public class RestorableTsFileIOWriter extends TsFileIOWriter {
return append;
}
- public void addSchema(Path path, MeasurementSchema schema) {
+ public void addSchema(Path path, IMeasurementSchema schema) {
knownSchemas.put(path, schema);
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index 6dfeec8..fd1f1d5 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -39,7 +39,7 @@ import org.apache.iotdb.tsfile.read.common.Path;
import org.apache.iotdb.tsfile.utils.BytesUtils;
import org.apache.iotdb.tsfile.utils.PublicBAOS;
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -171,7 +171,7 @@ public class TsFileIOWriter {
* @throws IOException if I/O error occurs
*/
public void startFlushChunk(
- MeasurementSchema measurementSchema,
+ IMeasurementSchema measurementSchema,
CompressionType compressionCodecName,
TSDataType tsDataType,
TSEncoding encodingType,
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/RecordUtils.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/RecordUtils.java
index ab5d463..ccdb6f9 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/RecordUtils.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/utils/RecordUtils.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.tsfile.write.record.datapoint.FloatDataPoint;
import org.apache.iotdb.tsfile.write.record.datapoint.IntDataPoint;
import org.apache.iotdb.tsfile.write.record.datapoint.LongDataPoint;
import org.apache.iotdb.tsfile.write.record.datapoint.StringDataPoint;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.Schema;
import org.slf4j.Logger;
@@ -68,7 +68,7 @@ public class RecordUtils {
for (int i = 2; i < items.length - 1; i += 2) {
// get measurementId and value
measurementId = items[i].trim();
- MeasurementSchema measurementSchema =
+ IMeasurementSchema measurementSchema =
schema.getSeriesSchema(new Path(deviceId, measurementId));
if (measurementSchema == null) {
LOG.warn("measurementId:{},type not found, pass", measurementId);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java
index b8a54cb..68abcfc 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/DefaultDeviceTemplateTest.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.tsfile.read.common.Path;
import org.apache.iotdb.tsfile.read.expression.QueryExpression;
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
import org.apache.iotdb.tsfile.write.record.Tablet;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.junit.Assert;
@@ -53,7 +54,7 @@ public class DefaultDeviceTemplateTest {
schemaList.add(s1);
schemaList.add(s2);
- Map<String, MeasurementSchema> schema = new HashMap<>();
+ Map<String, IMeasurementSchema> schema = new HashMap<>();
schema.put("s1", s1);
schema.put("s2", s2);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
index d21a9a6..a8c0638 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/schema/converter/SchemaBuilderTest.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
import org.apache.iotdb.tsfile.write.schema.Schema;
@@ -51,12 +52,12 @@ public class SchemaBuilderTest {
new MeasurementSchema(
"s5", TSDataType.INT32, TSEncoding.TS_2DIFF, CompressionType.UNCOMPRESSED, null));
- Collection<MeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
+ Collection<IMeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
String[] tsDesStrings = {
"[s4,DOUBLE,RLE,{max_point_number=3},SNAPPY]", "[s5,INT32,TS_2DIFF,,UNCOMPRESSED]"
};
int i = 0;
- for (MeasurementSchema desc : timeseries) {
+ for (IMeasurementSchema desc : timeseries) {
assertEquals(tsDesStrings[i++], desc.toString());
}
}
@@ -67,7 +68,7 @@ public class SchemaBuilderTest {
Map<String, String> props = new HashMap<>();
props.put(JsonFormatConstant.MAX_POINT_NUMBER, "3");
Schema schema = new Schema();
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
template.put(
"s4",
new MeasurementSchema(
@@ -79,12 +80,12 @@ public class SchemaBuilderTest {
schema.registerDeviceTemplate("template1", template);
schema.registerDevice("d1", "template1");
- Collection<MeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
+ Collection<IMeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
String[] tsDesStrings = {
"[s4,DOUBLE,RLE,{max_point_number=3},SNAPPY]", "[s5,INT32,TS_2DIFF,,UNCOMPRESSED]"
};
int i = 0;
- for (MeasurementSchema desc : timeseries) {
+ for (IMeasurementSchema desc : timeseries) {
assertEquals(tsDesStrings[i++], desc.toString());
}
}
@@ -95,7 +96,7 @@ public class SchemaBuilderTest {
Map<String, String> props = new HashMap<>();
props.put(JsonFormatConstant.MAX_POINT_NUMBER, "3");
Schema schema = new Schema();
- Map<String, MeasurementSchema> template = new HashMap<>();
+ Map<String, IMeasurementSchema> template = new HashMap<>();
template.put(
"s4",
new MeasurementSchema(
@@ -113,14 +114,14 @@ public class SchemaBuilderTest {
schema.registerDevice("d1", "template1");
- Collection<MeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
+ Collection<IMeasurementSchema> timeseries = schema.getRegisteredTimeseriesMap().values();
String[] tsDesStrings = {
"[s4,DOUBLE,RLE,{max_point_number=3},SNAPPY]",
"[s5,INT32,TS_2DIFF,,UNCOMPRESSED]",
"[s6,INT64,RLE,{max_point_number=3},SNAPPY]"
};
int i = 0;
- for (MeasurementSchema desc : timeseries) {
+ for (IMeasurementSchema desc : timeseries) {
assertEquals(tsDesStrings[i++], desc.toString());
}
}