This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch removeTsFIleModule_v4
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e59a832314d51d5725c216b1a7fc96c0daa19db9
Author: Tian Jiang <[email protected]>
AuthorDate: Fri Apr 19 18:16:06 2024 +0800

    change to IMeasurementSchema and IDeviceID
---
 distribution/clean-local.sh                        | 27 +++++++++++++++++++
 distribution/distribute-local.sh                   | 30 ++++++++++++++++++++++
 .../apache/iotdb/hadoop/tsfile/TsFileHelper.java   |  2 +-
 .../iotdb/AlignedTimeseriesSessionExample.java     | 12 ++++-----
 .../org/apache/iotdb/DataMigrationExample.java     |  2 +-
 .../iotdb/HybridTimeseriesSessionExample.java      |  2 +-
 .../org/apache/iotdb/SessionConcurrentExample.java |  2 +-
 .../main/java/org/apache/iotdb/SessionExample.java | 12 ++++-----
 .../main/java/org/apache/iotdb/TabletExample.java  |  2 +-
 .../org/apache/iotdb/trigger/LoggerTrigger.java    |  2 +-
 .../org/apache/iotdb/it/utils/TsFileGenerator.java | 10 ++++----
 .../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java  |  2 +-
 .../iotdb/db/it/IoTDBPartialInsertionIT.java       |  2 +-
 .../session/it/IoTDBSessionAlignedInsertIT.java    |  2 +-
 .../iotdb/session/it/IoTDBSessionComplexIT.java    |  4 +--
 .../it/IoTDBSessionDisableMemControlIT.java        |  4 +--
 .../IoTDBSessionInsertWithTriggerExecutionIT.java  |  2 +-
 .../iotdb/session/it/IoTDBSessionSimpleIT.java     | 18 ++++++-------
 .../session/it/IoTDBSessionSyntaxConventionIT.java |  2 +-
 .../org/apache/iotdb/session/it/SessionIT.java     |  2 +-
 .../java/org/apache/iotdb/tool/ExportTsFile.java   | 14 +++++-----
 iotdb-client/client-cpp/src/main/Session.cpp       |  4 +--
 .../java/org/apache/iotdb/session/Session.java     | 30 +++++++++++-----------
 .../subscription/SubscriptionSessionDataSet.java   |  8 +++---
 .../apache/iotdb/session/util/SessionUtils.java    |  4 +--
 .../iotdb/session/SessionCacheLeaderTest.java      |  7 ++---
 .../java/org/apache/iotdb/session/SessionTest.java | 25 +++++++++---------
 .../java/org/apache/iotdb/session/TabletTest.java  |  3 ++-
 .../session/pool/SessionPoolExceptionTest.java     |  7 ++---
 .../apache/iotdb/session/pool/SessionPoolTest.java | 19 +++++++-------
 .../iotdb/session/util/SessionUtilsTest.java       |  5 ++--
 .../flink/sql/function/IoTDBCDCSourceFunction.java |  4 +--
 .../iotdb/hadoop/tsfile/TsFileTestHelper.java      |  2 +-
 .../org/apache/iotdb/hive/TsFileTestHelper.java    |  2 +-
 .../request/PipeTransferTabletRawReq.java          |  2 +-
 .../connector/protocol/opcua/OpcUaConnector.java   |  2 +-
 .../db/pipe/event/common/row/PipeRowCollector.java |  2 +-
 .../common/tablet/PipeRawTabletInsertionEvent.java |  2 +-
 .../tablet/TabletInsertionDataContainer.java       |  4 +--
 .../tsfile/TsFileInsertionDataContainer.java       |  2 +-
 .../tsfile/TsFileInsertionDataTabletIterator.java  |  2 +-
 .../db/pipe/resource/memory/PipeMemoryManager.java |  2 +-
 .../common/schematree/DeviceSchemaInfo.java        |  2 +-
 .../plan/analyze/LoadTsfileAnalyzer.java           |  4 +--
 .../plan/analyze/schema/ClusterSchemaFetcher.java  |  4 +--
 .../db/trigger/executor/TriggerFireVisitor.java    |  4 +--
 .../connector/PipeDataNodeThriftRequestTest.java   |  4 +--
 .../db/queryengine/execution/DataDriverTest.java   |  2 +-
 .../operator/AggregationOperatorTest.java          |  2 +-
 .../AlignedSeriesAggregationScanOperatorTest.java  |  2 +-
 .../operator/AlignedSeriesScanOperatorTest.java    |  2 +-
 .../execution/operator/AlignedSeriesTestUtil.java  |  8 +++---
 .../execution/operator/DeviceViewOperatorTest.java |  2 +-
 .../operator/HorizontallyConcatOperatorTest.java   |  2 +-
 .../execution/operator/LastQueryOperatorTest.java  |  2 +-
 .../operator/LastQuerySortOperatorTest.java        |  2 +-
 .../execution/operator/LimitOperatorTest.java      |  2 +-
 .../execution/operator/MergeSortOperatorTest.java  |  2 +-
 .../execution/operator/OffsetOperatorTest.java     |  2 +-
 .../operator/RawDataAggregationOperatorTest.java   |  2 +-
 .../SeriesAggregationScanOperatorTest.java         |  2 +-
 .../execution/operator/SeriesScanOperatorTest.java |  2 +-
 .../operator/SingleDeviceViewOperatorTest.java     |  2 +-
 .../SlidingWindowAggregationOperatorTest.java      |  2 +-
 .../execution/operator/SortOperatorTest.java       |  2 +-
 .../execution/operator/TopKOperatorTest.java       |  2 +-
 .../operator/UpdateLastCacheOperatorTest.java      |  2 +-
 .../schema/SchemaFetchScanOperatorTest.java        |  2 +-
 .../operator/sink/IdentitySinkOperatorTest.java    |  2 +-
 .../storageengine/buffer/BloomFilterCacheTest.java |  2 +-
 .../compaction/CompactionDataTypeNotMatchTest.java |  4 +--
 .../compaction/CompactionValidationTest.java       |  6 ++---
 .../read/reader/series/SeriesReaderTestUtil.java   |  8 +++---
 .../iotdb/db/tools/TsFileSelfCheckToolTest.java    |  2 +-
 .../iotdb/db/tools/TsFileSketchToolTest.java       |  6 ++---
 pom.xml                                            |  2 +-
 76 files changed, 227 insertions(+), 164 deletions(-)

diff --git a/distribution/clean-local.sh b/distribution/clean-local.sh
new file mode 100644
index 00000000000..7cd3404c92a
--- /dev/null
+++ b/distribution/clean-local.sh
@@ -0,0 +1,27 @@
+#
+# 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.
+#
+
+
+locs=(cn dn1 dn2 dn3)
+target_path=/c/Users/a/Desktop/phdDemo/
+
+for loc in ${locs[*]}
+  do
+    rm -rf $target_path$loc/data $target_path$loc/logs
+  done
\ No newline at end of file
diff --git a/distribution/distribute-local.sh b/distribution/distribute-local.sh
new file mode 100644
index 00000000000..57d332c7664
--- /dev/null
+++ b/distribution/distribute-local.sh
@@ -0,0 +1,30 @@
+#
+# 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.
+#
+
+
+src_lib_path=/d/CodeRepo/iotdb2/distribution/target/apache-iotdb-1.3.1-SNAPSHOT-all-bin/apache-iotdb-1.3.1-SNAPSHOT-all-bin/lib/iotdb*
+
+locs=(dn1 dn2 dn3)
+#ips=(dc11 dc12 dc13 dc14 dc11 dc12)
+target_lib_path=/c/Users/a/Desktop/phdDemo/
+
+for loc in ${locs[*]}
+  do
+    cp -r $src_lib_path $target_lib_path$loc/lib
+  done
\ No newline at end of file
diff --git 
a/example/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TsFileHelper.java 
b/example/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TsFileHelper.java
index 6f43a77b59e..12825b682c2 100644
--- 
a/example/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TsFileHelper.java
+++ 
b/example/hadoop/src/main/java/org/apache/iotdb/hadoop/tsfile/TsFileHelper.java
@@ -55,7 +55,7 @@ public class TsFileHelper {
 
       Schema schema = new Schema();
 
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
 
       // the number of rows to include in the tablet
       int rowNum = 1000000;
diff --git 
a/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
 
b/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
index 1bded669794..ce4871b1cd4 100644
--- 
a/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
+++ 
b/example/session/src/main/java/org/apache/iotdb/AlignedTimeseriesSessionExample.java
@@ -300,7 +300,7 @@ public class AlignedTimeseriesSessionExample {
       throws IoTDBConnectionException, StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
 
@@ -334,7 +334,7 @@ public class AlignedTimeseriesSessionExample {
       throws IoTDBConnectionException, StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
 
@@ -370,7 +370,7 @@ public class AlignedTimeseriesSessionExample {
       throws IoTDBConnectionException, StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
 
@@ -542,15 +542,15 @@ public class AlignedTimeseriesSessionExample {
   private static void insertTabletsWithAlignedTimeseries()
       throws IoTDBConnectionException, StatementExecutionException {
 
-    List<MeasurementSchema> schemaList1 = new ArrayList<>();
+    List<IMeasurementSchema> schemaList1 = new ArrayList<>();
     schemaList1.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList1.add(new MeasurementSchema("s2", TSDataType.INT64));
 
-    List<MeasurementSchema> schemaList2 = new ArrayList<>();
+    List<IMeasurementSchema> schemaList2 = new ArrayList<>();
     schemaList2.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList2.add(new MeasurementSchema("s2", TSDataType.INT64));
 
-    List<MeasurementSchema> schemaList3 = new ArrayList<>();
+    List<IMeasurementSchema> schemaList3 = new ArrayList<>();
     schemaList3.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList3.add(new MeasurementSchema("s2", TSDataType.INT64));
 
diff --git 
a/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java 
b/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
index 67431242769..78eaae6adbf 100644
--- a/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/DataMigrationExample.java
@@ -128,7 +128,7 @@ public class DataMigrationExample {
         DataIterator dataIter = dataSet.iterator();
         List<String> columnNameList = dataIter.getColumnNameList();
         List<String> columnTypeList = dataIter.getColumnTypeList();
-        List<MeasurementSchema> schemaList = new ArrayList<>();
+        List<IMeasurementSchema> schemaList = new ArrayList<>();
         for (int j = 1; j < columnNameList.size(); j++) {
           PartialPath currentPath = new PartialPath(columnNameList.get(j));
           schemaList.add(
diff --git 
a/example/session/src/main/java/org/apache/iotdb/HybridTimeseriesSessionExample.java
 
b/example/session/src/main/java/org/apache/iotdb/HybridTimeseriesSessionExample.java
index 79b6f89051d..9400549072d 100644
--- 
a/example/session/src/main/java/org/apache/iotdb/HybridTimeseriesSessionExample.java
+++ 
b/example/session/src/main/java/org/apache/iotdb/HybridTimeseriesSessionExample.java
@@ -78,7 +78,7 @@ public class HybridTimeseriesSessionExample {
       throws IoTDBConnectionException, StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
 
diff --git 
a/example/session/src/main/java/org/apache/iotdb/SessionConcurrentExample.java 
b/example/session/src/main/java/org/apache/iotdb/SessionConcurrentExample.java
index 1aa3a962da8..bdd7a528296 100644
--- 
a/example/session/src/main/java/org/apache/iotdb/SessionConcurrentExample.java
+++ 
b/example/session/src/main/java/org/apache/iotdb/SessionConcurrentExample.java
@@ -143,7 +143,7 @@ public class SessionConcurrentExample {
      */
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java 
b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index 0daec0885bf..930f778b088 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -393,7 +393,7 @@ public class SessionExample {
      */
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
@@ -457,7 +457,7 @@ public class SessionExample {
      */
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
@@ -471,7 +471,7 @@ public class SessionExample {
     insertTablet2(schemaList, tablet);
   }
 
-  private static void insertTablet1(List<MeasurementSchema> schemaList, Tablet 
tablet)
+  private static void insertTablet1(List<IMeasurementSchema> schemaList, 
Tablet tablet)
       throws IoTDBConnectionException, StatementExecutionException {
     tablet.initBitMaps();
 
@@ -500,7 +500,7 @@ public class SessionExample {
     }
   }
 
-  private static void insertTablet2(List<MeasurementSchema> schemaList, Tablet 
tablet)
+  private static void insertTablet2(List<IMeasurementSchema> schemaList, 
Tablet tablet)
       throws IoTDBConnectionException, StatementExecutionException {
     long[] timestamps = tablet.timestamps;
     Object[] values = tablet.values;
@@ -536,7 +536,7 @@ public class SessionExample {
   private static void insertTablets() throws IoTDBConnectionException, 
StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
@@ -641,7 +641,7 @@ public class SessionExample {
     }
 
     // insertTablet example
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s2", TSDataType.TEXT));
     Tablet tablet = new Tablet(device, schemaList, 100);
     for (int i = 0; i < datas.size(); i++) {
diff --git a/example/session/src/main/java/org/apache/iotdb/TabletExample.java 
b/example/session/src/main/java/org/apache/iotdb/TabletExample.java
index 2b2d595e2e8..2652d1ecb42 100644
--- a/example/session/src/main/java/org/apache/iotdb/TabletExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/TabletExample.java
@@ -148,7 +148,7 @@ public class TabletExample {
       measureTSTypeInfos.put("s3", TSDataType.DOUBLE);
       measureTSTypeInfos.put("s4", TSDataType.INT64);
       measureTSTypeInfos.put("s5", TSDataType.TEXT);
-      List<MeasurementSchema> schemas = new ArrayList<>();
+      List<IMeasurementSchema> schemas = new ArrayList<>();
       measureTSTypeInfos.forEach((mea, type) -> schemas.add(new 
MeasurementSchema(mea, type)));
 
       System.out.println(
diff --git 
a/example/trigger/src/main/java/org/apache/iotdb/trigger/LoggerTrigger.java 
b/example/trigger/src/main/java/org/apache/iotdb/trigger/LoggerTrigger.java
index f1b5730e3e6..2af21188bbb 100644
--- a/example/trigger/src/main/java/org/apache/iotdb/trigger/LoggerTrigger.java
+++ b/example/trigger/src/main/java/org/apache/iotdb/trigger/LoggerTrigger.java
@@ -36,7 +36,7 @@ public class LoggerTrigger implements Trigger {
 
   @Override
   public boolean fire(Tablet tablet) throws Exception {
-    List<MeasurementSchema> measurementSchemaList = tablet.getSchemas();
+    List<IMeasurementSchema> measurementSchemaList = tablet.getSchemas();
     for (int i = 0, n = measurementSchemaList.size(); i < n; i++) {
       if (measurementSchemaList.get(i).getType().equals(TSDataType.DOUBLE)) {
         logDouble((double[]) tablet.values[i]);
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/utils/TsFileGenerator.java 
b/integration-test/src/main/java/org/apache/iotdb/it/utils/TsFileGenerator.java
index 31f6fecdd07..451ae345be6 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/utils/TsFileGenerator.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/utils/TsFileGenerator.java
@@ -49,7 +49,7 @@ public class TsFileGenerator implements AutoCloseable {
   private final File tsFile;
   private final TsFileWriter writer;
   private final Map<String, TreeSet<Long>> device2TimeSet;
-  private final Map<String, List<MeasurementSchema>> device2MeasurementSchema;
+  private final Map<String, List<IMeasurementSchema>> device2MeasurementSchema;
   private Random random;
 
   public TsFileGenerator(File tsFile) throws IOException {
@@ -68,7 +68,7 @@ public class TsFileGenerator implements AutoCloseable {
     random = new Random(seed);
   }
 
-  public void registerTimeseries(String path, List<MeasurementSchema> 
measurementSchemaList) {
+  public void registerTimeseries(String path, List<IMeasurementSchema> 
measurementSchemaList) {
     if (device2MeasurementSchema.containsKey(path)) {
       LOGGER.error("Register same device {}.", path);
       return;
@@ -78,7 +78,7 @@ public class TsFileGenerator implements AutoCloseable {
     device2MeasurementSchema.put(path, measurementSchemaList);
   }
 
-  public void registerAlignedTimeseries(String path, List<MeasurementSchema> 
measurementSchemaList)
+  public void registerAlignedTimeseries(String path, List<IMeasurementSchema> 
measurementSchemaList)
       throws WriteProcessException {
     if (device2MeasurementSchema.containsKey(path)) {
       LOGGER.error("Register same device {}.", path);
@@ -91,7 +91,7 @@ public class TsFileGenerator implements AutoCloseable {
 
   public void generateData(String device, int number, long timeGap, boolean 
isAligned)
       throws IOException, WriteProcessException {
-    List<MeasurementSchema> schemas = device2MeasurementSchema.get(device);
+    List<IMeasurementSchema> schemas = device2MeasurementSchema.get(device);
     TreeSet<Long> timeSet = device2TimeSet.get(device);
     Tablet tablet = new Tablet(device, schemas);
     long[] timestamps = tablet.timestamps;
@@ -133,7 +133,7 @@ public class TsFileGenerator implements AutoCloseable {
   public void generateData(
       String device, int number, long timeGap, boolean isAligned, long 
startTimestamp)
       throws IOException, WriteProcessException {
-    List<MeasurementSchema> schemas = device2MeasurementSchema.get(device);
+    List<IMeasurementSchema> schemas = device2MeasurementSchema.get(device);
     TreeSet<Long> timeSet = device2TimeSet.get(device);
     Tablet tablet = new Tablet(device, schemas);
     long[] timestamps = tablet.timestamps;
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
index 0a3a44ee629..0eabbd0e3c3 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java
@@ -134,7 +134,7 @@ public class IOTDBLoadTsFileIT {
     return sql;
   }
 
-  private String convert2AlignedSQL(String device, List<MeasurementSchema> 
schemas) {
+  private String convert2AlignedSQL(String device, List<IMeasurementSchema> 
schemas) {
     String sql = String.format("create aligned timeseries %s(", device);
     for (int i = 0; i < schemas.size(); i++) {
       MeasurementSchema schema = schemas.get(i);
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBPartialInsertionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBPartialInsertionIT.java
index 074da6873ee..6188452482f 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBPartialInsertionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBPartialInsertionIT.java
@@ -146,7 +146,7 @@ public class IoTDBPartialInsertionIT {
           "root.sg1.d1.s1", TSDataType.INT64, TSEncoding.PLAIN, 
CompressionType.SNAPPY);
       session.createTimeseries(
           "root.sg1.d1.s2", TSDataType.INT64, TSEncoding.PLAIN, 
CompressionType.SNAPPY);
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionAlignedInsertIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionAlignedInsertIT.java
index 1bf996f6f95..402d3d47fcf 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionAlignedInsertIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionAlignedInsertIT.java
@@ -291,7 +291,7 @@ public class IoTDBSessionAlignedInsertIT {
       throws IoTDBConnectionException, StatementExecutionException {
     // The schema of measurements of one device
     // only measurementId and data type in MeasurementSchema take effects in 
Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionComplexIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionComplexIT.java
index 55c93735c5c..94b9d2c6163 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionComplexIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionComplexIT.java
@@ -274,7 +274,7 @@ public class IoTDBSessionComplexIT {
   private void insertTablet(ISession session, String deviceId)
       throws IoTDBConnectionException, StatementExecutionException {
 
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64, 
TSEncoding.RLE));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64, 
TSEncoding.RLE));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64, 
TSEncoding.RLE));
@@ -374,7 +374,7 @@ public class IoTDBSessionComplexIT {
   private void insertMultiTablets(ISession session, List<String> deviceIdList)
       throws IoTDBConnectionException, StatementExecutionException {
     long timePartition = 
CommonDescriptor.getInstance().getConfig().getTimePartitionInterval();
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionDisableMemControlIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionDisableMemControlIT.java
index 98d9f8106a0..79c03bbfe8d 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionDisableMemControlIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionDisableMemControlIT.java
@@ -85,7 +85,7 @@ public class IoTDBSessionDisableMemControlIT {
         session.createTimeseries(
             "root.sg.d.s3", TSDataType.INT64, TSEncoding.RLE, 
CompressionType.SNAPPY);
       }
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
@@ -164,7 +164,7 @@ public class IoTDBSessionDisableMemControlIT {
           null,
           null,
           null);
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertWithTriggerExecutionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertWithTriggerExecutionIT.java
index ab482592eac..e9ee2b77fbc 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertWithTriggerExecutionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionInsertWithTriggerExecutionIT.java
@@ -297,7 +297,7 @@ public class IoTDBSessionInsertWithTriggerExecutionIT {
 
   private void insertTablet(ISession session, String device, List<String> 
measurementList)
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     measurementList.forEach(
         measurement -> schemaList.add(new MeasurementSchema(measurement, 
TSDataType.INT32)));
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSimpleIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSimpleIT.java
index e9c1d05d3a6..cc7feb04e88 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSimpleIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSimpleIT.java
@@ -89,7 +89,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertPartialTabletTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
@@ -135,7 +135,7 @@ public class IoTDBSessionSimpleIT {
       session.createTimeseries(
           "root.sg.d2.s2", TSDataType.BOOLEAN, TSEncoding.PLAIN, 
CompressionType.SNAPPY);
 
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
@@ -422,7 +422,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertTabletWithAlignedTimeseriesTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT32));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
@@ -466,7 +466,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertTabletWithNullValuesTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s0", TSDataType.DOUBLE, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s1", TSDataType.FLOAT, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64, 
TSEncoding.RLE));
@@ -522,7 +522,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertTabletWithStringValuesTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s0", TSDataType.DOUBLE, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s1", TSDataType.FLOAT, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64, 
TSEncoding.RLE));
@@ -569,7 +569,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertTabletWithNegativeTimestampTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s0", TSDataType.DOUBLE, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s1", TSDataType.FLOAT, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64, 
TSEncoding.RLE));
@@ -617,7 +617,7 @@ public class IoTDBSessionSimpleIT {
   @Category({LocalStandaloneIT.class, ClusterIT.class})
   public void insertTabletWithWrongTimestampPrecisionTest() {
     try (ISession session = EnvFactory.getEnv().getSessionConnection()) {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s0", TSDataType.DOUBLE, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s1", TSDataType.FLOAT, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64, 
TSEncoding.RLE));
@@ -1499,7 +1499,7 @@ public class IoTDBSessionSimpleIT {
         session.createTimeseries(
             "root.sg.d.s3", TSDataType.INT64, TSEncoding.RLE, 
CompressionType.SNAPPY);
       }
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT));
@@ -1575,7 +1575,7 @@ public class IoTDBSessionSimpleIT {
             dataBinary);
       }
       // insert data using insertTablet
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.TEXT));
       Tablet tablet = new Tablet("root.sg1.d1", schemaList, 100);
       for (int i = 0; i < bytesData.size(); i++) {
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSyntaxConventionIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSyntaxConventionIT.java
index 1f4369f9d2e..def180bc134 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSyntaxConventionIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBSessionSyntaxConventionIT.java
@@ -258,7 +258,7 @@ public class IoTDBSessionSyntaxConventionIT {
   @Test
   public void insertTabletWithIllegalMeasurementTest() {
     String deviceId = "root.sg1.d1";
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("wrong`", TSDataType.INT64, 
TSEncoding.RLE));
     schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE, 
TSEncoding.RLE));
     schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT, 
TSEncoding.PLAIN));
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/session/it/SessionIT.java 
b/integration-test/src/test/java/org/apache/iotdb/session/it/SessionIT.java
index 84e42a438d3..156d18670a3 100644
--- a/integration-test/src/test/java/org/apache/iotdb/session/it/SessionIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/session/it/SessionIT.java
@@ -74,7 +74,7 @@ public class SessionIT {
       session.createTimeseries(
           deviceId + ".s4", TSDataType.DOUBLE, TSEncoding.RLE, 
CompressionType.UNCOMPRESSED);
 
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT64, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s2", TSDataType.DOUBLE, 
TSEncoding.RLE));
       schemaList.add(new MeasurementSchema("s3", TSDataType.TEXT, 
TSEncoding.PLAIN));
diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
index 6949142ca07..66ec4927a43 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
@@ -323,7 +323,7 @@ public class ExportTsFile extends AbstractTsFileTool {
     }
     HashSet<String> deviceFilterSet = new HashSet<>();
     try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
-      Map<String, List<MeasurementSchema>> schemaMap = new LinkedHashMap<>();
+      Map<String, List<IMeasurementSchema>> schemaMap = new LinkedHashMap<>();
       for (int i = 0; i < columnNames.size(); i++) {
         String column = columnNames.get(i);
         if (!column.startsWith("root.")) {
@@ -352,13 +352,13 @@ public class ExportTsFile extends AbstractTsFileTool {
         schemaMap.computeIfAbsent(deviceId, key -> new 
ArrayList<>()).add(measurementSchema);
       }
       List<Tablet> tabletList = new ArrayList<>();
-      for (Map.Entry<String, List<MeasurementSchema>> stringListEntry : 
schemaMap.entrySet()) {
+      for (Map.Entry<String, List<IMeasurementSchema>> stringListEntry : 
schemaMap.entrySet()) {
         String deviceId = stringListEntry.getKey();
-        List<MeasurementSchema> schemaList = stringListEntry.getValue();
+        List<IMeasurementSchema> schemaList = stringListEntry.getValue();
         Tablet tablet = new Tablet(deviceId, schemaList);
         tablet.initBitMaps();
-        Path path = new Path(tablet.deviceId);
-        if (deviceFilterSet.contains(tablet.deviceId)) {
+        Path path = new Path(tablet.getDeviceId());
+        if (deviceFilterSet.contains(tablet.getDeviceId())) {
           tsFileWriter.registerAlignedTimeseries(path, schemaList);
         } else {
           tsFileWriter.registerTimeseries(path, schemaList);
@@ -377,7 +377,7 @@ public class ExportTsFile extends AbstractTsFileTool {
           for (Tablet tablet : tabletList) {
             int rowIndex = tablet.rowSize++;
             tablet.addTimestamp(rowIndex, rowRecord.getTimestamp());
-            List<MeasurementSchema> schemas = tablet.getSchemas();
+            List<IMeasurementSchema> schemas = tablet.getSchemas();
             for (int j = 0; j < schemas.size(); j++) {
               MeasurementSchema measurementSchema = schemas.get(j);
               Object value = 
fields.get(i).getObjectValue(measurementSchema.getType());
@@ -407,7 +407,7 @@ public class ExportTsFile extends AbstractTsFileTool {
   private static void writeToTsfile(
       HashSet<String> deviceFilterSet, TsFileWriter tsFileWriter, Tablet 
tablet)
       throws IOException, WriteProcessException {
-    if (deviceFilterSet.contains(tablet.deviceId)) {
+    if (deviceFilterSet.contains(tablet.getDeviceId())) {
       tsFileWriter.writeAligned(tablet);
     } else {
       tsFileWriter.write(tablet);
diff --git a/iotdb-client/client-cpp/src/main/Session.cpp 
b/iotdb-client/client-cpp/src/main/Session.cpp
index 9468f20dc68..fa710e8f03f 100644
--- a/iotdb-client/client-cpp/src/main/Session.cpp
+++ b/iotdb-client/client-cpp/src/main/Session.cpp
@@ -1348,7 +1348,7 @@ void Session::buildInsertTabletReq(TSInsertTabletReq 
&request, int64_t sessionId
     }
 
     request.__set_sessionId(sessionId);
-    request.prefixPath = tablet.deviceId;
+    request.prefixPath = tablet.getDeviceId();
 
     request.measurements.reserve(tablet.schemas.size());
     request.types.reserve(tablet.schemas.size());
@@ -1500,7 +1500,7 @@ void Session::testInsertRecord(const string &deviceId, 
int64_t time, const vecto
 void Session::testInsertTablet(const Tablet &tablet) {
     TSInsertTabletReq request;
     request.__set_sessionId(sessionId);
-    request.prefixPath = tablet.deviceId;
+    request.prefixPath = tablet.getDeviceId();
     for (pair<string, TSDataType::TSDataType> schema: tablet.schemas) {
         request.measurements.push_back(schema.first);
         request.types.push_back(schema.second);
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
index 02be2198a0f..ecf0f230ba2 100644
--- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -2575,15 +2575,15 @@ public class Session implements ISession {
       throws IoTDBConnectionException, StatementExecutionException {
     TSInsertTabletReq request = genTSInsertTabletReq(tablet, sorted, false);
     try {
-      getSessionConnection(tablet.deviceId).insertTablet(request);
+      getSessionConnection(tablet.getDeviceId()).insertTablet(request);
     } catch (RedirectException e) {
-      handleRedirection(tablet.deviceId, e.getEndPoint());
+      handleRedirection(tablet.getDeviceId(), e.getEndPoint());
     } catch (IoTDBConnectionException e) {
       if (enableRedirection
           && !deviceIdToEndpoint.isEmpty()
-          && deviceIdToEndpoint.get(tablet.deviceId) != null) {
-        logger.warn(SESSION_CANNOT_CONNECT, 
deviceIdToEndpoint.get(tablet.deviceId));
-        deviceIdToEndpoint.remove(tablet.deviceId);
+          && deviceIdToEndpoint.get(tablet.getDeviceId()) != null) {
+        logger.warn(SESSION_CANNOT_CONNECT, 
deviceIdToEndpoint.get(tablet.getDeviceId()));
+        deviceIdToEndpoint.remove(tablet.getDeviceId());
 
         // reconnect with default connection
         try {
@@ -2623,15 +2623,15 @@ public class Session implements ISession {
       throws IoTDBConnectionException, StatementExecutionException {
     TSInsertTabletReq request = genTSInsertTabletReq(tablet, sorted, true);
     try {
-      getSessionConnection(tablet.deviceId).insertTablet(request);
+      getSessionConnection(tablet.getDeviceId()).insertTablet(request);
     } catch (RedirectException e) {
-      handleRedirection(tablet.deviceId, e.getEndPoint());
+      handleRedirection(tablet.getDeviceId(), e.getEndPoint());
     } catch (IoTDBConnectionException e) {
       if (enableRedirection
           && !deviceIdToEndpoint.isEmpty()
-          && deviceIdToEndpoint.get(tablet.deviceId) != null) {
-        logger.warn(SESSION_CANNOT_CONNECT, 
deviceIdToEndpoint.get(tablet.deviceId));
-        deviceIdToEndpoint.remove(tablet.deviceId);
+          && deviceIdToEndpoint.get(tablet.getDeviceId()) != null) {
+        logger.warn(SESSION_CANNOT_CONNECT, 
deviceIdToEndpoint.get(tablet.getDeviceId()));
+        deviceIdToEndpoint.remove(tablet.getDeviceId());
 
         // reconnect with default connection
         try {
@@ -2656,7 +2656,7 @@ public class Session implements ISession {
       request.addToTypes(measurementSchema.getType().ordinal());
     }
 
-    request.setPrefixPath(tablet.deviceId);
+    request.setPrefixPath(tablet.getDeviceId());
     request.setIsAligned(isAligned);
     request.setTimestamps(SessionUtils.getTimeBuffer(tablet));
     request.setValues(SessionUtils.getValueBuffer(tablet));
@@ -2767,7 +2767,7 @@ public class Session implements ISession {
     if (!checkSorted(tablet)) {
       sortTablet(tablet);
     }
-    request.addToPrefixPaths(tablet.deviceId);
+    request.addToPrefixPaths(tablet.getDeviceId());
     List<String> measurements = new ArrayList<>();
     List<Integer> dataTypes = new ArrayList<>();
     request.setIsAligned(isAligned);
@@ -2830,7 +2830,7 @@ public class Session implements ISession {
         }
       }
     }
-    List<MeasurementSchema> schemaList = new ArrayList<>(measuremenMap.size());
+    List<IMeasurementSchema> schemaList = new 
ArrayList<>(measuremenMap.size());
     // use measurementType to build schemaList
     for (Entry<String, Pair<TSDataType, Boolean>> entry : 
measuremenMap.entrySet()) {
       schemaList.add(new MeasurementSchema(entry.getKey(), 
entry.getValue().getLeft()));
@@ -2915,11 +2915,11 @@ public class Session implements ISession {
       rowMap.merge(device, 1, Integer::sum);
     }
     // device -> schema
-    Map<String, List<MeasurementSchema>> schemaMap = new HashMap<>(deviceSize 
+ 1, 1);
+    Map<String, List<IMeasurementSchema>> schemaMap = new HashMap<>(deviceSize 
+ 1, 1);
     // use measurementTypeMap to build schemaMap
     for (Map.Entry<String, Map<String, Pair<TSDataType, Boolean>>> entry :
         deviceMeasuremenMap.entrySet()) {
-      List<MeasurementSchema> schemaList = new 
ArrayList<>(entry.getValue().size() + 1);
+      List<IMeasurementSchema> schemaList = new 
ArrayList<>(entry.getValue().size() + 1);
       for (Map.Entry<String, Pair<TSDataType, Boolean>> schemaEntry : 
entry.getValue().entrySet()) {
         schemaList.add(
             new MeasurementSchema(schemaEntry.getKey(), 
schemaEntry.getValue().getLeft()));
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSessionDataSet.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSessionDataSet.java
index ff73fa4139b..22981765323 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSessionDataSet.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/subscription/SubscriptionSessionDataSet.java
@@ -27,7 +27,7 @@ import org.apache.tsfile.read.common.RowRecord;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.write.UnSupportedDataTypeException;
 import org.apache.tsfile.write.record.Tablet;
-import org.apache.tsfile.write.schema.MeasurementSchema;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -64,8 +64,8 @@ public class SubscriptionSessionDataSet implements 
ISessionDataSet {
     columnNameList = new ArrayList<>();
     columnNameList.add("Time");
 
-    String deviceId = tablet.deviceId;
-    List<MeasurementSchema> schemas = tablet.getSchemas();
+    String deviceId = tablet.getDeviceId();
+    List<IMeasurementSchema> schemas = tablet.getSchemas();
     columnNameList.addAll(
         schemas.stream()
             .map((schema) -> deviceId + "." + schema.getMeasurementId())
@@ -82,7 +82,7 @@ public class SubscriptionSessionDataSet implements 
ISessionDataSet {
     columnTypeList = new ArrayList<>();
     columnTypeList.add(TSDataType.INT64.toString());
 
-    List<MeasurementSchema> schemas = tablet.getSchemas();
+    List<IMeasurementSchema> schemas = tablet.getSchemas();
     columnTypeList.addAll(
         schemas.stream().map((schema) -> 
schema.getType().toString()).collect(Collectors.toList()));
     return columnTypeList;
diff --git 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/util/SessionUtils.java
 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/util/SessionUtils.java
index 1520fe47ce8..20f5a17eaf7 100644
--- 
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/util/SessionUtils.java
+++ 
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/util/SessionUtils.java
@@ -31,7 +31,7 @@ import org.apache.tsfile.utils.BytesUtils;
 import org.apache.tsfile.utils.ReadWriteIOUtils;
 import org.apache.tsfile.write.UnSupportedDataTypeException;
 import org.apache.tsfile.write.record.Tablet;
-import org.apache.tsfile.write.schema.MeasurementSchema;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -56,7 +56,7 @@ public class SessionUtils {
   public static ByteBuffer getValueBuffer(Tablet tablet) {
     ByteBuffer valueBuffer = 
ByteBuffer.allocate(tablet.getTotalValueOccupation());
     for (int i = 0; i < tablet.getSchemas().size(); i++) {
-      MeasurementSchema schema = tablet.getSchemas().get(i);
+      IMeasurementSchema schema = tablet.getSchemas().get(i);
       getValueBufferOfDataType(schema.getType(), tablet, i, valueBuffer);
     }
     if (tablet.bitMaps != null) {
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionCacheLeaderTest.java
 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionCacheLeaderTest.java
index 69a45806079..6a7a9f83051 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionCacheLeaderTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionCacheLeaderTest.java
@@ -34,6 +34,7 @@ import org.apache.iotdb.service.rpc.thrift.TSInsertTabletsReq;
 
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.Assert;
 import org.junit.Test;
@@ -437,7 +438,7 @@ public class SessionCacheLeaderTest {
     assertNull(session.endPointToSessionConnection);
 
     String deviceId = "root.sg2.d2";
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
@@ -515,7 +516,7 @@ public class SessionCacheLeaderTest {
             add("root.sg4.d1");
           }
         };
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
@@ -774,7 +775,7 @@ public class SessionCacheLeaderTest {
             add("root.sg4.d1");
           }
         };
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
index aec44fe3430..aacf2f6fdd9 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
@@ -35,6 +35,7 @@ import org.apache.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.utils.BitMap;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.After;
 import org.junit.Assert;
@@ -799,7 +800,7 @@ public class SessionTest {
 
   @Test
   public void testInsertTablet() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -818,7 +819,7 @@ public class SessionTest {
   @Test
   public void testInsertTabletOutOfOrder()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -837,7 +838,7 @@ public class SessionTest {
   @Test
   public void testInsertAlignedTablet()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.INT32);
@@ -856,7 +857,7 @@ public class SessionTest {
   @Test
   public void testInsertAlignedTablet2()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.INT32);
@@ -875,7 +876,7 @@ public class SessionTest {
   @Test
   public void testInsertTabletsSorted()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.INT32);
@@ -901,7 +902,7 @@ public class SessionTest {
   @Test
   public void testInsertAlignedTablets()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.FLOAT);
@@ -920,7 +921,7 @@ public class SessionTest {
   @Test
   public void testInsertAlignedTabletsSorted()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.DOUBLE);
@@ -940,7 +941,7 @@ public class SessionTest {
   public void testInsertAlignedTabletsSortedEnableRedirection()
       throws IoTDBConnectionException, StatementExecutionException {
     Whitebox.setInternalState(session, "enableRedirection", false);
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.TEXT);
@@ -972,7 +973,7 @@ public class SessionTest {
 
   @Test
   public void testTestInsertTablet() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -991,7 +992,7 @@ public class SessionTest {
   @Test
   public void testTestInsertTabletSorted()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -1009,7 +1010,7 @@ public class SessionTest {
 
   @Test
   public void testTestInsertTablets() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -1028,7 +1029,7 @@ public class SessionTest {
   @Test
   public void testTestInsertTabletsSorted()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/TabletTest.java 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/TabletTest.java
index 689ebab4684..7df3ce16150 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/TabletTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/TabletTest.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.session;
 import org.apache.tsfile.enums.TSDataType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.Test;
 
@@ -34,7 +35,7 @@ public class TabletTest {
   @Test
   public void testSortTablet() {
     Session session = new Session("127.0.0.1", 1234);
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT64, 
TSEncoding.RLE));
     // insert three rows data
     Tablet tablet = new Tablet("root.sg1.d1", schemaList, 3);
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
index cfe1a3f5ce7..9eb096a6ef5 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
@@ -30,6 +30,7 @@ import org.apache.tsfile.file.metadata.enums.CompressionType;
 import org.apache.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.tsfile.utils.BitMap;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.After;
 import org.junit.Before;
@@ -117,7 +118,7 @@ public class SessionPoolExceptionTest {
     Mockito.doThrow(new IoTDBConnectionException(""))
         .when(session)
         .insertTablet(any(Tablet.class), anyBoolean());
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -136,7 +137,7 @@ public class SessionPoolExceptionTest {
     Mockito.doThrow(new IoTDBConnectionException(""))
         .when(session)
         .insertTablets(anyMap(), anyBoolean());
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -178,7 +179,7 @@ public class SessionPoolExceptionTest {
     Mockito.doThrow(new IoTDBConnectionException(""))
         .when(session)
         .insertAlignedTablets(anyMap(), anyBoolean());
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
index 0ceea65d982..a969099c962 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
@@ -50,6 +50,7 @@ import org.apache.tsfile.read.common.block.TsBlockBuilder;
 import org.apache.tsfile.read.common.block.column.TsBlockSerde;
 import org.apache.tsfile.utils.BitMap;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.After;
 import org.junit.Assert;
@@ -212,7 +213,7 @@ public class SessionPoolTest {
 
   @Test
   public void testInsertTablet() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -256,7 +257,7 @@ public class SessionPoolTest {
 
   @Test
   public void testTestInsertTablet1() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -275,7 +276,7 @@ public class SessionPoolTest {
 
   @Test
   public void testTestInsertTablet2() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -294,7 +295,7 @@ public class SessionPoolTest {
 
   @Test
   public void testTestInsertTablets() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -316,7 +317,7 @@ public class SessionPoolTest {
   @Test
   public void testTestInsertTablets2()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -395,7 +396,7 @@ public class SessionPoolTest {
   @Test
   public void testInsertAlignedTablet()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -414,7 +415,7 @@ public class SessionPoolTest {
 
   @Test
   public void testInsertTablets() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -436,7 +437,7 @@ public class SessionPoolTest {
   @Test
   public void testInsertAlignedTablets()
       throws IoTDBConnectionException, StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -1188,7 +1189,7 @@ public class SessionPoolTest {
 
   @Test
   public void testSortTablet() throws IoTDBConnectionException, 
StatementExecutionException {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
diff --git 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/util/SessionUtilsTest.java
 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/util/SessionUtilsTest.java
index 7fb93e49a23..79e793ed9a2 100644
--- 
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/util/SessionUtilsTest.java
+++ 
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/util/SessionUtilsTest.java
@@ -28,6 +28,7 @@ import org.apache.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.tsfile.utils.Binary;
 import org.apache.tsfile.utils.BitMap;
 import org.apache.tsfile.write.record.Tablet;
+import org.apache.tsfile.write.schema.IMeasurementSchema;
 import org.apache.tsfile.write.schema.MeasurementSchema;
 import org.junit.Assert;
 import org.junit.Test;
@@ -41,7 +42,7 @@ public class SessionUtilsTest {
 
   @Test
   public void testGetTimeBuffer() {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.BOOLEAN);
@@ -58,7 +59,7 @@ public class SessionUtilsTest {
 
   @Test
   public void testGetValueBuffer() {
-    List<MeasurementSchema> schemas = new ArrayList<>();
+    List<IMeasurementSchema> schemas = new ArrayList<>();
     MeasurementSchema schema = new MeasurementSchema();
     schema.setMeasurementId("pressure");
     schema.setType(TSDataType.INT32);
diff --git 
a/iotdb-connector/flink-sql-iotdb-connector/src/main/java/org/apache/iotdb/flink/sql/function/IoTDBCDCSourceFunction.java
 
b/iotdb-connector/flink-sql-iotdb-connector/src/main/java/org/apache/iotdb/flink/sql/function/IoTDBCDCSourceFunction.java
index c355171670f..8123d59f00f 100644
--- 
a/iotdb-connector/flink-sql-iotdb-connector/src/main/java/org/apache/iotdb/flink/sql/function/IoTDBCDCSourceFunction.java
+++ 
b/iotdb-connector/flink-sql-iotdb-connector/src/main/java/org/apache/iotdb/flink/sql/function/IoTDBCDCSourceFunction.java
@@ -232,11 +232,11 @@ public class IoTDBCDCSourceFunction extends 
RichSourceFunction<RowData> {
   }
 
   public void collectTablet(Tablet tablet, SourceContext<RowData> ctx) {
-    List<MeasurementSchema> schemas = tablet.getSchemas();
+    List<IMeasurementSchema> schemas = tablet.getSchemas();
     int rowSize = tablet.rowSize;
     HashMap<String, Pair<BitMap, List<Object>>> values = new HashMap<>();
     for (MeasurementSchema schema : schemas) {
-      String timeseries = String.format("%s.%s", tablet.deviceId, 
schema.getMeasurementId());
+      String timeseries = String.format("%s.%s", tablet.getDeviceId(), 
schema.getMeasurementId());
       TSDataType iotdbType = schema.getType();
       int index = timeseriesList.indexOf(timeseries);
       if (index == -1) {
diff --git 
a/iotdb-connector/hadoop/src/test/java/org/apache/iotdb/hadoop/tsfile/TsFileTestHelper.java
 
b/iotdb-connector/hadoop/src/test/java/org/apache/iotdb/hadoop/tsfile/TsFileTestHelper.java
index 3e80c361523..74b03379459 100644
--- 
a/iotdb-connector/hadoop/src/test/java/org/apache/iotdb/hadoop/tsfile/TsFileTestHelper.java
+++ 
b/iotdb-connector/hadoop/src/test/java/org/apache/iotdb/hadoop/tsfile/TsFileTestHelper.java
@@ -53,7 +53,7 @@ public class TsFileTestHelper {
       }
 
       Schema schema = new Schema();
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
 
       // the number of rows to include in the tablet
       int rowNum = 1000000;
diff --git 
a/iotdb-connector/hive-connector/src/test/java/org/apache/iotdb/hive/TsFileTestHelper.java
 
b/iotdb-connector/hive-connector/src/test/java/org/apache/iotdb/hive/TsFileTestHelper.java
index ccd8747fbcc..d7bd1186752 100644
--- 
a/iotdb-connector/hive-connector/src/test/java/org/apache/iotdb/hive/TsFileTestHelper.java
+++ 
b/iotdb-connector/hive-connector/src/test/java/org/apache/iotdb/hive/TsFileTestHelper.java
@@ -54,7 +54,7 @@ public class TsFileTestHelper {
       }
 
       Schema schema = new Schema();
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
 
       // the number of rows to include in the tablet
       int rowNum = 1000000;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/request/PipeTransferTabletRawReq.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/request/PipeTransferTabletRawReq.java
index e2512fac3ff..8aa68e88756 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/request/PipeTransferTabletRawReq.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/payload/evolvable/request/PipeTransferTabletRawReq.java
@@ -75,7 +75,7 @@ public class PipeTransferTabletRawReq extends 
TPipeTransferReq {
         request.addToTypes(measurementSchema.getType().ordinal());
       }
 
-      request.setPrefixPath(tablet.deviceId);
+      request.setPrefixPath(tablet.getDeviceId());
       request.setIsAligned(isAligned);
       request.setTimestamps(SessionUtils.getTimeBuffer(tablet));
       request.setValues(SessionUtils.getValueBuffer(tablet));
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaConnector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaConnector.java
index 5efb8000236..a2c0da487fa 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaConnector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/opcua/OpcUaConnector.java
@@ -230,7 +230,7 @@ public class OpcUaConnector implements PipeConnector {
 
       // Source name --> Sensor path, like root.test.d_0.s_0
       eventNode.setSourceName(
-          tablet.deviceId
+          tablet.getDeviceId()
               + TsFileConstant.PATH_SEPARATOR
               + tablet.getSchemas().get(columnIndex).getMeasurementId());
 
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/row/PipeRowCollector.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/row/PipeRowCollector.java
index bf2d1659fe4..85606f1200a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/row/PipeRowCollector.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/row/PipeRowCollector.java
@@ -64,7 +64,7 @@ public class PipeRowCollector implements RowCollector {
 
     if (tablet == null) {
       final String deviceId = pipeRow.getDeviceId();
-      final List<MeasurementSchema> measurementSchemaList =
+      final List<IMeasurementSchema> measurementSchemaList =
           new ArrayList<>(Arrays.asList(measurementSchemaArray));
       tablet =
           new Tablet(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/PipeRawTabletInsertionEvent.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/PipeRawTabletInsertionEvent.java
index dccfd0e0a21..c221c680e89 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/PipeRawTabletInsertionEvent.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/PipeRawTabletInsertionEvent.java
@@ -183,7 +183,7 @@ public class PipeRawTabletInsertionEvent extends 
EnrichedEvent implements Tablet
   }
 
   public String getDeviceId() {
-    return tablet.deviceId;
+    return tablet.getDeviceId();
   }
 
   /////////////////////////// TabletInsertionEvent ///////////////////////////
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/TabletInsertionDataContainer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/TabletInsertionDataContainer.java
index 750a77d209e..f45b0f5226d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/TabletInsertionDataContainer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tablet/TabletInsertionDataContainer.java
@@ -280,7 +280,7 @@ public class TabletInsertionDataContainer {
     final int originColumnSize = tablet.getSchemas().size();
     final Integer[] originColumnIndex2FilteredColumnIndexMapperList = new 
Integer[originColumnSize];
 
-    this.deviceId = tablet.deviceId;
+    this.deviceId = tablet.getDeviceId();
     this.isAligned = isAligned;
 
     final long[] originTimestampColumn =
@@ -289,7 +289,7 @@ public class TabletInsertionDataContainer {
     List<Integer> rowIndexList = generateRowIndexList(originTimestampColumn);
     this.timestampColumn = rowIndexList.stream().mapToLong(i -> 
originTimestampColumn[i]).toArray();
 
-    final List<MeasurementSchema> originMeasurementSchemaList = 
tablet.getSchemas();
+    final List<IMeasurementSchema> originMeasurementSchemaList = 
tablet.getSchemas();
     final String[] originMeasurementList = new 
String[originMeasurementSchemaList.size()];
     for (int i = 0; i < originMeasurementSchemaList.size(); i++) {
       originMeasurementList[i] = 
originMeasurementSchemaList.get(i).getMeasurementId();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataContainer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataContainer.java
index 1c1f0d02dee..af003ee3bdf 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataContainer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataContainer.java
@@ -239,7 +239,7 @@ public class TsFileInsertionDataContainer implements 
AutoCloseable {
 
             final Tablet tablet = tabletIterator.next();
             final boolean isAligned =
-                deviceIsAlignedMap.getOrDefault(new 
PlainDeviceID(tablet.deviceId), false);
+                deviceIsAlignedMap.getOrDefault(new 
PlainDeviceID(tablet.getDeviceId()), false);
 
             final TabletInsertionEvent next;
             if (!hasNext()) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java
index 1e028ae870e..9a9e45f3314 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/TsFileInsertionDataTabletIterator.java
@@ -110,7 +110,7 @@ public class TsFileInsertionDataTabletIterator implements 
Iterator<Tablet> {
   }
 
   private Tablet buildNextTablet() throws IOException {
-    final List<MeasurementSchema> schemas = new ArrayList<>();
+    final List<IMeasurementSchema> schemas = new ArrayList<>();
     for (final String measurement : measurements) {
       final TSDataType dataType =
           measurementDataTypeMap.get(deviceId + TsFileConstant.PATH_SEPARATOR 
+ measurement);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeMemoryManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeMemoryManager.java
index 827baaf5bde..d88f76c009a 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeMemoryManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/memory/PipeMemoryManager.java
@@ -196,7 +196,7 @@ public class PipeMemoryManager {
     }
 
     // values
-    final List<MeasurementSchema> timeseries = tablet.getSchemas();
+    final List<IMeasurementSchema> timeseries = tablet.getSchemas();
     if (timeseries != null) {
       for (int column = 0; column < timeseries.size(); column++) {
         final MeasurementSchema measurementSchema = timeseries.get(column);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/DeviceSchemaInfo.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/DeviceSchemaInfo.java
index 35c0e2fbbc9..5c21c8d6415 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/DeviceSchemaInfo.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/schematree/DeviceSchemaInfo.java
@@ -64,7 +64,7 @@ public class DeviceSchemaInfo {
     return templateId;
   }
 
-  public List<MeasurementSchema> getMeasurementSchemaList() {
+  public List<IMeasurementSchema> getMeasurementSchemaList() {
     return measurementSchemaInfoList.stream()
         .map(
             measurementSchemaInfo ->
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
index feb6c92bade..eff172ff036 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/LoadTsfileAnalyzer.java
@@ -545,7 +545,7 @@ public class LoadTsfileAnalyzer {
       for (final Map.Entry<IDeviceID, Set<MeasurementSchema>> entry :
           schemaCache.getDevice2TimeSeries().entrySet()) {
         final IDeviceID device = entry.getKey();
-        final List<MeasurementSchema> tsfileTimeseriesSchemas = new 
ArrayList<>(entry.getValue());
+        final List<IMeasurementSchema> tsfileTimeseriesSchemas = new 
ArrayList<>(entry.getValue());
         final DeviceSchemaInfo iotdbDeviceSchemaInfo =
             schemaTree.searchDeviceSchemaInfo(
                 new PartialPath(device),
@@ -574,7 +574,7 @@ public class LoadTsfileAnalyzer {
         }
 
         // check timeseries schema
-        final List<MeasurementSchema> iotdbTimeseriesSchemas =
+        final List<IMeasurementSchema> iotdbTimeseriesSchemas =
             iotdbDeviceSchemaInfo.getMeasurementSchemaList();
         for (int i = 0, n = iotdbTimeseriesSchemas.size(); i < n; i++) {
           final MeasurementSchema tsFileSchema = 
tsfileTimeseriesSchemas.get(i);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetcher.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetcher.java
index 3e1c1735a87..fccc796c0b8 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetcher.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/schema/ClusterSchemaFetcher.java
@@ -358,7 +358,7 @@ public class ClusterSchemaFetcher implements ISchemaFetcher 
{
     }
 
     List<Integer> indexOfMissingMeasurements = new ArrayList<>();
-    List<MeasurementSchema> schemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
+    List<IMeasurementSchema> schemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
     for (int i = 0; i < measurements.length; i++) {
       if (schemaList.get(i) == null) {
         indexOfMissingMeasurements.add(i);
@@ -384,7 +384,7 @@ public class ClusterSchemaFetcher implements ISchemaFetcher 
{
     }
 
     List<Integer> indexOfMissingMeasurements = new ArrayList<>();
-    List<MeasurementSchema> schemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
+    List<IMeasurementSchema> schemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
     for (int i = 0, size = schemaList.size(); i < size; i++) {
       if (schemaList.get(i) == null) {
         indexOfMissingMeasurements.add(indexOfTargetMeasurements.get(i));
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
index 18c016bb319..6e73aa2e258 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/trigger/executor/TriggerFireVisitor.java
@@ -108,7 +108,7 @@ public class TriggerFireVisitor extends 
PlanVisitor<TriggerFireResult, TriggerEv
     long time = node.getTime();
     boolean hasFailedTrigger = false;
     for (Map.Entry<String, List<String>> entry : 
triggerNameToMeasurementList.entrySet()) {
-      List<MeasurementSchema> schemas =
+      List<IMeasurementSchema> schemas =
           entry.getValue().stream()
               .map(measurement -> 
measurementSchemas[measurementToSchemaIndexMap.get(measurement)])
               .collect(Collectors.toList());
@@ -165,7 +165,7 @@ public class TriggerFireVisitor extends 
PlanVisitor<TriggerFireResult, TriggerEv
                 rowCount);
       } else {
         // choose specified columns
-        List<MeasurementSchema> schemas =
+        List<IMeasurementSchema> schemas =
             entry.getValue().stream()
                 .map(
                     measurement -> 
measurementSchemas[measurementToSchemaIndexMap.get(measurement)])
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/connector/PipeDataNodeThriftRequestTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/connector/PipeDataNodeThriftRequestTest.java
index fd3e06f4588..222f8c7db1b 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/connector/PipeDataNodeThriftRequestTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/connector/PipeDataNodeThriftRequestTest.java
@@ -141,7 +141,7 @@ public class PipeDataNodeThriftRequestTest {
   @Test
   public void testPipeTransferTabletReq() {
     try {
-      List<MeasurementSchema> schemaList = new ArrayList<>();
+      List<IMeasurementSchema> schemaList = new ArrayList<>();
       schemaList.add(new MeasurementSchema("s1", TSDataType.INT32));
       schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
       schemaList.add(new MeasurementSchema("s3", TSDataType.FLOAT));
@@ -203,7 +203,7 @@ public class PipeDataNodeThriftRequestTest {
     binaryBuffers.add(ByteBuffer.wrap(new byte[] {'a', 'b'}));
 
     // Raw buffer
-    List<MeasurementSchema> schemaList = new ArrayList<>();
+    List<IMeasurementSchema> schemaList = new ArrayList<>();
     schemaList.add(new MeasurementSchema("s1", TSDataType.INT32));
     schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
     schemaList.add(new MeasurementSchema("s3", TSDataType.FLOAT));
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java
index 4920f39a645..d1db7ae282c 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/DataDriverTest.java
@@ -79,7 +79,7 @@ public class DataDriverTest {
 
   private static final String DATA_DRIVER_TEST_SG = "root.DataDriverTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
index f7e24558be8..a22ada674ac 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AggregationOperatorTest.java
@@ -74,7 +74,7 @@ public class AggregationOperatorTest {
 
   private static final String AGGREGATION_OPERATOR_TEST_SG = 
"root.AggregationOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
index c9d72250456..3d9f90e5685 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesAggregationScanOperatorTest.java
@@ -78,7 +78,7 @@ public class AlignedSeriesAggregationScanOperatorTest {
 
   private static final int DEFAULT_MAX_TSBLOCK_SIZE_IN_BYTES =
       TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes();
-  private static final List<MeasurementSchema> measurementSchemas = new 
ArrayList<>();
+  private static final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private static final List<TsFileResource> seqResources = new ArrayList<>();
   private static final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
index 74e20189202..f899d210e51 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesScanOperatorTest.java
@@ -77,7 +77,7 @@ import static org.junit.Assert.fail;
 public class AlignedSeriesScanOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.AlignedSeriesScanOperatorTest";
-  private static final List<MeasurementSchema> measurementSchemas = new 
ArrayList<>();
+  private static final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private static final List<TsFileResource> seqResources = new ArrayList<>();
   private static final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesTestUtil.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesTestUtil.java
index 97190e58639..ef41d117c3e 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesTestUtil.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/AlignedSeriesTestUtil.java
@@ -59,7 +59,7 @@ import static 
org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 public class AlignedSeriesTestUtil {
 
   public static void setUp(
-      List<MeasurementSchema> measurementSchemas,
+      List<IMeasurementSchema> measurementSchemas,
       List<TsFileResource> seqResources,
       List<TsFileResource> unseqResources,
       String sgName)
@@ -82,7 +82,7 @@ public class AlignedSeriesTestUtil {
   private static void prepareFiles(
       List<TsFileResource> seqResources,
       List<TsFileResource> unseqResources,
-      List<MeasurementSchema> measurementSchemas,
+      List<IMeasurementSchema> measurementSchemas,
       String sgName)
       throws IOException, WriteProcessException {
     int seqFileNum = 5;
@@ -128,7 +128,7 @@ public class AlignedSeriesTestUtil {
       long timeOffset,
       long ptNum,
       long valueOffset,
-      List<MeasurementSchema> measurementSchemas)
+      List<IMeasurementSchema> measurementSchemas)
       throws IOException, WriteProcessException {
     File file = tsFileResource.getTsFile();
     if (!file.getParentFile().exists()) {
@@ -179,7 +179,7 @@ public class AlignedSeriesTestUtil {
     fileWriter.close();
   }
 
-  private static void prepareSeries(List<MeasurementSchema> 
measurementSchemas, String sgName)
+  private static void prepareSeries(List<IMeasurementSchema> 
measurementSchemas, String sgName)
       throws MetadataException {
 
     measurementSchemas.add(
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java
index 1c921225cbb..fdf9c1fc39f 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/DeviceViewOperatorTest.java
@@ -62,7 +62,7 @@ public class DeviceViewOperatorTest {
 
   private static final String DEVICE_MERGE_OPERATOR_TEST_SG = 
"root.DeviceViewOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
index c06bf2ff434..ae6371d5eca 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/HorizontallyConcatOperatorTest.java
@@ -72,7 +72,7 @@ public class HorizontallyConcatOperatorTest {
   private static final String HORIZONTALLY_CONCAT_OPERATOR_TEST_SG =
       "root.HorizontallyConcatOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
index 03c7402ab87..009e25e4b14 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQueryOperatorTest.java
@@ -69,7 +69,7 @@ public class LastQueryOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.LastQueryOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
index 6197254c4e5..1480e667379 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LastQuerySortOperatorTest.java
@@ -70,7 +70,7 @@ public class LastQuerySortOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.LastQuerySortOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java
index 31dda893358..03f70c6f624 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/LimitOperatorTest.java
@@ -69,7 +69,7 @@ public class LimitOperatorTest {
 
   private static final String TIME_JOIN_OPERATOR_TEST_SG = 
"root.LimitOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
index e1a6c59c9d6..4f44b8c1870 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/MergeSortOperatorTest.java
@@ -98,7 +98,7 @@ public class MergeSortOperatorTest {
 
   private static final String MERGE_SORT_OPERATOR_TEST_SG = 
"root.MergeSortOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java
index a1188becf10..0b094ee25fb 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/OffsetOperatorTest.java
@@ -70,7 +70,7 @@ public class OffsetOperatorTest {
 
   private static final String TIME_JOIN_OPERATOR_TEST_SG = 
"root.LimitOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java
index 7fac9a6118f..5e22d544a50 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/RawDataAggregationOperatorTest.java
@@ -84,7 +84,7 @@ public class RawDataAggregationOperatorTest {
 
   private static final String AGGREGATION_OPERATOR_TEST_SG = 
"root.RawDataAggregationOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
index e799847d2d5..e915f1cb4e9 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesAggregationScanOperatorTest.java
@@ -71,7 +71,7 @@ public class SeriesAggregationScanOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.SeriesScanOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java
index 11daae6f1c5..a5242aa0eed 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SeriesScanOperatorTest.java
@@ -63,7 +63,7 @@ public class SeriesScanOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.SeriesScanOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java
index a0b94759333..c367cc5badb 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SingleDeviceViewOperatorTest.java
@@ -65,7 +65,7 @@ public class SingleDeviceViewOperatorTest {
   private static final String SINGLE_DEVICE_MERGE_OPERATOR_TEST_SG =
       "root.SingleDeviceViewOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
index 16cb6e0ab87..ac7d132fad7 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SlidingWindowAggregationOperatorTest.java
@@ -74,7 +74,7 @@ public class SlidingWindowAggregationOperatorTest {
   private static final String AGGREGATION_OPERATOR_TEST_SG =
       "root.SlidingWindowAggregationOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorTest.java
index bf7c9767ffc..ddba0139c51 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/SortOperatorTest.java
@@ -74,7 +74,7 @@ public class SortOperatorTest {
 
   private static final String SORT_OPERATOR_TEST_SG = "root.SortOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TopKOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TopKOperatorTest.java
index ea4b2e912dc..84a887bd956 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TopKOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/TopKOperatorTest.java
@@ -92,7 +92,7 @@ import static org.mockito.Mockito.when;
 public class TopKOperatorTest {
   private static final String TOP_K_OPERATOR_TEST_SG = "root.TopKOperatorTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
index c3b0ad8bbd0..3eff03335c2 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/UpdateLastCacheOperatorTest.java
@@ -70,7 +70,7 @@ public class UpdateLastCacheOperatorTest {
 
   private static final String SERIES_SCAN_OPERATOR_TEST_SG = 
"root.UpdateLastCacheOperator";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
index 8286a11c51a..d85699fde9d 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/schema/SchemaFetchScanOperatorTest.java
@@ -77,7 +77,7 @@ public class SchemaFetchScanOperatorTest {
         schemaTree.searchDeviceSchemaInfo(
             new PartialPath("root.sg.d2.a"), Arrays.asList("s1", "status"));
     Assert.assertTrue(deviceSchemaInfo.isAligned());
-    List<MeasurementSchema> measurementSchemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
+    List<IMeasurementSchema> measurementSchemaList = 
deviceSchemaInfo.getMeasurementSchemaList();
     Assert.assertEquals(2, measurementSchemaList.size());
     Assert.assertEquals(
         Arrays.asList("s1", "s2"),
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java
index 999bc7f7512..aa4a8b3ba5b 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/execution/operator/sink/IdentitySinkOperatorTest.java
@@ -70,7 +70,7 @@ import static org.junit.Assert.fail;
 public class IdentitySinkOperatorTest {
   private static final String IDENTITY_SINK_TEST = "root.identitySinkTest";
   private final List<String> deviceIds = new ArrayList<>();
-  private final List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+  private final List<IMeasurementSchema> measurementSchemas = new 
ArrayList<>();
 
   private final List<TsFileResource> seqResources = new ArrayList<>();
   private final List<TsFileResource> unSeqResources = new ArrayList<>();
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java
index 00744e9b09c..66dca5828c4 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/buffer/BloomFilterCacheTest.java
@@ -194,7 +194,7 @@ public class BloomFilterCacheTest {
       int rowNum = 1000000;
       // the number of values to include in the tablet
       int sensorNum = 10;
-      List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+      List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
       // add measurements into file metadata (all with INT64 data type)
       for (int i = 0; i < sensorNum; i++) {
         MeasurementSchema measurementSchema =
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionDataTypeNotMatchTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionDataTypeNotMatchTest.java
index 82a2fa40065..69bc0c2b8c3 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionDataTypeNotMatchTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionDataTypeNotMatchTest.java
@@ -172,7 +172,7 @@ public class CompactionDataTypeNotMatchTest extends 
AbstractCompactionTest {
 
   private void generateDataTypeNotMatchFilesWithAlignedSeries()
       throws IOException, WriteProcessException {
-    List<MeasurementSchema> measurementSchemas1 = new ArrayList<>();
+    List<IMeasurementSchema> measurementSchemas1 = new ArrayList<>();
     measurementSchemas1.add(new MeasurementSchema("s1", TSDataType.INT32));
     measurementSchemas1.add(new MeasurementSchema("s2", TSDataType.INT32));
 
@@ -191,7 +191,7 @@ public class CompactionDataTypeNotMatchTest extends 
AbstractCompactionTest {
     resource1.serialize();
     seqResources.add(resource1);
 
-    List<MeasurementSchema> measurementSchemas2 = new ArrayList<>();
+    List<IMeasurementSchema> measurementSchemas2 = new ArrayList<>();
     measurementSchemas2.add(new MeasurementSchema("s1", TSDataType.BOOLEAN));
     measurementSchemas2.add(new MeasurementSchema("s2", TSDataType.BOOLEAN));
     TsFileResource resource2 = createEmptyFileAndResource(true);
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionValidationTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionValidationTest.java
index e05125696bc..e27ef333895 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionValidationTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/CompactionValidationTest.java
@@ -70,7 +70,7 @@ public class CompactionValidationTest {
       }
 
       try (TsFileWriter tsFileWriter = new TsFileWriter(f)) {
-        List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+        List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
         measurementSchemas.add(new MeasurementSchema(SENSOR_1, 
TSDataType.TEXT, TSEncoding.PLAIN));
         measurementSchemas.add(new MeasurementSchema(SENSOR_2, 
TSDataType.TEXT, TSEncoding.PLAIN));
         measurementSchemas.add(new MeasurementSchema(SENSOR_3, 
TSDataType.TEXT, TSEncoding.PLAIN));
@@ -78,7 +78,7 @@ public class CompactionValidationTest {
         // register nonAligned timeseries
         tsFileWriter.registerTimeseries(new Path(DEVICE_1), 
measurementSchemas);
 
-        List<MeasurementSchema> writeMeasurementScheams = new ArrayList<>();
+        List<IMeasurementSchema> writeMeasurementScheams = new ArrayList<>();
         // example 1
         writeMeasurementScheams.add(measurementSchemas.get(0));
         writeMeasurementScheams.add(measurementSchemas.get(1));
@@ -93,7 +93,7 @@ public class CompactionValidationTest {
   private void writeWithTablet(
       TsFileWriter tsFileWriter,
       String deviceId,
-      List<MeasurementSchema> schemas,
+      List<IMeasurementSchema> schemas,
       long rowNum,
       long startTime,
       long startValue)
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesReaderTestUtil.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesReaderTestUtil.java
index 4261dd2d898..a4c5042c588 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesReaderTestUtil.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/read/reader/series/SeriesReaderTestUtil.java
@@ -85,7 +85,7 @@ public class SeriesReaderTestUtil {
   private static TSEncoding encoding = TSEncoding.PLAIN;
 
   public static void setUp(
-      List<MeasurementSchema> measurementSchemas,
+      List<IMeasurementSchema> measurementSchemas,
       List<String> deviceIds,
       List<TsFileResource> seqResources,
       List<TsFileResource> unseqResources,
@@ -109,7 +109,7 @@ public class SeriesReaderTestUtil {
   private static void prepareFiles(
       List<TsFileResource> seqResources,
       List<TsFileResource> unseqResources,
-      List<MeasurementSchema> measurementSchemas,
+      List<IMeasurementSchema> measurementSchemas,
       List<String> deviceIds,
       String sgName)
       throws IOException, WriteProcessException {
@@ -155,7 +155,7 @@ public class SeriesReaderTestUtil {
       long timeOffset,
       long ptNum,
       long valueOffset,
-      List<MeasurementSchema> measurementSchemas,
+      List<IMeasurementSchema> measurementSchemas,
       List<String> deviceIds)
       throws IOException, WriteProcessException {
     File file = tsFileResource.getTsFile();
@@ -193,7 +193,7 @@ public class SeriesReaderTestUtil {
   }
 
   private static void prepareSeries(
-      List<MeasurementSchema> measurementSchemas, List<String> deviceIds, 
String sgName) {
+      List<IMeasurementSchema> measurementSchemas, List<String> deviceIds, 
String sgName) {
     for (int i = 0; i < measurementNum; i++) {
       measurementSchemas.add(
           new MeasurementSchema(
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSelfCheckToolTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSelfCheckToolTest.java
index 75fc48b2cfd..6fd9adb8f92 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSelfCheckToolTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSelfCheckToolTest.java
@@ -84,7 +84,7 @@ public class TsFileSelfCheckToolTest {
       // the number of values to include in the tablet
       int sensorNum = 10;
 
-      List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+      List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
       // add measurements into file schema (all with INT64 data type)
       for (int i = 0; i < sensorNum; i++) {
         MeasurementSchema measurementSchema =
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSketchToolTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSketchToolTest.java
index e6dd2f9298f..786f1a78103 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSketchToolTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/tools/TsFileSketchToolTest.java
@@ -76,7 +76,7 @@ public class TsFileSketchToolTest {
 
       Schema schema = new Schema();
 
-      List<MeasurementSchema> measurementSchemas = new ArrayList<>();
+      List<IMeasurementSchema> measurementSchemas = new ArrayList<>();
       // add measurements into file schema (all with INT64 data type)
       for (int i = 0; i < sensorNum; i++) {
         MeasurementSchema measurementSchema =
@@ -87,8 +87,8 @@ public class TsFileSketchToolTest {
             new MeasurementSchema(sensorPrefix + (i + 1), TSDataType.INT64, 
TSEncoding.TS_2DIFF));
       }
       // add aligned measurements into file schema
-      List<MeasurementSchema> schemas = new ArrayList<>();
-      List<MeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
+      List<IMeasurementSchema> schemas = new ArrayList<>();
+      List<IMeasurementSchema> alignedMeasurementSchemas = new ArrayList<>();
       for (int i = 0; i < sensorNum; i++) {
         MeasurementSchema schema1 =
             new MeasurementSchema(sensorPrefix + (i + 1), TSDataType.INT64, 
TSEncoding.RLE);
diff --git a/pom.xml b/pom.xml
index d624e88d261..925c4adcb5d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -187,7 +187,7 @@
         <xz.version>1.9</xz.version>
         <zeppelin.version>0.11.1</zeppelin.version>
         <zstd-jni.version>1.5.5-5</zstd-jni.version>
-        <tsfile.version>1.0.1-98d9e8d-SNAPSHOT</tsfile.version>
+        <tsfile.version>1.0.1-SNAPSHOT</tsfile.version>
     </properties>
     <!--
     if we claim dependencies in dependencyManagement, then we do not claim

Reply via email to