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

[iotdb] 01/09: Merge branch 'master' into expr

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

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

commit 918a7056697d2b859d5ac8c1536f70f5e04a9f46
Merge: f505f20 461d22b
Author: jt <jt...@163.com>
AuthorDate: Mon Nov 1 14:28:29 2021 +0800

    Merge branch 'master' into expr
    
    # Conflicts:
    #	server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
    #	server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
    #	server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java

 .asf.yaml                                          |    2 +-
 .github/dependabot.yml                             |   71 +
 .gitignore                                         |    5 +
 .mvn/wrapper/MavenWrapperDownloader.java           |    2 +-
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.g4    |  950 ++++++
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |  836 +++++
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlBase.g4   | 1602 ---------
 cli/pom.xml                                        |    2 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |   67 +
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |   88 +-
 client-cpp/pom.xml                                 |    2 +-
 .../cluster/client/sync/SyncClientAdaptor.java     |   10 +
 .../iotdb/cluster/log/StableEntryManager.java      |    6 +
 .../cluster/log/manage/CommittedEntryManager.java  |   12 +
 .../manage/FilePartitionedSnapshotLogManager.java  |   12 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |    6 +-
 .../serializable/SyncLogDequeSerializer.java       |   25 +
 .../iotdb/cluster/log/snapshot/FileSnapshot.java   |   13 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   85 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |  138 +
 .../iotdb/cluster/query/ClusterPlanRouter.java     |   57 +-
 .../iotdb/cluster/query/LocalQueryExecutor.java    |   53 +-
 .../cluster/query/filter/SlotTsFileFilter.java     |    5 +-
 .../cluster/query/reader/ClusterReaderFactory.java |   24 +-
 .../iotdb/cluster/server/DataClusterServer.java    |   15 +
 .../cluster/server/member/DataGroupMember.java     |    2 +-
 .../cluster/server/service/DataAsyncService.java   |   12 +
 .../cluster/server/service/DataSyncService.java    |    9 +
 .../iotdb/cluster/utils/ClusterQueryUtils.java     |   43 +
 .../cluster/client/sync/SyncClientAdaptorTest.java |   14 +-
 .../org/apache/iotdb/cluster/common/TestUtils.java |    2 +-
 .../iotdb/cluster/integration/SingleNodeTest.java  |    2 +-
 .../cluster/log/snapshot/PullSnapshotTaskTest.java |   13 +-
 .../cluster/partition/SlotPartitionTableTest.java  |   37 -
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |    9 +-
 .../cluster/server/member/DataGroupMemberTest.java |   11 +-
 compile-tools/thrift/pom.xml                       |    2 +-
 docker/ReadMe.md                                   |   44 +
 .../main/DockerCompose/docker-compose-grafana.yml  |   50 +
 docker/src/main/Dockerfile-0.12.2-grafana          |   41 +
 docs/SystemDesign/StorageEngine/MergeManager.md    |    6 +-
 docs/UserGuide/API/Programming-Java-Native-API.md  |   10 +
 .../Administration-Management/Administration.md    |    8 +-
 docs/UserGuide/Advanced-Features/Triggers.md       |   12 +-
 .../Advanced-Features/UDF-User-Defined-Function.md |    6 +-
 docs/UserGuide/Appendix/SQL-Reference.md           |   24 +-
 .../Data-Concept/Data-Model-and-Terminology.md     |   70 +-
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   18 +-
 .../DML-Data-Manipulation-Language.md              |   12 +-
 .../IoTDB-SQL-Language/Syntax-Conventions.md       |  115 +
 .../UserGuide/System-Tools/Load-External-Tsfile.md |   38 +-
 .../System-Tools/Monitor-and-Log-Tools.md          |    2 +-
 .../System-Tools/Performance-Tracing-Tool.md       |   56 +-
 docs/UserGuide/System-Tools/Watermark-Tool.md      |    2 +-
 docs/zh/SystemDesign/StorageEngine/MergeManager.md |    6 +-
 docs/zh/UserGuide/API/InfluxDB-Protocol.md         |  216 +-
 .../UserGuide/API/Programming-Java-Native-API.md   |   16 +-
 .../Administration-Management/Administration.md    |    8 +-
 docs/zh/UserGuide/Advanced-Features/Triggers.md    |   12 +-
 .../Advanced-Features/UDF-User-Defined-Function.md |    6 +-
 docs/zh/UserGuide/Appendix/Config-Manual.md        |   18 -
 docs/zh/UserGuide/Appendix/SQL-Reference.md        |   24 +-
 docs/zh/UserGuide/Cluster/Cluster-Setup.md         |    8 +-
 .../Data-Concept/Data-Model-and-Terminology.md     |   69 +-
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   18 +-
 .../DML-Data-Manipulation-Language.md              |   12 +-
 .../IoTDB-SQL-Language/Syntax-Conventions.md       |  116 +
 .../UserGuide/System-Tools/Load-External-Tsfile.md |   38 +-
 .../System-Tools/Monitor-and-Log-Tools.md          |   10 +-
 .../System-Tools/Performance-Tracing-Tool.md       |   58 +-
 docs/zh/UserGuide/System-Tools/Watermark-Tool.md   |    2 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    |    6 +-
 .../org/apache/iotdb/PrepareStatementDemo.java     |    2 +-
 example/trigger/pom.xml                            |    2 +-
 example/udf/pom.xml                                |    2 +-
 .../flink/tsfile/RowTsFileInputFormatTest.java     |   14 +-
 hive-connector/pom.xml                             |    4 +-
 influxdb-protocol/pom.xml                          |   29 +
 .../influxdb/protocol/input/InfluxLineProtocol.g4  |   93 +
 .../org/apache/iotdb/influxdb/IoTDBInfluxDB.java   |  172 +-
 .../iotdb/influxdb/IoTDBInfluxDBFactory.java       |   17 +-
 .../iotdb/influxdb/example/InfluxDBExample.java    |    2 +-
 .../protocol/constant/InfluxDBConstant.java        |   14 +-
 .../iotdb/influxdb/protocol/dto/IoTDBPoint.java    |   55 +-
 .../iotdb/influxdb/protocol/dto/SessionPoint.java  |   47 +-
 .../protocol/impl/IoTDBInfluxDBService.java        |  148 +
 .../influxdb/protocol/input/InfluxLineParser.java  |  165 +
 .../iotdb/influxdb/protocol/meta/MetaManager.java  |  181 ++
 .../influxdb/protocol/meta/MetaManagerHolder.java  |   54 +
 .../influxdb/protocol/meta/TagInfoRecords.java     |   85 +
 .../influxdb/protocol/util/DataTypeUtils.java      |   86 +
 .../util/ParameterUtils.java}                      |    4 +-
 .../influxdb/integration/IoTDBInfluxDBIT.java      |  136 +-
 .../protocol/input/InfluxLineParserTest.java       |   55 +
 .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java     |   22 +
 .../main/java/org/apache/iotdb/jdbc/Constant.java  |   12 +
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |    6 +-
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |   25 +
 .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java  |   11 +
 .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java     |    6 +
 .../java/org/apache/iotdb/jdbc/IoTDBStatement.java |    4 +
 .../org/apache/iotdb/jdbc/IoTDBTracingInfo.java    |  103 +
 jenkins.pom                                        |    2 +-
 pom.xml                                            |   76 +-
 server/pom.xml                                     |    3 +-
 .../resources/conf/iotdb-engine.properties         |   91 +-
 server/src/assembly/resources/conf/logback.xml     |   20 +
 .../resources/tools/tsfileToolSet/settle.bat       |   62 +
 .../resources/tools/tsfileToolSet/settle.sh        |   43 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  277 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |    6 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   96 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |    2 +-
 .../db/cq/ContinuousQueryTaskPoolManager.java      |    2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |   35 +-
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |    4 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   15 +-
 .../compaction/CompactionMergeTaskPoolManager.java |  195 --
 .../CompactionPriority.java}                       |   11 +-
 .../db/engine/compaction/CompactionScheduler.java  |  299 ++
 .../compaction/CompactionTaskComparator.java       |  109 +
 .../engine/compaction/CompactionTaskManager.java   |  265 ++
 .../db/engine/compaction/TsFileManagement.java     |  460 ---
 .../AbstractCrossSpaceCompactionRecoverTask.java}  |   20 +-
 .../AbstractCrossSpaceCompactionSelector.java      |   51 +
 .../cross/AbstractCrossSpaceCompactionTask.java    |   96 +
 .../compaction/cross/CrossCompactionStrategy.java  |  117 +
 .../cross/CrossSpaceCompactionTaskFactory.java     |   58 +
 .../inplace/InplaceCompactionRecoverTask.java      |  109 +
 .../cross/inplace/InplaceCompactionSelector.java   |  152 +
 .../cross/inplace/InplaceCompactionTask.java       |  251 ++
 .../inplace/manage/CrossSpaceMergeContext.java}    |    6 +-
 .../inplace/manage/CrossSpaceMergeResource.java}   |   17 +-
 .../cross/inplace}/manage/MergeFuture.java         |   10 +-
 .../cross/inplace}/manage/MergeManager.java        |   66 +-
 .../cross/inplace}/manage/MergeManagerMBean.java   |    2 +-
 .../cross/inplace}/manage/MergeThreadPool.java     |   14 +-
 .../cross/inplace}/recover/LogAnalyzer.java        |   34 +-
 .../cross/inplace}/recover/MergeLogger.java        |   15 +-
 .../selector/ICrossSpaceMergeFileSelector.java}    |    4 +-
 .../selector/IFileQueryMemMeasurement.java         |    2 +-
 .../inplace}/selector/IMergePathSelector.java      |    2 +-
 .../selector/MaxFileMergeFileSelector.java         |   25 +-
 .../selector/MaxSeriesMergeFileSelector.java       |    6 +-
 .../cross/inplace}/selector/MergeFileStrategy.java |    2 +-
 .../cross/inplace}/selector/NaivePathSelector.java |    2 +-
 .../cross/inplace/task/CrossSpaceMergeTask.java}   |   40 +-
 .../cross/inplace}/task/MergeCallback.java         |    2 +-
 .../cross/inplace}/task/MergeFileTask.java         |   24 +-
 .../cross/inplace}/task/MergeMultiChunkTask.java   |   43 +-
 .../cross/inplace/task/RecoverCrossMergeTask.java} |   24 +-
 .../AbstractInnerSpaceCompactionSelector.java      |   52 +
 .../inner/AbstractInnerSpaceCompactionTask.java    |  131 +
 .../compaction/inner/InnerCompactionStrategy.java  |  108 +
 .../inner/InnerSpaceCompactionTaskFactory.java     |   51 +
 .../SizeTieredCompactionRecoverTask.java           |  151 +
 .../sizetiered/SizeTieredCompactionSelector.java   |  200 ++
 .../inner/sizetiered/SizeTieredCompactionTask.java |  239 ++
 .../utils/InnerSpaceCompactionUtils.java}          |  189 +-
 .../utils/SizeTieredCompactionLogAnalyzer.java}    |   40 +-
 .../utils/SizeTieredCompactionLogger.java}         |   19 +-
 .../level/LevelCompactionTsFileManagement.java     |  899 -----
 .../no/NoCompactionTsFileManagement.java           |  298 --
 .../task/AbstractCompactionSelector.java}          |   22 +-
 .../compaction/task/AbstractCompactionTask.java    |   89 +
 .../compaction/task/CompactionRecoverTask.java     |  101 +
 .../engine/flush/pool/FlushSubTaskPoolManager.java |    1 +
 .../db/engine/flush/pool/FlushTaskPoolManager.java |    1 +
 .../iotdb/db/engine/memtable/AbstractMemTable.java |   16 +-
 .../db/engine/modification/ModificationFile.java   |   11 +
 .../apache/iotdb/db/engine/settle/SettleLog.java   |  116 +
 .../apache/iotdb/db/engine/settle/SettleTask.java  |  108 +
 .../engine/storagegroup/StorageGroupProcessor.java |  546 ++--
 .../db/engine/storagegroup/TsFileManager.java      |  312 ++
 .../engine/storagegroup/TsFileNameGenerator.java   |  248 ++
 .../db/engine/storagegroup/TsFileProcessor.java    |    3 +
 .../db/engine/storagegroup/TsFileResource.java     |  246 +-
 .../db/engine/storagegroup/TsFileResourceList.java |  443 +++
 .../storagegroup/timeindex/DeviceTimeIndex.java    |    2 +-
 .../storagegroup/timeindex/FileTimeIndex.java      |    2 +-
 .../virtualSg/VirtualStorageGroupManager.java      |   33 +-
 .../WriteLockFailedException.java}                 |    9 +-
 .../metadata/DifferentTemplateException.java}      |   23 +-
 .../metadata/NoTemplateOnMNodeException.java}      |   15 +-
 .../metadata/TemplateIsInUseException.java}        |   15 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |  110 +-
 .../org/apache/iotdb/db/metadata/PartialPath.java  |   18 +-
 .../iotdb/db/metadata/logfile/MLogUpgrader.java    |  290 ++
 .../iotdb/db/metadata/logfile/MLogWriter.java      |  205 +-
 .../iotdb/db/metadata/mnode/IEntityMNode.java      |   19 -
 .../org/apache/iotdb/db/metadata/mnode/IMNode.java |    4 +-
 .../iotdb/db/metadata/mnode/InternalMNode.java     |   13 -
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   10 +
 .../mnode/{IEntityMNode.java => MNodeUtils.java}   |   58 +-
 .../iotdb/db/metadata/mnode/MeasurementMNode.java  |    5 -
 .../org/apache/iotdb/db/metadata/mtree/MTree.java  |   96 +-
 .../iotdb/db/metadata/utils/MetaFormatUtils.java   |    2 +-
 .../apache/iotdb/db/metadata/utils/MetaUtils.java  |   36 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |    2 +-
 .../iotdb/db/qp/constant/FilterConstant.java       |   20 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |    4 +
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |   96 +-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |    3 +
 .../qp/logical/crud/AggregationQueryOperator.java  |   12 +-
 .../iotdb/db/qp/logical/crud/QueryOperator.java    |   37 +-
 .../db/qp/logical/crud/SpecialClauseComponent.java |   21 +-
 .../iotdb/db/qp/logical/sys/SettleOperator.java    |   71 +
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |    3 +-
 .../iotdb/db/qp/physical/crud/AggregationPlan.java |   81 +-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |    3 +
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |   17 +-
 .../qp/physical/crud/UnsetSchemaTemplatePlan.java  |   96 +
 .../physical/sys/SettlePlan.java}                  |   56 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    | 3435 ++++++++++----------
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |   31 +-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |   20 +-
 .../iotdb/db/qp/utils/GroupByLevelController.java  |  150 +
 .../apache/iotdb/db/qp/utils/WildcardsRemover.java |    3 +-
 .../db/query/aggregation/impl/SumAggrResult.java   |   70 +-
 .../iotdb/db/query/context/QueryContext.java       |    9 +
 .../iotdb/db/query/control/FileReaderManager.java  |    2 -
 .../db/query/control/QueryResourceManager.java     |   34 +-
 .../apache/iotdb/db/query/control/TracingInfo.java |   85 -
 .../iotdb/db/query/control/TracingManager.java     |  229 --
 .../control/tracing/TracingConstant.java}          |   21 +-
 .../db/query/control/tracing/TracingInfo.java      |  156 +
 .../db/query/control/tracing/TracingManager.java   |   82 +
 .../db/query/dataset/AlignByDeviceDataSet.java     |    4 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |    6 +
 ...ByTimeDataSet.java => GroupByLevelDataSet.java} |   59 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   26 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   25 +-
 .../db/query/executor/AggregationExecutor.java     |   33 +-
 .../iotdb/db/query/executor/QueryRouter.java       |   21 +-
 .../db/query/executor/RawDataQueryExecutor.java    |    1 +
 .../query/expression/unary/FunctionExpression.java |    7 +
 .../iotdb/db/query/pool/QueryTaskPoolManager.java  |    2 +-
 .../resource/CachedUnseqResourceMergeReader.java   |    1 +
 .../iotdb/db/query/reader/series/SeriesReader.java |   24 +-
 .../reader/universal/PriorityMergeReader.java      |   13 +-
 .../iotdb/db/query/udf/core/layer/SafetyLine.java  |    3 +
 .../row/ElasticSerializableRowRecordList.java      |   33 +-
 .../row/SerializableRowRecordList.java             |    8 +
 .../flush/pool => rescon}/AbstractPoolManager.java |    2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   11 +-
 .../org/apache/iotdb/db/service/ServiceType.java   |    1 +
 .../org/apache/iotdb/db/service/SettleService.java |  190 ++
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  106 +-
 .../receiver/recover/SyncReceiverLogAnalyzer.java  |    2 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   46 +-
 .../db/sync/sender/manage/SyncFileManager.java     |    4 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |   59 +-
 .../apache/iotdb/db/tools/TsFileRewriteTool.java   |  117 +-
 .../db/tools/settle/TsFileAndModSettleTool.java    |  360 ++
 .../db/tools/upgrade/TsFileOnlineUpgradeTool.java  |   73 +-
 .../org/apache/iotdb/db/utils/FilePathUtils.java   |  261 --
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |    8 +-
 .../runtime/WindowEvaluationTaskPoolManager.java   |    2 +-
 .../db/writelog/node/ExclusiveWriteLogNode.java    |    1 -
 .../db/conf/adapter/CompressionRatioTest.java      |    2 +-
 .../org/apache/iotdb/db/constant/TestConstant.java |   30 +
 .../MergeTest.java => cache/ChunkCacheTest.java}   |  196 +-
 .../engine/compaction/CompactionSchedulerTest.java | 2093 ++++++++++++
 .../compaction/CompactionTaskComparatorTest.java   |  313 ++
 .../compaction/LevelCompactionMergeTest.java       |  375 ---
 .../engine/compaction/LevelCompactionModsTest.java |  135 -
 .../compaction/LevelCompactionSelectorTest.java    |   76 -
 .../LevelCompactionTsFileManagementTest.java       |  228 --
 .../NoCompactionTsFileManagementTest.java          |  235 --
 .../compaction/cross/CrossSpaceCompactionTest.java |  720 ++++
 .../cross}/MaxFileMergeFileSelectorTest.java       |   45 +-
 .../cross}/MaxSeriesMergeFileSelectorTest.java     |   18 +-
 .../{merge => compaction/cross}/MergeLogTest.java  |   12 +-
 .../cross}/MergeManagerTest.java                   |   40 +-
 .../cross}/MergeOverLapTest.java                   |   62 +-
 .../{merge => compaction/cross}/MergePerfTest.java |   12 +-
 .../{merge => compaction/cross}/MergeTaskTest.java |   79 +-
 .../{merge => compaction/cross}/MergeTest.java     |   50 +-
 .../cross}/MergeUpgradeTest.java                   |    8 +-
 .../InnerCompactionCacheTest.java}                 |   71 +-
 .../InnerCompactionChunkTest.java}                 |   66 +-
 .../InnerCompactionLogTest.java}                   |   38 +-
 .../InnerCompactionMoreDataTest.java}              |  102 +-
 .../inner/InnerCompactionSchedulerTest.java        |  135 +
 .../InnerCompactionTest.java}                      |  121 +-
 .../compaction/inner/InnerSeqCompactionTest.java   |  934 ++++++
 .../inner/InnerSpaceCompactionUtilsTest.java       |  135 +
 .../compaction/inner/InnerUnseqCompactionTest.java |  780 +++++
 .../SizeTieredCompactionRecoverTest.java}          |  580 ++--
 .../sizetiered/SizeTieredCompactionTest.java}      |  100 +-
 .../task/FakedCrossSpaceCompactionTask.java        |   71 +
 .../task/FakedCrossSpaceCompactionTaskFactory.java |   56 +
 .../task/FakedInnerSpaceCompactionTask.java        |   90 +
 .../task/FakedInnerSpaceCompactionTaskFactory.java |   51 +
 .../compaction/utils/CompactionCheckerUtils.java   |  472 +++
 .../compaction/utils/CompactionClearUtils.java     |   59 +
 .../utils/CompactionFileGeneratorUtils.java        |  246 ++
 .../compaction/utils/CompactionOverlapType.java}   |   12 +-
 .../utils/CompactionTimeseriesType.java}           |   11 +-
 .../engine/modification/DeletionFileNodeTest.java  |   10 -
 .../db/engine/modification/DeletionQueryTest.java  |   12 -
 .../engine/storagegroup/FakedTsFileResource.java   |   76 +
 .../storagegroup/StorageGroupProcessorTest.java    |   48 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |    9 -
 .../db/engine/storagegroup/TsFileManagerTest.java  |  240 ++
 .../engine/storagegroup/TsFileProcessorTest.java   |   15 +-
 .../storagegroup/TsFileResourceListTest.java       |  185 ++
 .../iotdb/db/integration/IOTDBGroupByIT.java       |  156 +-
 .../integration/IOTDBGroupByInnerIntervalIT.java   |    2 +-
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |    8 -
 .../iotdb/db/integration/IoTDBArithmeticIT.java    |    7 +-
 .../db/integration/IoTDBContinuousQueryIT.java     |   48 +-
 .../db/integration/IoTDBCreateStorageGroupIT.java  |    2 +-
 .../db/integration/IoTDBDeleteTimeseriesIT.java    |    7 -
 .../iotdb/db/integration/IoTDBDeletionIT.java      |   16 +-
 .../iotdb/db/integration/IoTDBFilePathUtilsIT.java |    8 +-
 .../apache/iotdb/db/integration/IoTDBFillIT.java   |    6 -
 .../iotdb/db/integration/IoTDBGroupByMonthIT.java  |   10 +-
 .../iotdb/db/integration/IoTDBGroupByUnseqIT.java  |    4 -
 .../org/apache/iotdb/db/integration/IoTDBInIT.java |   24 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |    7 -
 ...IoTDBLoadExternalTsFileWithTimePartitionIT.java |   34 +-
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |   62 +-
 .../integration/IoTDBManageTsFileResourceIT.java   |   15 +-
 .../apache/iotdb/db/integration/IoTDBMergeIT.java  |   89 +-
 .../iotdb/db/integration/IoTDBMultiDeviceIT.java   |    7 -
 .../IoTDBMultiOverlappedChunkInUnseqIT.java        |   11 +-
 .../db/integration/IoTDBMultiOverlappedPageIT.java |    7 -
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |    7 -
 .../db/integration/IoTDBMultiStatementsIT.java     |    7 -
 .../iotdb/db/integration/IoTDBNestedQueryIT.java   |   28 +-
 .../db/integration/IoTDBNewTsFileCompactionIT.java |   51 +-
 .../db/integration/IoTDBOverlappedPageIT.java      |   11 -
 .../iotdb/db/integration/IoTDBQueryDemoIT.java     |   20 +-
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |   35 +-
 .../db/integration/IoTDBRemovePartitionIT.java     |    4 +-
 .../iotdb/db/integration/IoTDBRestartIT.java       |    4 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |    7 -
 .../IoTDBSetSystemReadOnlyWritableIT.java          |   20 +-
 .../apache/iotdb/db/integration/IoTDBSettleIT.java |   94 +
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   |   39 +-
 ...ionIT.java => IoTDBSizeTieredCompactionIT.java} |  498 ++-
 .../iotdb/db/integration/IoTDBTracingIT.java       |   62 +-
 .../db/integration/IoTDBTriggerExecutionIT.java    |  314 +-
 .../db/integration/IoTDBTriggerManagementIT.java   |  172 +-
 .../iotdb/db/integration/IoTDBUDFManagementIT.java |   26 +-
 .../db/integration/IoTDBUDFWindowQueryIT.java      |   20 +-
 .../integration/IoTDBUDTFAlignByTimeQueryIT.java   |   18 +-
 .../db/integration/IoTDBUDTFHybridQueryIT.java     |   10 +-
 .../db/integration/IoTDBUDTFNonAlignQueryIT.java   |    6 +-
 .../aggregation/IoTDBAggregationByLevelIT.java     |  222 +-
 .../aggregation/IoTDBAggregationIT.java            |    7 -
 .../aggregation/IoTDBAggregationLargeDataIT.java   |    7 -
 .../aggregation/IoTDBAggregationSmallDataIT.java   |   10 +-
 .../db/integration/auth/IoTDBAuthorizationIT.java  |  118 +-
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |   12 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  113 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |   18 +-
 .../apache/iotdb/db/metadata/MetaUtilsTest.java    |   30 +-
 .../apache/iotdb/db/metadata/PartialPathTest.java  |    7 +
 .../iotdb/db/metadata/mlog/MLogUpgraderTest.java   |  104 +
 .../iotdb/db/monitor/IoTDBStatMonitorTest.java     |    4 +-
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |    4 +-
 .../iotdb/db/qp/logical/IndexLogicalPlanTest.java  |  156 -
 .../iotdb/db/qp/other/TSPlanContextAuthorTest.java |    8 +-
 .../physical/IndexSubMatchingPhysicalPlanTest.java |  163 -
 .../IndexWholeMatchingPhysicalPlanTest.java        |  168 -
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   36 +-
 .../iotdb/db/qp/sql/IoTDBsqlVisitorTest.java       |   12 +-
 .../iotdb/db/query/control/TracingManagerTest.java |  115 -
 .../iotdb/db/query/dataset/ListDataSetTest.java    |    2 +-
 .../iotdb/db/query/dataset/SingleDataSetTest.java  |    2 +-
 .../query/dataset/UDTFAlignByTimeDataSetTest.java  |    8 +-
 .../dataset/groupby/GroupByLevelDataSetTest.java   |    9 +-
 .../dataset/groupby/GroupByTimeDataSetTest.java    |    9 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |   47 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |    2 +-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |    2 +-
 .../db/sync/sender/transfer/SyncClientTest.java    |    2 +-
 .../iotdb/db/tools/TsFileAndModSettleToolTest.java |  238 ++
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   12 +-
 .../iotdb/db/utils/TsFileRewriteToolTest.java      |   76 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |   10 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    3 +
 .../main/java/org/apache/iotdb/session/Config.java |    4 +
 .../org/apache/iotdb/session/InsertConsumer.java   |   21 +-
 .../java/org/apache/iotdb/session/Session.java     |  252 +-
 .../apache/iotdb/session/SessionConnection.java    |   21 +
 .../org/apache/iotdb/session/pool/SessionPool.java |   37 +-
 .../iotdb/session/{ => util}/SessionUtils.java     |    2 +-
 .../org/apache/iotdb/session/util/ThreadUtils.java |   45 +
 .../iotdb/session/IoTDBSessionComplexIT.java       |   12 +-
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |    3 +-
 .../session/IoTDBSessionVectorABDeviceIT.java      |    7 +-
 .../session/IoTDBSessionVectorAggregationIT.java   |    7 +-
 .../IoTDBSessionVectorAggregationWithUnSeqIT.java  |    7 +-
 .../java/org/apache/iotdb/session/SessionTest.java |   94 +
 .../apache/iotdb/session/pool/SessionPoolTest.java |   35 +-
 .../apache/iotdb/session/util/ThreadUtilsTest.java |   24 +-
 site/pom.xml                                       |   12 +-
 site/src/main/.vuepress/config.js                  |    6 +-
 spark-iotdb-connector/Readme.md                    |  168 -
 spark-tsfile/README.md                             |  335 --
 .../test/java/org/apache/iotdb/db/sql/Cases.java   |  190 +-
 thrift-cluster/src/main/thrift/cluster.thrift      |    8 +-
 thrift/rpc-changelist.md                           |   22 +
 thrift/src/main/thrift/rpc.thrift                  |   25 +-
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |   17 +-
 .../read/controller/CachedChunkLoaderImpl.java     |    3 +-
 .../apache/iotdb/tsfile/utils/FilePathUtils.java   |  126 +
 .../tsfile/write/chunk/ChunkGroupWriterImpl.java   |    2 +-
 .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java  |    2 +-
 .../iotdb/tsfile/write/chunk/IChunkWriter.java     |    2 +-
 .../tsfile/write/chunk/VectorChunkWriterImpl.java  |    3 +-
 .../write/writer/RestorableTsFileIOWriter.java     |   41 +
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |    2 +-
 .../apache/iotdb/tsfile/constant/TestConstant.java |    4 +
 .../iotdb/tsfile/read/ReadOnlyTsFileTest.java      |    7 +-
 .../org/apache/iotdb/tsfile/read/ReadTest.java     |    3 +-
 .../iotdb/tsfile/read/TimePlainEncodeReadTest.java |    3 +-
 .../read/query/timegenerator/ReadWriteTest.java    |    8 +-
 .../timegenerator/TimeGeneratorReadEmptyTest.java  |    7 +-
 .../timegenerator/TimeGeneratorReadWriteTest.java  |    7 +-
 .../TsFileGeneratorForSeriesReaderByTimestamp.java |   21 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |   36 +-
 .../iotdb/tsfile}/utils/FilePathUtilsTest.java     |   36 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |   39 +-
 .../tsfile/write/DefaultSchemaTemplateTest.java    |    6 +-
 ...SameMeasurementsWithDifferentDataTypesTest.java |    7 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |  142 +-
 .../iotdb/tsfile/write/TsFileReadWriteTest.java    |    7 +-
 .../iotdb/tsfile/write/TsFileWriterTest.java       |   17 +-
 .../write/writer/ForceAppendTsFileWriterTest.java  |    8 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |   79 +-
 .../write/writer/VectorChunkWriterImplTest.java    |    4 +-
 zeppelin-interpreter/pom.xml                       |    2 +-
 436 files changed, 24533 insertions(+), 12805 deletions(-)

diff --cc server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 3348b9b,fe4c59f..36627c7
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@@ -373,8 -370,9 +370,11 @@@ public class PlanExecutor implements IP
          return operateCreateContinuousQuery((CreateContinuousQueryPlan) plan);
        case DROP_CONTINUOUS_QUERY:
          return operateDropContinuousQuery((DropContinuousQueryPlan) plan);
 +      case EMPTY:
 +        return true;
+       case SETTLE:
+         settle((SettlePlan) plan);
+         return true;
        default:
          throw new UnsupportedOperationException(
              String.format("operation %s is not supported", plan.getOperatorType()));
diff --cc server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
index 952df57,483415e..8e03bae
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/Operator.java
@@@ -173,6 -173,8 +173,9 @@@ public abstract class Operator 
      SHOW_CONTINUOUS_QUERIES,
      SET_SYSTEM_MODE,
  
 +    EMPTY,
+     SETTLE,
+ 
+     UNSET_SCHEMA_TEMPLATE
    }
  }
diff --cc server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
index b4801b5,e0371ef..464d9cf
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/PhysicalPlan.java
@@@ -488,8 -484,8 +488,9 @@@ public abstract class PhysicalPlan 
      CREATE_FUNCTION,
      DROP_FUNCTION,
      SELECT_INTO,
 +    DUMMY,
-     SET_SYSTEM_MODE
+     SET_SYSTEM_MODE,
+     UNSET_SCHEMA_TEMPLATE
    }
  
    public long getIndex() {