You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/11/16 08:35:17 UTC

[iotdb] 02/06: merge new_vector

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

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

commit 01c3ac572bfa104c41fdb2eb5077292ec87e568f
Merge: e43569c 9a657f8
Author: HTHou <hh...@outlook.com>
AuthorDate: Mon Nov 15 13:15:23 2021 +0800

    merge new_vector

 .gitignore                                         |    1 -
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |    2 +-
 cli/pom.xml                                        |    5 +
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |   86 +-
 client-cpp/pom.xml                                 |    2 +-
 cluster/pom.xml                                    |    4 +
 .../resources/conf/iotdb-cluster.properties        |    5 -
 cluster/src/assembly/resources/sbin/add-node.bat   |    2 +-
 cluster/src/assembly/resources/sbin/add-node.sh    |    2 +-
 .../src/assembly/resources/sbin/remove-node.bat    |    4 +-
 cluster/src/assembly/resources/sbin/remove-node.sh |    2 +-
 cluster/src/assembly/resources/sbin/start-node.bat |    4 +-
 cluster/src/assembly/resources/sbin/start-node.sh  |    2 +-
 cluster/src/assembly/resources/sbin/stop-node.bat  |    2 +-
 cluster/src/assembly/resources/sbin/stop-node.sh   |    2 +-
 .../java/org/apache/iotdb/cluster/ClientMain.java  |    3 +-
 .../org/apache/iotdb/cluster/ClusterIoTDB.java     |  689 ++++++++
 .../apache/iotdb/cluster/ClusterIoTDBMBean.java    |   21 +-
 .../java/org/apache/iotdb/cluster/ClusterMain.java |  331 ----
 .../apache/iotdb/cluster/client/BaseFactory.java   |   54 +
 .../iotdb/cluster/client/ClientCategory.java       |   23 +-
 .../apache/iotdb/cluster/client/ClientManager.java |  223 +++
 .../iotdb/cluster/client/ClientPoolFactory.java    |   98 ++
 .../iotdb/cluster/client/DataClientProvider.java   |   95 --
 .../SyncClientFactory.java => IClientManager.java} |   21 +-
 .../cluster/client/async/AsyncBaseFactory.java     |   68 +
 .../cluster/client/async/AsyncClientFactory.java   |   65 -
 .../cluster/client/async/AsyncClientPool.java      |  216 ---
 .../cluster/client/async/AsyncDataClient.java      |  199 ++-
 .../client/async/AsyncDataHeartbeatClient.java     |   81 -
 .../cluster/client/async/AsyncMetaClient.java      |  147 +-
 .../client/async/AsyncMetaHeartbeatClient.java     |   81 -
 .../cluster/client/sync/SyncClientAdaptor.java     |   58 +-
 .../iotdb/cluster/client/sync/SyncClientPool.java  |  169 --
 .../iotdb/cluster/client/sync/SyncDataClient.java  |  114 +-
 .../client/sync/SyncDataHeartbeatClient.java       |   79 -
 .../iotdb/cluster/client/sync/SyncMetaClient.java  |  121 +-
 .../client/sync/SyncMetaHeartbeatClient.java       |   78 -
 .../apache/iotdb/cluster/config/ClusterConfig.java |    9 -
 .../iotdb/cluster/config/ClusterConstant.java      |   86 +
 .../iotdb/cluster/config/ClusterDescriptor.java    |   12 +-
 .../iotdb/cluster/coordinator/Coordinator.java     |   55 +-
 .../apache/iotdb/cluster/log/LogDispatcher.java    |   18 +-
 .../cluster/log/applier/AsyncDataLogApplier.java   |    2 +-
 .../iotdb/cluster/log/applier/BaseApplier.java     |    2 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |   15 +-
 .../iotdb/cluster/log/catchup/LogCatchUpTask.java  |    5 +-
 .../manage/FilePartitionedSnapshotLogManager.java  |    2 +
 .../log/manage/PartitionedSnapshotLogManager.java  |    5 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |   23 +-
 .../iotdb/cluster/log/snapshot/FileSnapshot.java   |   12 +-
 .../cluster/log/snapshot/MetaSimpleSnapshot.java   |    2 +-
 .../cluster/log/snapshot/PullSnapshotTask.java     |    5 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |  242 +--
 .../apache/iotdb/cluster/metadata/MetaPuller.java  |   77 +-
 .../iotdb/cluster/partition/PartitionGroup.java    |    5 +
 .../cluster/query/ClusterPhysicalGenerator.java    |   11 -
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |  297 ++--
 .../iotdb/cluster/query/ClusterPlanRouter.java     |   14 +-
 .../iotdb/cluster/query/LocalQueryExecutor.java    |   33 +-
 .../cluster/query/aggregate/ClusterAggregator.java |   33 +-
 .../cluster/query/fill/ClusterFillExecutor.java    |    2 +-
 .../cluster/query/fill/ClusterLinearFill.java      |    8 +-
 .../cluster/query/fill/ClusterPreviousFill.java    |   65 +-
 .../query/groupby/RemoteGroupByExecutor.java       |   81 +-
 .../query/last/ClusterLastQueryExecutor.java       |   69 +-
 .../cluster/query/reader/ClusterReaderFactory.java |   65 +-
 .../iotdb/cluster/query/reader/DataSourceInfo.java |   83 +-
 .../reader/RemoteSeriesReaderByTimestamp.java      |   15 +-
 .../query/reader/RemoteSimpleSeriesReader.java     |   15 +-
 .../query/reader/mult/MultDataSourceInfo.java      |   61 +-
 .../query/reader/mult/RemoteMultSeriesReader.java  |   31 +-
 .../apache/iotdb/cluster/server/ClientServer.java  |  311 ----
 .../iotdb/cluster/server/ClusterRPCService.java    |   62 +-
 .../cluster/server/ClusterRPCServiceMBean.java     |   20 +-
 .../iotdb/cluster/server/ClusterTSServiceImpl.java |  172 ++
 .../iotdb/cluster/server/DataClusterServer.java    | 1109 ------------
 .../iotdb/cluster/server/MetaClusterServer.java    |  379 -----
 .../cluster/server/PullSnapshotHintService.java    |   18 +-
 .../apache/iotdb/cluster/server/RaftServer.java    |  285 ----
 .../org/apache/iotdb/cluster/server/Response.java  |    3 +
 .../iotdb/cluster/server/StoppedMemberManager.java |    9 +-
 .../server/clusterinfo/ClusterInfoServer.java      |    1 +
 .../handlers/caller/AppendNodeEntryHandler.java    |    8 +-
 .../server/handlers/caller/HeartbeatHandler.java   |    6 +-
 .../server/heartbeat/DataHeartbeatServer.java      |   83 -
 .../cluster/server/heartbeat/HeartbeatServer.java  |  212 ---
 .../cluster/server/heartbeat/HeartbeatThread.java  |   29 +-
 .../server/heartbeat/MetaHeartbeatServer.java      |   91 -
 .../server/heartbeat/MetaHeartbeatThread.java      |    6 +
 .../cluster/server/member/DataGroupMember.java     |   90 +-
 .../server/member/DataGroupMemberMBean.java        |   14 +-
 .../cluster/server/member/MetaGroupMember.java     |  493 +++---
 .../server/member/MetaGroupMemberMBean.java        |   20 +-
 .../iotdb/cluster/server/member/RaftMember.java    |  268 +--
 .../member/RaftMemberMBean.java}                   |   41 +-
 .../server/raft/AbstractDataRaftService.java       |   54 +
 .../server/raft/AbstractMetaRaftService.java       |   52 +
 .../cluster/server/raft/AbstractRaftService.java   |   76 +
 .../server/raft/DataRaftHeartBeatService.java      |   68 +
 .../server/raft/DataRaftHeartBeatServiceMBean.java |   15 +-
 .../iotdb/cluster/server/raft/DataRaftService.java |   65 +
 .../cluster/server/raft/DataRaftServiceMBean.java  |   15 +-
 .../server/raft/MetaRaftHeartBeatService.java      |   68 +
 .../server/raft/MetaRaftHeartBeatServiceMBean.java |   15 +-
 .../iotdb/cluster/server/raft/MetaRaftService.java |   65 +
 .../cluster/server/raft/MetaRaftServiceMBean.java  |   15 +-
 .../cluster/server/raft/RaftServiceHandler.java    |   25 +-
 .../cluster/server/service/DataGroupEngine.java    |  510 ++++++
 .../server/service/DataGroupEngineMBean.java       |   16 +-
 .../server/service/DataGroupServiceImpls.java      |  743 ++++++++
 .../cluster/server/service/MetaAsyncService.java   |   20 +-
 .../cluster/server/service/MetaSyncService.java    |   33 +-
 .../apache/iotdb/cluster/utils/ClientUtils.java    |   64 +-
 .../iotdb/cluster/utils/ClusterQueryUtils.java     |   55 +-
 .../apache/iotdb/cluster/utils/ClusterUtils.java   |   49 -
 .../apache/iotdb/cluster/utils/PartitionUtils.java |    6 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |   28 +-
 .../iotdb/cluster/client/BaseClientTest.java       |  156 ++
 .../iotdb/cluster/client/ClientManagerTest.java    |  212 +++
 .../cluster/client/ClientPoolFactoryTest.java      |  262 +++
 .../cluster/client/DataClientProviderTest.java     |  242 ---
 .../iotdb/cluster/client/MockClientManager.java}   |   33 +-
 .../cluster/client/async/AsyncClientPoolTest.java  |  209 ---
 .../cluster/client/async/AsyncDataClientTest.java  |  109 +-
 .../client/async/AsyncDataHeartbeatClientTest.java |   60 -
 .../cluster/client/async/AsyncMetaClientTest.java  |  108 +-
 .../client/async/AsyncMetaHeartbeatClientTest.java |   61 -
 .../cluster/client/sync/SyncClientAdaptorTest.java |   16 +-
 .../cluster/client/sync/SyncClientPoolTest.java    |  167 --
 .../cluster/client/sync/SyncDataClientTest.java    |  172 +-
 .../client/sync/SyncDataHeartbeatClientTest.java   |   66 -
 .../cluster/client/sync/SyncMetaClientTest.java    |  170 +-
 .../client/sync/SyncMetaHeartbeatClientTest.java   |   66 -
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |   16 +-
 .../cluster/common/TestAsyncClientFactory.java     |   55 -
 .../iotdb/cluster/common/TestAsyncDataClient.java  |    3 +-
 .../iotdb/cluster/common/TestAsyncMetaClient.java  |    9 +-
 .../apache/iotdb/cluster/common/TestSnapshot.java  |    6 +-
 .../cluster/common/TestSyncClientFactory.java      |   88 -
 .../org/apache/iotdb/cluster/common/TestUtils.java |   19 +-
 .../cluster/integration/BaseSingleNodeTest.java    |   16 +-
 .../iotdb/cluster/integration/SingleNodeTest.java  |    7 +-
 .../apache/iotdb/cluster/log/LogParserTest.java    |    6 +-
 .../cluster/log/applier/DataLogApplierTest.java    |  180 +-
 .../cluster/log/applier/MetaLogApplierTest.java    |    4 +-
 .../iotdb/cluster/log/catchup/CatchUpTaskTest.java |    5 -
 .../cluster/log/catchup/LogCatchUpTaskTest.java    |    7 +-
 .../log/catchup/SnapshotCatchUpTaskTest.java       |    9 +-
 .../cluster/log/logtypes/SerializeLogTest.java     |    6 +-
 .../cluster/log/snapshot/DataSnapshotTest.java     |   10 +-
 .../log/snapshot/MetaSimpleSnapshotTest.java       |    2 +-
 .../cluster/log/snapshot/PullSnapshotTaskTest.java |    5 -
 .../iotdb/cluster/partition/MManagerWhiteBox.java  |    2 +-
 .../cluster/partition/SlotPartitionTableTest.java  |    2 +-
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |    7 +-
 .../query/ClusterAggregateExecutorTest.java        |   47 +-
 .../query/ClusterDataQueryExecutorTest.java        |    5 -
 .../query/ClusterPhysicalGeneratorTest.java        |    1 -
 .../cluster/query/ClusterPlanExecutorTest.java     |    2 -
 .../iotdb/cluster/query/ClusterPlannerTest.java    |    1 -
 .../cluster/query/ClusterQueryRouterTest.java      |   52 +-
 .../query/fill/ClusterFillExecutorTest.java        |   17 +-
 .../ClusterGroupByNoVFilterDataSetTest.java        |    7 +-
 .../groupby/ClusterGroupByVFilterDataSetTest.java  |   13 +-
 .../query/groupby/MergeGroupByExecutorTest.java    |    5 +-
 .../query/groupby/RemoteGroupByExecutorTest.java   |    5 +-
 .../cluster/query/manage/QueryCoordinatorTest.java |    8 +-
 .../query/reader/ClusterReaderFactoryTest.java     |    9 +-
 .../query/reader/ClusterTimeGeneratorTest.java     |    7 +-
 .../cluster/query/reader/DatasourceInfoTest.java   |   55 +-
 .../reader/RemoteSeriesReaderByTimestampTest.java  |  132 +-
 .../query/reader/RemoteSimpleSeriesReaderTest.java |  104 +-
 .../mult/AssignPathManagedMergeReaderTest.java     |  115 +-
 .../reader/mult/RemoteMultSeriesReaderTest.java    |  220 ++-
 .../server/clusterinfo/ClusterInfoServerTest.java  |    5 +-
 .../clusterinfo/ClusterInfoServiceImplTest.java    |   26 +-
 .../caller/AppendGroupEntryHandlerTest.java        |    3 +-
 .../caller/AppendNodeEntryHandlerTest.java         |    3 +-
 .../handlers/caller/ElectionHandlerTest.java       |    3 +-
 .../handlers/caller/HeartbeatHandlerTest.java      |    3 +-
 .../handlers/caller/LogCatchUpHandlerTest.java     |    3 +-
 .../server/heartbeat/DataHeartbeatThreadTest.java  |    5 -
 .../server/heartbeat/HeartbeatThreadTest.java      |   23 +-
 .../server/heartbeat/MetaHeartbeatThreadTest.java  |    5 -
 .../iotdb/cluster/server/member/BaseMember.java    |   60 +-
 .../cluster/server/member/DataGroupMemberTest.java |   54 +-
 .../cluster/server/member/MetaGroupMemberTest.java |  162 +-
 .../cluster/utils/CreateTemplatePlanUtil.java      |    7 +-
 .../resources/node1conf/iotdb-engine.properties    |   12 +-
 .../resources/node2conf/iotdb-engine.properties    |   12 +-
 .../resources/node3conf/iotdb-engine.properties    |   12 +-
 compile-tools/thrift/pom.xml                       |    2 +-
 distribution/src/assembly/all.xml                  |    4 +
 distribution/src/assembly/server.xml               |    4 +
 docs/Development/ContributeGuide.md                |    2 +-
 docs/UserGuide/API/Programming-Java-Native-API.md  |  133 +-
 docs/UserGuide/Appendix/Status-Codes.md            |    1 +
 .../UserGuide/API/Programming-Java-Native-API.md   |  130 +-
 docs/zh/UserGuide/Appendix/Status-Codes.md         |    2 +
 .../Communication-Service-Protocol/RestService.md  |  268 +++
 example/client-cpp-example/pom.xml                 |    2 +-
 .../iotdb/hadoop/tsfile/TSMRWriteExample.java      |    6 +-
 .../apache/iotdb/hadoop/tsfile/TsFileHelper.java   |    8 +-
 .../iotdb/hadoop/tsfile/TsFileWriteToHDFS.java     |    6 +-
 .../iotdb/AlignedTimeseriesSessionExample.java     |   33 +-
 .../org/apache/iotdb/SessionConcurrentExample.java |    4 +-
 .../main/java/org/apache/iotdb/SessionExample.java |    4 +-
 .../iotdb/tsfile/TsFileForceAppendWrite.java       |   12 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |   85 +-
 .../tsfile/TsFileWriteAlignedWithTSRecord.java     |   84 +
 .../iotdb/tsfile/TsFileWriteAlignedWithTablet.java |  141 ++
 .../iotdb/tsfile/TsFileWriteVectorWithTablet.java  |  118 --
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   66 +-
 .../apache/iotdb/tsfile/TsFileWriteWithTablet.java |  106 +-
 flink-iotdb-connector/pom.xml                      |    5 +
 grafana/pom.xml                                    |    4 +-
 .../apache/iotdb/hadoop/fileSystem/HDFSInput.java  |    5 +
 .../apache/iotdb/hadoop/tsfile/TSFHadoopTest.java  |   49 +-
 .../iotdb/hadoop/tsfile/TsFileTestHelper.java      |    2 +-
 .../apache/iotdb/hive/TSFHiveInputFormatTest.java  |   27 +-
 .../apache/iotdb/hive/TSFHiveRecordReaderTest.java |   28 +-
 .../org/apache/iotdb/hive/TsFileTestHelper.java    |    2 +-
 jdbc/pom.xml                                       |    5 +
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |   10 +-
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |    3 +-
 metrics/ReadMe.md                                  |  151 ++
 metrics/dropwizard-metrics/pom.xml                 |   54 +
 .../dropwizard/DropwizardMetricManager.java        |  392 +++++
 .../iotdb/metrics/dropwizard/MetricName.java       |  134 ++
 .../dropwizard/reporter/DropwizardJmxReporter.java |   75 +
 .../reporter/DropwizardPrometheusReporter.java     |   89 +
 .../prometheus/DropwizardMetricsExporter.java      |  197 +++
 .../dropwizard/reporter/prometheus/MetricType.java |   25 +-
 .../reporter/prometheus/PrometheusReporter.java    |  233 +++
 .../reporter/prometheus/PrometheusSender.java      |   63 +
 .../reporter/prometheus/PrometheusTextWriter.java  |   79 +
 .../reporter/prometheus/PushGateway.java           |  150 ++
 .../dropwizard/reporter/prometheus/TextFormat.java |   16 +-
 .../metrics/dropwizard/type/DropwizardCounter.java |   29 +-
 .../metrics/dropwizard/type/DropwizardGauge.java   |   62 +
 .../dropwizard/type/DropwizardHistogram.java       |   37 +-
 .../type/DropwizardHistogramSnapshot.java          |   73 +
 .../metrics/dropwizard/type/DropwizardRate.java    |   94 ++
 .../metrics/dropwizard/type/DropwizardTimer.java   |   34 +-
 .../org.apache.iotdb.metrics.MetricManager         |   18 +
 .../services/org.apache.iotdb.metrics.Reporter     |   19 +
 .../dropwizard/DropwizardMetricManagerTest.java    |  261 +++
 .../metrics/dropwizard/DropwizardMetricTest.java   |  181 ++
 .../dropwizard/DropwizardMetricTestPlan.java       |   62 +
 .../metrics/dropwizard/PrometheusRunTest.java      |   42 +
 .../src/test/resources/iotdb-metric.yml            |   37 +-
 metrics/interface/pom.xml                          |   73 +
 .../interface/src/main/assembly/metric.xml         |    4 +-
 .../main/assembly/resources/conf/iotdb-metric.yml  |   37 +-
 .../apache/iotdb/metrics/CompositeReporter.java    |   81 +
 .../org/apache/iotdb/metrics/MetricManager.java    |  168 ++
 .../org/apache/iotdb/metrics/MetricService.java    |  156 ++
 .../java/org/apache/iotdb/metrics/Reporter.java    |   23 +-
 .../apache/iotdb/metrics/config/MetricConfig.java  |  106 ++
 .../metrics/config/MetricConfigDescriptor.java     |   88 +
 .../iotdb/metrics/config/MetricConstant.java       |   16 +-
 .../iotdb/metrics/impl/DoNothingCounter.java       |   23 +-
 .../apache/iotdb/metrics/impl/DoNothingGauge.java  |   20 +-
 .../iotdb/metrics/impl/DoNothingHistogram.java     |   29 +-
 .../metrics/impl/DoNothingHistogramSnapshot.java   |   48 +-
 .../iotdb/metrics/impl/DoNothingMetricManager.java |  178 ++
 .../apache/iotdb/metrics/impl/DoNothingRate.java   |   43 +-
 .../apache/iotdb/metrics/impl/DoNothingTimer.java  |   27 +-
 .../org/apache/iotdb/metrics/type/Counter.java     |   20 +-
 .../java/org/apache/iotdb/metrics/type/Gauge.java  |   19 +-
 .../org/apache/iotdb/metrics/type/Histogram.java   |   21 +-
 .../iotdb/metrics/type/HistogramSnapshot.java      |   40 +-
 .../org/apache/iotdb/metrics/type/IMetric.java     |   17 +-
 .../java/org/apache/iotdb/metrics/type/Rate.java   |   31 +-
 .../java/org/apache/iotdb/metrics/type/Timer.java  |   53 +
 .../apache/iotdb/metrics/utils/MonitorType.java    |   43 +-
 .../iotdb/metrics/utils/PredefinedMetric.java      |   17 +-
 .../apache/iotdb/metrics/utils/ReporterType.java   |   24 +-
 .../iotdb/metrics/config/MetricConfigTest.java     |   57 +
 .../src/main/test/resources/iotdb-metric.yml       |   38 +-
 metrics/micrometer-metrics/pom.xml                 |   57 +
 .../iotdb/metrics/micrometer/MeterIdUtils.java     |   19 +-
 .../micrometer/MicrometerMetricManager.java        |  447 +++++
 .../micrometer/reporter/MicrometerJmxReporter.java |   82 +
 .../reporter/MicrometerPrometheusReporter.java     |  102 ++
 .../metrics/micrometer/type/MicrometerCounter.java |   29 +-
 .../metrics/micrometer/type/MicrometerGauge.java   |   33 +-
 .../micrometer/type/MicrometerHistogram.java       |   52 +
 .../type/MicrometerHistogramSnapshot.java          |   90 +
 .../metrics/micrometer/type/MicrometerRate.java    |   81 +
 .../metrics/micrometer/type/MicrometerTimer.java   |   54 +
 .../org.apache.iotdb.metrics.MetricManager         |   18 +
 .../services/org.apache.iotdb.metrics.Reporter     |   19 +
 .../metrics/micrometer/MicrometerMetricTest.java   |  181 ++
 .../micrometer/MicrometerMetricTestPlan.java       |   62 +
 .../src/test/resources/iotdb-metric.yml            |   37 +-
 server/src/assembly/server.xml => metrics/pom.xml  |   38 +-
 openapi/pom.xml                                    |  124 ++
 openapi/src/main/openapi3/iotdb-rest.yaml          |  167 ++
 pom.xml                                            |   29 +-
 server/pom.xml                                     |    7 +
 .../resources/conf/iotdb-engine.properties         |    3 +-
 .../assembly/resources/conf/iotdb-rest.properties  |   52 +-
 server/src/assembly/server.xml                     |    4 +
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    5 +-
 .../IoTDBDaemonThreadFactory.java}                 |   23 +-
 .../db/concurrent/IoTDBThreadPoolFactory.java      |  186 +-
 .../org/apache/iotdb/db/concurrent/ThreadName.java |   13 +-
 .../db/concurrent/threadpool/IThreadPoolMBean.java |   30 +-
 .../WrappedScheduledExecutorService.java           |  193 +++
 .../WrappedScheduledExecutorServiceMBean.java      |   15 +-
 .../WrappedSingleThreadExecutorService.java        |  119 ++
 .../WrappedSingleThreadExecutorServiceMBean.java   |   15 +-
 .../WrappedSingleThreadScheduledExecutor.java      |  141 ++
 .../WrappedSingleThreadScheduledExecutorMBean.java |   15 +-
 .../threadpool/WrappedThreadPoolExecutor.java      |   82 +
 .../threadpool/WrappedThreadPoolExecutorMBean.java |   15 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |   29 +-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |    1 +
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |    6 +-
 .../iotdb/db/conf/rest/IoTDBRestServiceCheck.java  |   65 +
 .../iotdb/db/conf/rest/IoTDBRestServiceConfig.java |  143 ++
 .../db/conf/rest/IoTDBRestServiceDescriptor.java   |  162 ++
 .../apache/iotdb/db/cq/ContinuousQueryService.java |    4 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |   32 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   12 +-
 .../engine/compaction/CompactionTaskManager.java   |    8 +-
 .../AbstractCrossSpaceCompactionSelector.java      |    1 +
 .../cross/inplace/InplaceCompactionTask.java       |    7 -
 .../cross/inplace/manage/MergeManager.java         |    4 +-
 .../cross/inplace/task/MergeFileTask.java          |    8 -
 .../AbstractInnerSpaceCompactionSelector.java      |    1 +
 .../SizeTieredCompactionRecoverTask.java           |    1 +
 .../inner/utils/InnerSpaceCompactionUtils.java     |    4 -
 .../compaction/task/AbstractCompactionTask.java    |    1 +
 .../apache/iotdb/db/engine/flush/FlushManager.java |    3 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |    8 +-
 .../engine/memtable/AlignedWritableMemChunk.java   |   20 +-
 .../db/engine/modification/ModificationFile.java   |   10 +-
 .../io/LocalTextModificationAccessor.java          |   29 +-
 .../engine/modification/io/ModificationReader.java |    3 +-
 .../engine/modification/io/ModificationWriter.java |    4 +-
 .../modification/utils/TracedBufferedReader.java   |  427 +++++
 .../engine/storagegroup/StorageGroupProcessor.java |   36 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |   28 +-
 .../virtualSg/VirtualStorageGroupManager.java      |    8 +-
 .../trigger/sink/local/LocalIoTDBHandler.java      |    2 +-
 ...tException.java => ConfigurationException.java} |   24 +-
 .../exception/StorageGroupNotReadyException.java   |   16 +-
 .../exception/query/PathNumOverLimitException.java |    6 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |  102 +-
 .../iotdb/db/metadata/logfile/MLogTxtWriter.java   |   65 +-
 .../iotdb/db/metadata/logfile/MLogWriter.java      |   10 +
 .../db/metadata/logfile/MetadataOperationType.java |    2 +
 .../iotdb/db/metadata/mnode/IEntityMNode.java      |    1 +
 .../iotdb/db/metadata/mnode/InternalMNode.java     |    1 +
 .../iotdb/db/metadata/mnode/MeasurementMNode.java  |    3 +-
 .../org/apache/iotdb/db/metadata/mtree/MTree.java  |   80 +-
 .../apache/iotdb/db/metadata/path/AlignedPath.java |   76 +-
 .../iotdb/db/metadata/path/MeasurementPath.java    |   66 +-
 .../apache/iotdb/db/metadata/path/PartialPath.java |   29 +-
 .../iotdb/db/metadata/template/Template.java       |  531 +++++-
 .../db/metadata/template/TemplateManager.java      |   63 +-
 .../db/metadata/template/TemplateQueryType.java    |   18 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   30 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |    2 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |   26 +-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |    4 +-
 .../db/qp/logical/crud/BasicFunctionOperator.java  |    4 +-
 .../iotdb/db/qp/logical/crud/FilterOperator.java   |    5 +-
 .../iotdb/db/qp/logical/crud/FunctionOperator.java |    3 +-
 .../qp/logical/crud/GroupByFillQueryOperator.java  |   13 -
 .../iotdb/db/qp/logical/crud/InOperator.java       |    6 +-
 .../iotdb/db/qp/logical/crud/LikeOperator.java     |    3 +-
 .../iotdb/db/qp/logical/crud/QueryOperator.java    |   77 +-
 .../iotdb/db/qp/logical/crud/RegexpOperator.java   |    3 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |   19 +-
 .../db/qp/physical/crud/AlignByDevicePlan.java     |   11 +
 .../db/qp/physical/crud/AppendTemplatePlan.java    |  218 +++
 .../db/qp/physical/crud/CreateTemplatePlan.java    |  433 +++--
 .../db/qp/physical/crud/InsertMultiTabletPlan.java |    6 +-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |   12 +-
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |   36 +-
 .../physical/crud/InsertRowsOfOneDevicePlan.java   |   19 +-
 .../iotdb/db/qp/physical/crud/InsertRowsPlan.java  |    5 +-
 .../db/qp/physical/crud/InsertTabletPlan.java      |   20 +-
 .../iotdb/db/qp/physical/crud/LastQueryPlan.java   |    1 -
 .../db/qp/physical/crud/PruneTemplatePlan.java     |  107 ++
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |   24 +-
 .../db/qp/physical/crud/RawDataQueryPlan.java      |   45 +-
 .../iotdb/db/qp/physical/crud/SelectIntoPlan.java  |    3 +-
 .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java |   29 +-
 .../qp/physical/sys/CreateMultiTimeSeriesPlan.java |    1 +
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |  101 +-
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |    6 -
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |   14 +-
 .../iotdb/db/qp/utils/EmptyOutputStream.java       |    1 +
 .../apache/iotdb/db/qp/utils/WildcardsRemover.java |   24 +-
 .../iotdb/db/query/context/QueryContext.java       |   19 +-
 .../iotdb/db/query/control/QueryFileManager.java   |   38 +-
 .../db/query/control/QueryResourceManager.java     |    9 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   69 +-
 .../dataset/RawQueryDataSetWithValueFilter.java    |   17 +-
 .../iotdb/db/query/dataset/SingleDataSet.java      |    4 +
 .../dataset/groupby/GroupByEngineDataSet.java      |  159 +-
 .../query/dataset/groupby/GroupByFillDataSet.java  |  220 ---
 .../GroupByFillWithoutValueFilterDataSet.java      |  577 +++++++
 .../query/dataset/groupby/GroupByLevelDataSet.java |    4 +
 .../groupby/GroupByWithValueFilterDataSet.java     |    2 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |    4 +-
 .../db/query/executor/AggregationExecutor.java     |   13 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   36 +-
 .../iotdb/db/query/executor/QueryRouter.java       |   65 +-
 .../db/query/executor/RawDataQueryExecutor.java    |    6 +-
 .../fill/AlignedLastPointReader.java}              |   55 +-
 .../apache/iotdb/db/query/executor/fill/IFill.java |   83 +-
 .../db/query/executor/fill/LastPointReader.java    |   54 +-
 .../iotdb/db/query/executor/fill/LinearFill.java   |   81 +-
 .../iotdb/db/query/executor/fill/PreviousFill.java |   40 +-
 .../iotdb/db/query/executor/fill/ValueFill.java    |    4 +-
 .../iotdb/db/query/expression/ResultColumn.java    |   13 +-
 .../query/expression/unary/TimeSeriesOperand.java  |    2 +-
 .../query/reader/chunk/DiskAlignedChunkLoader.java |   67 +
 .../db/query/reader/chunk/DiskChunkLoader.java     |   12 +
 .../db/query/reader/chunk/MemChunkLoader.java      |    8 +-
 ...er.java => DiskAlignedChunkMetadataLoader.java} |   89 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |   65 +-
 ...der.java => MemAlignedChunkMetadataLoader.java} |   34 +-
 .../chunk/metadata/MemChunkMetadataLoader.java     |   29 +-
 .../query/reader/series/AlignedSeriesReader.java   |    4 +-
 .../reader/series/SeriesReaderByTimestamp.java     |    4 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   27 +-
 .../iotdb/db/rescon/AbstractPoolManager.java       |   11 +
 .../java/org/apache/iotdb/db/rest/RestService.java |  156 ++
 .../iotdb/db/rest/filter/ApiOriginFilter.java      |   45 +
 .../iotdb/db/rest/filter/AuthorizationFilter.java  |  125 ++
 .../iotdb/db/rest/filter/BasicSecurityContext.java |   56 +
 .../java/org/apache/iotdb/db/rest/filter/User.java |   38 +
 .../org/apache/iotdb/db/rest/filter/UserCache.java |   56 +
 .../db/rest/handler/AuthorizationHandler.java      |   52 +
 .../iotdb/db/rest/handler/ExceptionHandler.java    |   69 +
 .../handler/PhysicalPlanConstructionHandler.java   |  156 ++
 .../iotdb/db/rest/handler/QueryDataSetHandler.java |   95 ++
 .../db/rest/handler/RequestValidationHandler.java  |   39 +
 .../iotdb/db/rest/impl/PingApiServiceImpl.java     |   37 +
 .../iotdb/db/rest/impl/RestApiServiceImpl.java     |  144 ++
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   17 +-
 .../apache/iotdb/db/service/MetricsService.java    |    4 +-
 .../org/apache/iotdb/db/service/RPCService.java    |   14 +-
 .../iotdb/db/service/RPCServiceThriftHandler.java  |    2 +-
 .../org/apache/iotdb/db/service/ServiceType.java   |   11 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  167 +-
 .../org/apache/iotdb/db/service/UpgradeSevice.java |    9 +-
 .../iotdb/db/service/thrift/ThriftService.java     |   22 +-
 .../db/service/thrift/ThriftServiceThread.java     |  213 ++-
 .../iotdb/db/sync/receiver/SyncServerManager.java  |    6 +
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |   11 +-
 .../org/apache/iotdb/db/tools/mlog/MLogParser.java |    8 +
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |   64 +-
 .../apache/iotdb/db/utils/QueryDataSetUtils.java   |    3 +-
 .../java/org/apache/iotdb/db/utils/QueryUtils.java |   69 +
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |   14 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |   77 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |    5 +-
 .../db/writelog/node/ExclusiveWriteLogNode.java    |    1 +
 .../iotdb/db/writelog/recover/LogReplayer.java     |    8 +-
 .../iotdb/db/engine/cache/ChunkCacheTest.java      |    9 +-
 .../engine/compaction/cross/MergeOverLapTest.java  |   10 +-
 .../db/engine/compaction/cross/MergeTaskTest.java  |   38 +-
 .../db/engine/compaction/cross/MergeTest.java      |    3 +-
 .../engine/compaction/cross/MergeUpgradeTest.java  |    3 +-
 .../compaction/inner/InnerCompactionCacheTest.java |  148 --
 .../inner/InnerCompactionMoreDataTest.java         |   12 +-
 .../compaction/inner/InnerCompactionTest.java      |    9 +-
 .../SizeTieredCompactionRecoverTest.java           |   46 +-
 .../db/engine/memtable/MemTableTestUtils.java      |    2 +-
 .../db/engine/memtable/PrimitiveMemTableTest.java  |    6 +-
 .../engine/modification/DeletionFileNodeTest.java  |   15 +-
 .../db/engine/modification/DeletionQueryTest.java  |   99 +-
 .../io/LocalTextModificationAccessorTest.java      |   49 +
 .../storagegroup/StorageGroupProcessorTest.java    |    1 -
 .../iotdb/db/engine/storagegroup/TTLTest.java      |   16 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |   18 -
 .../apache/iotdb/db/integration/IoTDBAliasIT.java  |   49 +-
 .../iotdb/db/integration/IoTDBCheckConfigIT.java   |   41 +-
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |   40 +-
 .../iotdb/db/integration/IoTDBGroupByFillIT.java   | 1785 +++++++++++++++++---
 .../db/integration/IoTDBGroupByFillMixPathsIT.java |  294 ++++
 .../db/integration/IoTDBGroupByMonthFillIT.java    |  274 +++
 ...IoTDBLoadExternalTsFileWithTimePartitionIT.java |    2 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |    2 +-
 .../db/integration/IoTDBPathNumOverLimitIT.java    |   72 +
 .../db/integration/IoTDBSequenceDataQueryIT.java   |   89 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   81 +-
 .../db/integration/auth/IoTDBAuthorizationIT.java  |   27 +
 .../iotdb/db/metadata/MManagerBasicTest.java       |  165 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |    2 +-
 .../apache/iotdb/db/metadata/MetaUtilsTest.java    |    8 +-
 .../org/apache/iotdb/db/metadata/TemplateTest.java |  255 +++
 .../iotdb/db/metadata/mlog/MLogUpgraderTest.java   |   72 +
 .../iotdb/db/qp/physical/InsertRowPlanTest.java    |  124 +-
 .../iotdb/db/qp/physical/InsertTabletPlanTest.java |  139 +-
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   95 +-
 .../dataset/groupby/GroupByFillDataSetTest.java    |  170 +-
 .../reader/series/SeriesAggregateReaderTest.java   |    9 +-
 .../reader/series/SeriesReaderByTimestampTest.java |    7 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |    5 +-
 .../iotdb/db/rescon/ResourceManagerTest.java       |    3 +-
 .../apache/iotdb/db/rest/IoTDBRestServiceIT.java   |  280 +++
 .../org/apache/iotdb/db/tools/MLogParserTest.java  |   14 +-
 .../iotdb/db/tools/TsFileAndModSettleToolTest.java |    2 +-
 .../iotdb/db/tools/TsFileSketchToolTest.java       |   17 +-
 .../apache/iotdb/db/utils/SchemaTestUtils.java}    |   37 +-
 .../apache/iotdb/db/utils/SerializeUtilsTest.java  |  743 ++++++++
 .../iotdb/db/utils/TsFileRewriteToolTest.java      |    7 +-
 .../db/writelog/recover/DeviceStringTest.java      |    6 +-
 .../recover/RecoverResourceFromReaderTest.java     |    8 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |   12 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |    8 +-
 .../src/test/resources/iotdb-rest.properties       |   52 +-
 .../org/apache/iotdb/rpc/RpcTransportFactory.java  |   36 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    5 +-
 .../java/org/apache/iotdb/session/Session.java     |  225 ++-
 .../apache/iotdb/session/SessionConnection.java    |   72 +-
 .../org/apache/iotdb/session/pool/SessionPool.java |  296 ++++
 .../iotdb/session/template/InternalNode.java       |   56 +
 .../iotdb/session/template/MeasurementNode.java    |   67 +
 .../apache/iotdb/session/template/Template.java    |  126 ++
 .../iotdb/session/template/TemplateNode.java       |   39 +-
 .../iotdb/session/template/TemplateQueryType.java  |   18 +-
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |   33 +-
 .../session/IoTDBSessionVectorABDeviceIT.java      |   73 +-
 .../session/IoTDBSessionVectorAggregationIT.java   |    4 +-
 .../iotdb/session/IoTDBSessionVectorInsertIT.java  |    7 +-
 .../java/org/apache/iotdb/session/SessionTest.java |  156 +-
 .../apache/iotdb/session/template/TemplateUT.java  |   93 +
 site/pom.xml                                       |   12 +-
 site/src/main/.vuepress/config.js                  |    1 +
 .../iotdb/spark/tsfile/NarrowConverter.scala       |    2 +-
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |    2 +-
 .../org/apache/iotdb/spark/tool/TsFileExample.java |   29 +-
 .../apache/iotdb/spark/tool/TsFileWriteTool.java   |   87 +-
 thrift-cluster/src/main/thrift/cluster.thrift      |    9 +-
 thrift/rpc-changelist.md                           |   14 +-
 thrift/src/main/thrift/rpc.thrift                  |   40 +-
 .../iotdb/tsfile/file/header/PageHeader.java       |   12 +
 .../tsfile/file/metadata/AlignedChunkMetadata.java |   71 +-
 .../file/metadata/AlignedTimeSeriesMetadata.java   |   62 +-
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |   15 +-
 .../tsfile/file/metadata/ITimeSeriesMetadata.java  |    1 +
 .../tsfile/file/metadata/TimeseriesMetadata.java   |    2 +-
 .../fileOutputFactory/LocalFSOutputFactory.java    |    7 +-
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |    7 +-
 .../apache/iotdb/tsfile/read/common/BatchData.java |  109 +-
 .../tsfile/read/common/DescReadWriteBatchData.java |   89 +
 .../org/apache/iotdb/tsfile/read/common/Path.java  |    5 +
 .../apache/iotdb/tsfile/read/common/RowRecord.java |    6 +-
 .../read/controller/CachedChunkLoaderImpl.java     |   18 +
 .../iotdb/tsfile/read/controller/IChunkLoader.java |    5 +
 .../read/controller/IChunkMetadataLoader.java      |    4 +-
 .../tsfile/read/query/dataset/QueryDataSet.java    |   12 +
 .../iotdb/tsfile/read/reader/LocalTsFileInput.java |    5 +
 .../iotdb/tsfile/read/reader/TsFileInput.java      |    2 +
 .../read/reader/chunk/AlignedChunkReader.java      |    9 +-
 .../tsfile/read/reader/page/AlignedPageReader.java |   17 +-
 .../iotdb/tsfile/read/reader/page/PageReader.java  |    1 -
 .../tsfile/read/reader/page/TimePageReader.java    |   17 +
 .../tsfile/read/reader/page/ValuePageReader.java   |    3 +
 .../apache/iotdb/tsfile/utils/FilePathUtils.java   |   37 +-
 .../iotdb/tsfile/utils/MeasurementGroup.java       |   65 +
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |  335 +++-
 .../write/chunk/AlignedChunkGroupWriterImpl.java   |  299 ++++
 .../tsfile/write/chunk/AlignedChunkWriterImpl.java |   14 +-
 .../tsfile/write/chunk/ChunkGroupWriterImpl.java   |  236 ---
 .../tsfile/write/chunk/IChunkGroupWriter.java      |   17 +-
 .../chunk/NonAlignedChunkGroupWriterImpl.java      |  184 ++
 .../iotdb/tsfile/write/chunk/TimeChunkWriter.java  |    4 +
 .../iotdb/tsfile/write/chunk/ValueChunkWriter.java |   67 +-
 .../iotdb/tsfile/write/page/ValuePageWriter.java   |    4 +
 .../apache/iotdb/tsfile/write/record/Tablet.java   |   51 +-
 .../tsfile/write/record/datapoint/DataPoint.java   |    5 -
 .../tsfile/write/schema/IMeasurementSchema.java    |    7 +-
 .../apache/iotdb/tsfile/write/schema/Schema.java   |   69 +-
 .../write/schema/UnaryMeasurementSchema.java       |   14 +-
 .../write/schema/VectorMeasurementSchema.java      |  123 +-
 .../iotdb/tsfile/read/ReadOnlyTsFileTest.java      |    2 +-
 .../TsFileGeneratorForSeriesReaderByTimestamp.java |   23 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |   45 +-
 .../org/apache/iotdb/tsfile/utils/RecordUtils.java |   17 +-
 .../apache/iotdb/tsfile/utils/RecordUtilsTest.java |   13 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |   25 +-
 .../tsfile/write/DefaultSchemaTemplateTest.java    |    4 +-
 .../tsfile/write/MetadataIndexConstructorTest.java |   59 +-
 .../org/apache/iotdb/tsfile/write/PerfTest.java    |   16 +-
 .../iotdb/tsfile/write/ReadPageInMemTest.java      |   16 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   12 +-
 .../iotdb/tsfile/write/TsFileReadWriteTest.java    |    7 +-
 .../iotdb/tsfile/write/TsFileWriteApiTest.java     |  257 +++
 .../iotdb/tsfile/write/TsFileWriterTest.java       |   97 +-
 .../org/apache/iotdb/tsfile/write/WriteTest.java   |   10 +-
 .../write/schema/converter/SchemaBuilderTest.java  |   45 +-
 .../write/writer/AlignedChunkWriterImplTest.java   |   38 +-
 .../write/writer/ForceAppendTsFileWriterTest.java  |    8 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |   48 +-
 .../write/writer/VectorMeasurementSchemaStub.java  |   13 +-
 606 files changed, 27361 insertions(+), 11863 deletions(-)

diff --cc server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index 545eb9e,98c8abf..79afced
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@@ -134,22 -135,21 +134,22 @@@ public abstract class AbstractMemTable 
      updatePlanIndexes(insertRowPlan.getIndex());
      Object[] values = insertRowPlan.getValues();
  
 -    IMeasurementMNode[] measurementMNodes = insertRowPlan.getMeasurementMNodes();
 -    for (int i = 0; i < measurementMNodes.length; i++) {
 -      if (values[i] == null) {
 +    List<IMeasurementSchema> schemaList = new ArrayList<>();
 +    for (int i = 0; i < insertRowPlan.getMeasurements().length; i++) {
 +      if (insertRowPlan.getMeasurements()[i] == null) {
          continue;
        }
 -      memSize +=
 -          MemUtils.getRecordSize(
 -              measurementMNodes[i].getSchema().getType(), values[i], disableMemControl);
 -
 -      write(
 -          insertRowPlan.getDeviceId().getFullPath(),
 -          measurementMNodes[i].getSchema(),
 -          insertRowPlan.getTime(),
 -          values[i]);
 +      IMeasurementSchema schema = insertRowPlan.getMeasurementMNodes()[i].getSchema();
 +      schemaList.add(schema);
      }
 +    memSize +=
 +        MemUtils.getRecordSize(
 +            schemaList, values, disableMemControl);
 +    write(
-         insertRowPlan.getPrefixPath().getFullPath(),
++        insertRowPlan.getDeviceId().getFullPath(),
 +        schemaList,
 +        insertRowPlan.getTime(),
 +        values);
      totalPointsNum +=
          insertRowPlan.getMeasurements().length - insertRowPlan.getFailedMeasurementNumber();
    }
@@@ -164,12 -167,22 +164,12 @@@
          continue;
        }
        IMeasurementSchema schema = insertRowPlan.getMeasurementMNodes()[i].getSchema();
 -      measurements.add(schema.getMeasurementId());
 -      types.add(schema.getType());
 -      encodings.add(schema.getEncodingType());
 -      compressionType = schema.getCompressor();
 +      schemaList.add(schema);
      }
 -    VectorMeasurementSchema vectorSchema =
 -        new VectorMeasurementSchema(
 -            AlignedPath.VECTOR_PLACEHOLDER,
 -            measurements.toArray(new String[measurements.size()]),
 -            types.toArray(new TSDataType[measurements.size()]),
 -            encodings.toArray(new TSEncoding[measurements.size()]),
 -            compressionType);
 -    memSize += MemUtils.getAlignedRecordSize(types, insertRowPlan.getValues(), disableMemControl);
 +    memSize += MemUtils.getAlignedRecordSize(schemaList, insertRowPlan.getValues(), disableMemControl);
      writeAlignedRow(
-         insertRowPlan.getPrefixPath().getFullPath(),
+         insertRowPlan.getDeviceId().getFullPath(),
 -        vectorSchema,
 +        schemaList,
          insertRowPlan.getTime(),
          insertRowPlan.getValues());
      totalPointsNum +=
@@@ -229,19 -241,18 +229,19 @@@
        if (insertTabletPlan.getColumns()[i] == null) {
          continue;
        }
 -      IWritableMemChunk memSeries =
 -          createMemChunkIfNotExistAndGet(
 -              insertTabletPlan.getDeviceId().getFullPath(),
 -              insertTabletPlan.getMeasurementMNodes()[i].getSchema());
 -      memSeries.write(
 -          insertTabletPlan.getTimes(),
 -          insertTabletPlan.getColumns()[i],
 -          insertTabletPlan.getBitMaps() != null ? insertTabletPlan.getBitMaps()[i] : null,
 -          insertTabletPlan.getDataTypes()[i],
 -          start,
 -          end);
 +      IMeasurementSchema schema = insertTabletPlan.getMeasurementMNodes()[i].getSchema();
 +      schemaList.add(schema);
      }
 +    IWritableMemChunkGroup memChunkGroup =
 +        createAlignedMemChunkGroupIfNotExistAndGet(
-             insertTabletPlan.getPrefixPath().getFullPath(), schemaList);
++            insertTabletPlan.getDeviceId().getFullPath(), schemaList);
 +    memChunkGroup.writeValues(
 +        insertTabletPlan.getTimes(),
 +        insertTabletPlan.getColumns(),
 +        insertTabletPlan.getBitMaps(),
 +        schemaList,
 +        start,
 +        end);
    }
  
    public void writeAlignedTablet(InsertTabletPlan insertTabletPlan, int start, int end) {
@@@ -252,12 -266,22 +252,12 @@@
          continue;
        }
        IMeasurementSchema schema = insertTabletPlan.getMeasurementMNodes()[i].getSchema();
 -      measurements.add(schema.getMeasurementId());
 -      types.add(schema.getType());
 -      encodings.add(schema.getEncodingType());
 -      compressionType = schema.getCompressor();
 +      schemaList.add(schema);
      }
 -    VectorMeasurementSchema vectorSchema =
 -        new VectorMeasurementSchema(
 -            AlignedPath.VECTOR_PLACEHOLDER,
 -            measurements.toArray(new String[measurements.size()]),
 -            types.toArray(new TSDataType[measurements.size()]),
 -            encodings.toArray(new TSEncoding[measurements.size()]),
 -            compressionType);
 -    IWritableMemChunk memSeries =
 -        createAlignedMemChunkIfNotExistAndGet(
 -            insertTabletPlan.getDeviceId().getFullPath(), vectorSchema);
 -    memSeries.writeAlignedValues(
 +    IWritableMemChunkGroup memChunkGroup =
 +        createAlignedMemChunkGroupIfNotExistAndGet(
-             insertTabletPlan.getPrefixPath().getFullPath(), schemaList);
++            insertTabletPlan.getDeviceId().getFullPath(), schemaList);
 +    memChunkGroup.writeValues(
          insertTabletPlan.getTimes(),
          insertTabletPlan.getColumns(),
          insertTabletPlan.getBitMaps(),
diff --cc server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
index b625c08,ff51b18..50295cd
--- a/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/path/AlignedPath.java
@@@ -21,7 -21,8 +21,9 @@@ package org.apache.iotdb.db.metadata.pa
  
  import org.apache.iotdb.db.engine.memtable.AlignedWritableMemChunk;
  import org.apache.iotdb.db.engine.memtable.IWritableMemChunk;
 +import org.apache.iotdb.db.engine.memtable.IWritableMemChunkGroup;
+ import org.apache.iotdb.db.engine.modification.Modification;
+ import org.apache.iotdb.db.engine.modification.ModificationFile;
  import org.apache.iotdb.db.engine.querycontext.AlignedReadOnlyMemChunk;
  import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
  import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk;
@@@ -330,9 -334,9 +335,9 @@@ public class AlignedPath extends Partia
  
    @Override
    public ReadOnlyMemChunk getReadOnlyMemChunkFromMemTable(
 -      Map<String, Map<String, IWritableMemChunk>> memTableMap, List<TimeRange> deletionList)
 +      Map<String, IWritableMemChunkGroup> memTableMap, List<TimeRange> deletionList)
        throws QueryProcessException, IOException {
-     // check If Memtable Contains this path
+     // check If memtable contains this path
      if (!memTableMap.containsKey(getDevice())) {
        return null;
      }