You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yu...@apache.org on 2020/09/07 03:37:36 UTC

[incubator-iotdb] branch cluster_performance updated (08880f9 -> 11ddd3d)

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

yuyuankang pushed a change to branch cluster_performance
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.


    from 08880f9  election
     add 487a467  async applier refine
     add 52ff188  fix the async log applier bug
     add 6602e8e  add UT
     add f794745  remove useless thread pool
     add 0d2fbbe  support flush plan when do snapshot
     add ae1540f  refine syncCloseOneProcessor method in StorageGroupProcessor
     add ecb1a52  change the log msg
     add 1101cfb  fix the license
     add 3833718  fix the check applir log index
     add 7d1fa0d  fix checkAppliedLogIndex
     add f1071bd  fix flushPlan bug
     add 261dbfe  fix flushPlan bug
     add 4e8e25d  add more log message
     add 162edfb  make
     add 9624981  Delete the extra blank lines
     add 7ae9f80  fix flushplan serialize bug
     add 5187c10  fix flushplan serialize bug
     add e299193  add flushPlan test
     add 4027bba  Delete the extra blank lines
     add 94b5a10  move syncFlushAllProcessor out of synchronized (logmanager) in
     add 5c3f239  make the applyEntries in one seperate thread
     add 5ac7bf3  flush the partitions belong to the datagroup and fix some UT
     add 8fda671  Merge pull request #1635 from neuyilan/apache_cluster_new_0819_async_applier
     add 24f4598  shrink PartitionTable interface & add SlotStrategy
     add ea67bf6  add log increment in node report
     add c160923  Fix bug that 'List role privileges' cannot apply to root and other issues in doc (#1647)
     add ec9ef4f  [IOTDB-849] Optimize value filter query (#1651)
     add fd6992b  [IOTDB-682] C++ client build (#1616)
     add 9789c2c  Update the master branch for releasing  0.10.1 (#1646)
     add 12e1332  Support double quotation in Path and optimize the Path String usage v2 (#1627)
     add 4c224bc  - Made it possible to load the config from the classpath (#1661)
     add 55c2e20  [IOTDB-855] Put back SessionPool resources if RuntimeException occurs (#1663)
     add afafc79  [IOTDB-839] Make Tablet api more friendly (#1658)
     add 2ec3916  fix a bug which caused delete timeseries unsuccessfully (#1664)
     add 2c6e057  resolve grammatical mistake (#1669)
     add 76a9aaa  [IOTDB-837] ArrayIndexOutOfBoundsException if the measurementId size is not consistent with the value size (#1662)
     add 1fc68e7  IoTDB Session Interface Updates(0.9-0.10) (#1672)
     add 988deda  fix Chinese webpage translation (#1677)
     add 1132192  fixed typo (#1674)
     add 11323fe  modify data manipulation doc (#1678)
     add 393a91f  [New feature] Add the alias and show it as column name when querying (#1621)
     add 4cedb4e  Add java doc. (#1681)
     add 7eeae49  Reduce unnecessary initialization (#1682)
     add 1e48707  fix scheduleWithFixedDelay in wal
     add 7e3f820  enlarge force_wal_period_in_ms to 100ms
     add a7cfb1e  Merge pull request #1679 from apache/real_fix_wal
     add c626197  [Sonar] Fix Sonar checking bugs (#1673)
     add 545d912  Fix thrift put some unnecessary bytes in a ByteBuffer (#1655)
     add b3ea173  add new committer chaow (#1688)
     add 82706a7  Merge branch 'master' into cluster_new
     new 11ddd3d  merge cluster_new

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |    8 +
 .mvn/wrapper/MavenWrapperDownloader.java           |   10 +-
 .../org/apache/iotdb/db/qp/strategy/SqlBase.g4     |  102 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |    3 +
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |    1 +
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |   51 +-
 .../PlanExecutor.md => client-cpp/README.md        |    8 +-
 client-cpp/client-cpp-example/pom.xml              |  162 +++
 .../client-cpp-example/src/CMakeLists.txt          |   20 +-
 .../client-cpp-example/src/SessionExample.cpp      |  296 +++++
 client-cpp/pom.xml                                 |  360 ++++++
 client-cpp/src/assembly/client-cpp.xml             |   60 +
 client-cpp/src/main/CMakeLists.txt                 |   42 +
 client-cpp/src/main/IOTDBSession.cpp               | 1018 ++++++++++++++++
 client-cpp/src/main/IOTDBSession.h                 |  633 ++++++++++
 client-cpp/src/test/CMakeLists.txt                 |   41 +
 client-cpp/src/test/cpp/sessionIT.cpp              |  171 +++
 .../src/test/main.cpp                              |   38 +-
 client-py/src/SessionExample.py                    |    2 +
 .../iotdb/cluster/ClusterFileFlushPolicy.java      |   13 +-
 .../java/org/apache/iotdb/cluster/ClusterMain.java |   39 +
 .../cluster/log/applier/AsyncDataLogApplier.java   |   11 +-
 .../iotdb/cluster/log/applier/BaseApplier.java     |   13 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |   23 +-
 .../iotdb/cluster/log/catchup/CatchUpTask.java     |    1 -
 .../iotdb/cluster/log/catchup/LogCatchUpTask.java  |   10 +-
 .../cluster/log/catchup/SnapshotCatchUpTask.java   |    2 -
 .../cluster/log/logtypes/PhysicalPlanLog.java      |    4 +-
 .../cluster/log/manage/CommittedEntryManager.java  |   47 +-
 .../manage/FilePartitionedSnapshotLogManager.java  |   62 +-
 .../log/manage/MetaSingleSnapshotLogManager.java   |   13 +-
 .../log/manage/PartitionedSnapshotLogManager.java  |   13 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |  270 ++++-
 .../cluster/log/snapshot/MetaSimpleSnapshot.java   |   19 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   55 +-
 .../apache/iotdb/cluster/metadata/MetaPuller.java  |   32 +-
 .../cluster/partition/NodeAdditionResult.java      |   20 +-
 .../iotdb/cluster/partition/NodeRemovalResult.java |   20 +-
 .../iotdb/cluster/partition/PartitionTable.java    |   47 +-
 .../cluster/partition/{ => slot}/SlotManager.java  |   19 +-
 .../SlotNodeAdditionResult.java}                   |   18 +-
 .../slot/SlotNodeRemovalResult.java}               |   19 +-
 .../partition/{ => slot}/SlotPartitionTable.java   |   51 +-
 .../iotdb/cluster/partition/slot/SlotStrategy.java |   36 +
 .../cluster/query/ClusterAggregateExecutor.java    |    8 +-
 .../cluster/query/ClusterConcatPathOptimizer.java  |    8 +-
 .../cluster/query/ClusterDataQueryExecutor.java    |    6 +-
 .../cluster/query/ClusterPhysicalGenerator.java    |   24 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |   83 +-
 .../iotdb/cluster/query/ClusterPlanRouter.java     |   25 +-
 .../iotdb/cluster/query/ClusterQueryRouter.java    |    4 +-
 .../query/dataset/ClusterAlignByDeviceDataSet.java |   12 +-
 .../cluster/query/fill/ClusterFillExecutor.java    |    6 +-
 .../cluster/query/fill/ClusterPreviousFill.java    |    5 +-
 .../cluster/query/fill/PreviousFillArguments.java  |    8 +-
 .../iotdb/cluster/query/filter/SlotSgFilter.java   |    4 +-
 .../cluster/query/filter/SlotTsFileFilter.java     |    4 +-
 .../groupby/ClusterGroupByNoVFilterDataSet.java    |    7 +-
 .../groupby/ClusterGroupByVFilterDataSet.java      |    7 +-
 .../query/groupby/MergeGroupByExecutor.java        |    6 +-
 .../query/last/ClusterLastQueryExecutor.java       |   11 +-
 .../cluster/query/reader/ClusterTimeGenerator.java |    6 +-
 .../apache/iotdb/cluster/server/ClientServer.java  |   10 +-
 .../iotdb/cluster/server/DataClusterServer.java    |    9 +-
 .../apache/iotdb/cluster/server/NodeReport.java    |   14 +-
 .../server/heartbeat/DataHeartbeatThread.java      |   11 +-
 .../cluster/server/member/DataGroupMember.java     |  202 +++-
 .../cluster/server/member/MetaGroupMember.java     |  203 ++--
 .../iotdb/cluster/server/member/RaftMember.java    |   12 +-
 .../cluster/server/service/DataAsyncService.java   |    7 +-
 .../cluster/server/service/DataSyncService.java    |    7 +-
 .../iotdb/cluster/utils/ClusterQueryUtils.java     |   13 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |   10 +-
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |   28 +-
 .../iotdb/cluster/common/TestAsyncDataClient.java  |    3 +-
 .../iotdb/cluster/common/TestDataGroupMember.java  |    2 +-
 .../iotdb/cluster/common/TestLogApplier.java       |    8 +-
 .../cluster/common/TestPartitionedLogManager.java  |    5 +-
 .../org/apache/iotdb/cluster/common/TestUtils.java |   10 +-
 .../apache/iotdb/cluster/log/LogParserTest.java    |    7 +-
 .../cluster/log/applier/DataLogApplierTest.java    |   32 +-
 .../cluster/log/applier/MetaLogApplierTest.java    |   28 +-
 .../iotdb/cluster/log/catchup/CatchUpTaskTest.java |    6 +-
 .../cluster/log/logtypes/SerializeLogTest.java     |   12 +-
 .../FilePartitionedSnapshotLogManagerTest.java     |   26 +-
 .../manage/MetaSingleSnapshotLogManagerTest.java   |   15 +-
 .../cluster/log/manage/RaftLogManagerTest.java     |  150 ++-
 .../iotdb/cluster/partition/SlotManagerTest.java   |   14 +-
 .../cluster/partition/SlotPartitionTableTest.java  |   99 +-
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |    6 +-
 .../query/ClusterAggregateExecutorTest.java        |   35 +-
 .../query/ClusterDataQueryExecutorTest.java        |    8 +-
 .../cluster/query/ClusterFillExecutorTest.java     |   13 +-
 .../query/ClusterPhysicalGeneratorTest.java        |    7 +-
 .../cluster/query/ClusterPlanExecutorTest.java     |    7 +-
 .../cluster/query/ClusterQueryRouterTest.java      |   43 +-
 .../ClusterGroupByNoVFilterDataSetTest.java        |   10 +-
 .../groupby/ClusterGroupByVFilterDataSetTest.java  |   14 +-
 .../query/groupby/MergeGroupByExecutorTest.java    |   11 +-
 .../query/groupby/RemoteGroupByExecutorTest.java   |   13 +-
 .../query/reader/ClusterTimeGeneratorTest.java     |   13 +-
 .../handlers/forwarder/ForwardPlanHandlerTest.java |   12 +-
 .../server/heartbeat/MetaHeartbeatThreadTest.java  |   40 -
 .../cluster/server/member/DataGroupMemberTest.java |  107 +-
 .../iotdb/cluster/server/member/MemberTest.java    |   47 +-
 .../cluster/server/member/MetaGroupMemberTest.java |  135 ++-
 .../iotdb/cluster/utils/SerializeUtilTest.java     |   11 +-
 compile-tools/README.md                            |  147 +++
 compile-tools/boost/pom.xml                        |  141 +++
 .../boost/src/assembly/bundle.xml                  |   30 +-
 compile-tools/pom.xml                              |  121 ++
 compile-tools/thrift/pom.xml                       |  420 +++++++
 .../thrift/src/assembly/compiler.xml               |   32 +-
 compile-tools/thrift/src/assembly/cpp.xml          |   51 +
 .../thrift/src/assembly/python.xml                 |   33 +-
 .../main/{Dockerfile-0.10.0 => Dockerfile-0.10.1}  |   10 +-
 docs/Download/README.md                            |   16 +-
 .../SystemDesign/StorageEngine/DataManipulation.md |   10 +-
 .../Client/Native API Update(0.9-0.10).md          |  196 ++++
 .../Concept/Data Model and Terminology.md          |    4 +
 .../DML Data Manipulation Language.md              |   18 +-
 docs/UserGuide/Operation Manual/SQL Reference.md   |   57 +-
 docs/zh/Download/README.md                         |   16 +-
 .../SystemDesign/StorageEngine/DataManipulation.md |   10 +-
 .../Client/Native API Update(0.9-0.10).md          |  192 +++
 .../Concept/Data Model and Terminology.md          |    4 +
 .../DML Data Manipulation Language.md              |   18 +-
 .../zh/UserGuide/Operation Manual/SQL Reference.md |   57 +-
 docs/zh/UserGuide/Server/Config Manual.md          |    2 +-
 .../org/apache/iotdb/flink/FlinkIoTDBSink.java     |    4 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSink.java   |    2 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSource.java |    2 +-
 .../apache/iotdb/flink/FlinkTsFileStreamSink.java  |    2 +-
 .../iotdb/flink/FlinkTsFileStreamSource.java       |    2 +-
 .../iotdb/hadoop/tsfile/TSFMRReadExample.java      |    3 +-
 .../iotdb/hadoop/tsfile/TSMRWriteExample.java      |    3 +-
 .../apache/iotdb/hadoop/tsfile/TsFileHelper.java   |   44 +-
 .../main/java/org/apache/iotdb/SessionExample.java |   56 +
 .../java/org/apache/iotdb/tsfile/TsFileRead.java   |   50 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |  137 +--
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   46 +-
 .../java/org/apache/iotdb/flink/IoTDBSink.java     |    3 +-
 .../iotdb/flink/tsfile/RowTSRecordConverter.java   |    5 +-
 .../iotdb/flink/tsfile/TsFileInputFormat.java      |   19 +-
 .../flink/tsfile/RowTsFileConnectorTestBase.java   |    2 +-
 .../iotdb/hadoop/fileSystem/HDFSConfUtil.java      |    3 +-
 .../iotdb/hadoop/tsfile/TSFRecordReader.java       |   22 +-
 .../org/apache/iotdb/hive/TSFHiveRecordReader.java |    1 +
 .../org/apache/iotdb/hive/TsFileDeserializer.java  |    1 +
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |    1 +
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |    2 +-
 pom.xml                                            |   17 +
 .../resources/conf/iotdb-engine.properties         |    2 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    8 +-
 .../iotdb/db/auth/role/LocalFileRoleAccessor.java  |    4 +
 .../iotdb/db/auth/user/LocalFileUserAccessor.java  |    4 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   21 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   90 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |    4 +-
 .../strategy/RandomOnDiskUsableSpaceStrategy.java  |    4 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  218 ++--
 .../iotdb/db/engine/flush/TsFileFlushPolicy.java   |    2 +-
 .../apache/iotdb/db/engine/flush/VmMergeUtils.java |    1 +
 .../db/engine/flush/pool/AbstractPoolManager.java  |    1 +
 .../iotdb/db/engine/memtable/AbstractMemTable.java |    4 +-
 .../iotdb/db/engine/merge/manage/MergeContext.java |    8 +-
 .../db/engine/merge/manage/MergeResource.java      |   16 +-
 .../iotdb/db/engine/merge/recover/LogAnalyzer.java |   64 +-
 .../iotdb/db/engine/merge/recover/MergeLogger.java |    8 +-
 .../engine/merge/selector/IMergePathSelector.java  |    4 +-
 .../engine/merge/selector/NaivePathSelector.java   |   10 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |   12 +-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |   23 +-
 .../iotdb/db/engine/merge/task/MergeTask.java      |   28 +-
 .../db/engine/merge/task/RecoverMergeTask.java     |    8 +-
 .../iotdb/db/engine/modification/Deletion.java     |    6 +-
 .../iotdb/db/engine/modification/Modification.java |   10 +-
 .../db/engine/modification/ModificationFile.java   |    3 +-
 .../io/LocalTextModificationAccessor.java          |   18 +-
 .../db/engine/querycontext/QueryDataSource.java    |   11 +-
 .../engine/storagegroup/StorageGroupProcessor.java |   95 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |   12 +-
 .../db/engine/storagegroup/TsFileResource.java     |   44 +-
 .../version/SimpleFileVersionController.java       |    1 +
 .../org/apache/iotdb/db/metadata/MManager.java     |  312 ++---
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  277 +++--
 .../org/apache/iotdb/db/metadata/MetaUtils.java    |   75 +-
 .../org/apache/iotdb/db/metadata/PartialPath.java  |  213 ++++
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   45 +-
 .../apache/iotdb/db/metrics/server/JettyUtil.java  |    4 +-
 .../iotdb/db/metrics/server/QueryServlet.java      |    2 +-
 .../iotdb/db/metrics/server/ServerArgument.java    |   37 +-
 .../apache/iotdb/db/metrics/ui/MetricsPage.java    |   10 +-
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   11 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   16 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |    6 +-
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |    9 +-
 .../apache/iotdb/db/qp/constant/DatetimeUtils.java |   14 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   24 +-
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |    6 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  236 ++--
 .../db/qp/logical/crud/BasicFunctionOperator.java  |   10 +-
 .../iotdb/db/qp/logical/crud/FilterOperator.java   |   26 +-
 .../iotdb/db/qp/logical/crud/FromOperator.java     |    8 +-
 .../iotdb/db/qp/logical/crud/InOperator.java       |   10 +-
 .../iotdb/db/qp/logical/crud/SFWOperator.java      |    6 +-
 .../iotdb/db/qp/logical/crud/SelectOperator.java   |   15 +-
 .../db/qp/logical/sys/AlterTimeSeriesOperator.java |   11 +-
 .../iotdb/db/qp/logical/sys/AuthorOperator.java    |    8 +-
 .../iotdb/db/qp/logical/sys/CountOperator.java     |   10 +-
 .../qp/logical/sys/CreateTimeSeriesOperator.java   |   11 +-
 .../db/qp/logical/sys/DeletePartitionOperator.java |    7 +-
 .../qp/logical/sys/DeleteStorageGroupOperator.java |    9 +-
 .../qp/logical/sys/DeleteTimeSeriesOperator.java   |    9 +-
 .../iotdb/db/qp/logical/sys/FlushOperator.java     |    8 +-
 .../db/qp/logical/sys/SetStorageGroupOperator.java |    8 +-
 .../iotdb/db/qp/logical/sys/SetTTLOperator.java    |    7 +-
 .../db/qp/logical/sys/ShowChildPathsOperator.java  |    8 +-
 .../db/qp/logical/sys/ShowDevicesOperator.java     |    8 +-
 .../iotdb/db/qp/logical/sys/ShowTTLOperator.java   |    8 +-
 .../db/qp/logical/sys/ShowTimeSeriesOperator.java  |    8 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |   18 +-
 .../db/qp/physical/crud/AlignByDevicePlan.java     |   17 +-
 .../db/qp/physical/crud/DeletePartitionPlan.java   |   10 +-
 .../iotdb/db/qp/physical/crud/DeletePlan.java      |   27 +-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |    7 +-
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |   40 +-
 .../db/qp/physical/crud/InsertTabletPlan.java      |   30 +-
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |   14 +-
 .../db/qp/physical/crud/RawDataQueryPlan.java      |    9 +-
 .../iotdb/db/qp/physical/crud/UpdatePlan.java      |   16 +-
 .../db/qp/physical/sys/AlterTimeSeriesPlan.java    |   21 +-
 .../iotdb/db/qp/physical/sys/AuthorPlan.java       |   16 +-
 .../iotdb/db/qp/physical/sys/ClearCachePlan.java   |    5 +-
 .../apache/iotdb/db/qp/physical/sys/CountPlan.java |    9 +-
 .../db/qp/physical/sys/CreateSnapshotPlan.java     |    5 +-
 .../db/qp/physical/sys/CreateTimeSeriesPlan.java   |   17 +-
 .../iotdb/db/qp/physical/sys/DataAuthPlan.java     |    4 +-
 .../db/qp/physical/sys/DeleteStorageGroupPlan.java |   21 +-
 .../db/qp/physical/sys/DeleteTimeSeriesPlan.java   |   21 +-
 .../apache/iotdb/db/qp/physical/sys/FlushPlan.java |  182 ++-
 .../db/qp/physical/sys/LoadConfigurationPlan.java  |    4 +-
 .../iotdb/db/qp/physical/sys/LoadDataPlan.java     |    9 +-
 .../apache/iotdb/db/qp/physical/sys/MergePlan.java |    5 +-
 .../iotdb/db/qp/physical/sys/OperateFilePlan.java  |    6 +-
 .../db/qp/physical/sys/SetStorageGroupPlan.java    |   20 +-
 .../iotdb/db/qp/physical/sys/SetTTLPlan.java       |   23 +-
 .../db/qp/physical/sys/ShowChildPathsPlan.java     |    8 +-
 .../iotdb/db/qp/physical/sys/ShowDevicesPlan.java  |    8 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |    4 +-
 .../iotdb/db/qp/physical/sys/ShowTTLPlan.java      |   10 +-
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |   15 +-
 .../iotdb/db/qp/physical/sys/TracingPlan.java      |    4 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |  194 +--
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  149 ++-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  117 +-
 .../optimizer/MergeSingleFilterOptimizer.java      |   17 +-
 .../db/query/control/QueryResourceManager.java     |    8 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   27 +-
 .../apache/iotdb/db/query/dataset/ListDataSet.java |    6 +-
 .../db/query/dataset/NonAlignEngineDataSet.java    |   24 +-
 .../dataset/RawQueryDataSetWithValueFilter.java    |   12 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |    7 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |    5 +-
 .../iotdb/db/query/dataset/SingleDataSet.java      |    7 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |    3 +-
 .../query/dataset/groupby/GroupByFillDataSet.java  |   23 +-
 .../query/dataset/groupby/GroupByTimeDataSet.java  |   19 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   14 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   23 +-
 .../dataset/groupby/LocalGroupByExecutor.java      |   14 +-
 .../db/query/executor/AggregationExecutor.java     |   41 +-
 .../iotdb/db/query/executor/FillQueryExecutor.java |   19 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   47 +-
 .../iotdb/db/query/executor/QueryRouter.java       |   42 +-
 .../db/query/executor/RawDataQueryExecutor.java    |   12 +-
 .../apache/iotdb/db/query/executor/fill/IFill.java |    4 +-
 .../db/query/executor/fill/LastPointReader.java    |    7 +-
 .../iotdb/db/query/executor/fill/LinearFill.java   |    9 +-
 .../iotdb/db/query/executor/fill/PreviousFill.java |   11 +-
 .../FixLengthIExternalSortFileDeserializer.java    |   75 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |    5 +-
 .../chunk/metadata/MemChunkMetadataLoader.java     |   11 +-
 .../query/reader/series/SeriesAggregateReader.java |    9 +-
 .../reader/series/SeriesRawDataBatchReader.java    |    6 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |   11 +-
 .../reader/series/SeriesReaderByTimestamp.java     |    9 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   46 +-
 ...stAllocatorMBean.java => CachedStringPool.java} |   22 +-
 .../org/apache/iotdb/db/rescon/MemTablePool.java   |    2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |    2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  342 +++---
 .../iotdb/db/sync/receiver/load/FileLoader.java    |   12 +-
 .../db/sync/receiver/load/FileLoaderManager.java   |    1 +
 .../receiver/recover/SyncReceiverLogAnalyzer.java  |    1 +
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   29 +-
 .../db/sync/sender/manage/SyncFileManager.java     |   18 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |    8 +-
 .../apache/iotdb/db/tools/IoTDBDataDirViewer.java  |   12 +-
 .../iotdb/db/tools/TsFileResourcePrinter.java      |    3 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |  254 ++--
 .../db/tools/upgrade/TsFileOnlineUpgradeTool.java  |    1 +
 .../db/tools/watermark/WatermarkDetector.java      |   94 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |    7 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |    6 +-
 .../org/apache/iotdb/db/utils/FilePathUtils.java   |   21 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |   17 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   10 +-
 .../apache/iotdb/db/utils/QueryDataSetUtils.java   |    2 +
 .../java/org/apache/iotdb/db/utils/QueryUtils.java |   25 +-
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |   48 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |    2 +-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |    3 +-
 .../org/apache/iotdb/db/utils/UpgradeUtils.java    |    3 +-
 .../iotdb/db/writelog/io/BatchLogReader.java       |    3 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |   36 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |   26 +-
 .../writelog/recover/TsFileRecoverPerformer.java   |    6 +-
 .../org/apache/iotdb/db/constant/TestConstant.java |   16 +-
 .../iotdb/db/engine/MetadataManagerHelper.java     |   43 +-
 .../db/engine/cache/ChunkMetadataCacheTest.java    |   15 +-
 .../iotdb/db/engine/memtable/MemTablePoolTest.java |    1 +
 .../apache/iotdb/db/engine/merge/MergeLogTest.java |    3 +-
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |   21 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   36 +-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |    8 +-
 .../engine/modification/DeletionFileNodeTest.java  |  101 +-
 .../db/engine/modification/DeletionQueryTest.java  |  139 ++-
 .../engine/modification/ModificationFileTest.java  |   17 +-
 .../io/LocalTextModificationAccessorTest.java      |    9 +-
 .../storagegroup/FileNodeManagerBenchmark.java     |   11 +-
 .../storagegroup/StorageGroupProcessorTest.java    |   44 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |   71 +-
 .../storagegroup/TsFileProcessorEnableVmTest.java  |    5 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |   10 +-
 .../version/SysTimeVersionControllerTest.java      |    1 +
 .../iotdb/db/integration/IoTDBAggregationIT.java   |   35 +-
 .../integration/IoTDBAggregationLargeDataIT.java   |  285 +++--
 .../apache/iotdb/db/integration/IoTDBAliasIT.java  |   49 +-
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |  156 +--
 .../org/apache/iotdb/db/integration/IoTDBAsIT.java |  603 ++++++++++
 .../iotdb/db/integration/IoTDBAuthorizationIT.java | 1234 ++++++++++----------
 .../apache/iotdb/db/integration/IoTDBCloseIT.java  |  112 +-
 .../apache/iotdb/db/integration/IoTDBDaemonIT.java |   28 +-
 .../db/integration/IoTDBDeleteStorageGroupIT.java  |   14 +-
 .../db/integration/IoTDBDeleteTimeseriesIT.java    |   64 +-
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |   24 +-
 .../apache/iotdb/db/integration/IoTDBFillIT.java   |  283 ++---
 .../db/integration/IoTDBFlushQueryMergeIT.java     |    8 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |   21 +-
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |   10 +-
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |   78 +-
 .../IoTDBMultiOverlappedChunkInUnseqIT.java        |    9 +-
 .../db/integration/IoTDBMultiOverlappedPageIT.java |   20 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   25 +-
 .../db/integration/IoTDBMultiStatementsIT.java     |   92 +-
 .../iotdb/db/integration/IoTDBNumberPathIT.java    |   13 +-
 .../db/integration/IoTDBOverlappedPageIT.java      |   12 +-
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |  115 +-
 .../iotdb/db/integration/IoTDBRecoverIT.java       |    3 +
 .../db/integration/IoTDBRemovePartitionIT.java     |   16 +-
 .../iotdb/db/integration/IoTDBRestartIT.java       |   84 +-
 .../db/integration/IoTDBSequenceDataQueryIT.java   |   51 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   50 +-
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   |  168 +--
 .../iotdb/db/integration/IoTDBTagAlterIT.java      |  410 ++++---
 .../apache/iotdb/db/integration/IoTDBTagIT.java    |  622 +++++-----
 .../iotdb/db/integration/IoTDBTimeZoneIT.java      |   12 +-
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |   71 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  246 ++--
 .../iotdb/db/metadata/MManagerImproveTest.java     |   45 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |  323 ++---
 .../apache/iotdb/db/metadata/MetaUtilsTest.java    |   62 +
 .../apache/iotdb/db/metadata/PartialPathTest.java  |   74 ++
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |   39 +-
 .../iotdb/db/qp/other/TSPlanContextAuthorTest.java |    7 +-
 .../iotdb/db/qp/plan/ConcatOptimizerTest.java      |   31 +-
 .../iotdb/db/qp/plan/LogicalPlanSmallTest.java     |   24 +-
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  130 ++-
 .../apache/iotdb/db/qp/plan/SerializationTest.java |   81 +-
 .../db/query/dataset/GroupByLevelDataSetTest.java  |    1 -
 .../db/query/dataset/GroupByTimeDataSetTest.java   |    1 -
 .../reader/series/SeriesAggregateReaderTest.java   |   28 +-
 .../reader/series/SeriesReaderByTimestampTest.java |   22 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   29 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |   22 +-
 .../apache/iotdb/db/sql/CheckPathValidityTest.java |    3 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |   28 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   15 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |    3 +-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |    7 +-
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |   74 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |   17 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |    5 +-
 .../iotdb/db/utils/TypeInferenceUtilsTest.java     |    7 +-
 .../db/utils/datastructure/PrecisionTest.java      |    2 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |   26 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |    8 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |   32 +-
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |   11 +-
 .../db/writelog/io/MultiFileLogReaderTest.java     |    6 +-
 .../db/writelog/recover/DeviceStringTest.java      |   16 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |   14 +-
 .../recover/RecoverResourceFromReaderTest.java     |   20 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |    7 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |   20 +-
 .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java |    1 +
 .../org/apache/iotdb/session/SessionUtils.java     |    1 +
 .../org/apache/iotdb/session/pool/SessionPool.java |   21 +-
 .../org/apache/iotdb/session/IoTDBSessionIT.java   |  330 ++++--
 site/src/main/.vuepress/config.js                  |    6 +-
 .../theme/global-components/Contributor.vue        |    7 +
 .../.vuepress/theme/global-components/IoTDB.vue    |    4 +-
 .../.vuepress/theme/global-components/IoTDBZH.vue  |   23 +-
 .../iotdb/spark/tsfile/qp/QueryProcessor.java      |    2 +
 .../qp/optimizer/MergeSingleFilterOptimizer.java   |    1 +
 .../tsfile/qp/optimizer/PhysicalOptimizer.java     |    2 +
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |    2 +-
 .../iotdb/spark/tsfile/NarrowConverter.scala       |   71 +-
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |   54 +-
 thrift/src/main/thrift/rpc.thrift                  |   32 +-
 thrift/src/pypi/README.md                          |    6 +-
 .../tsfile/common/constant/TsFileConstant.java     |    3 +-
 .../iotdb/tsfile/encoding/encoder/RleEncoder.java  |    1 +
 .../file/metadata/MetadataIndexConstructor.java    |    1 +
 .../file/metadata/statistics/Statistics.java       |    5 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |    2 +-
 .../org/apache/iotdb/tsfile/read/common/Path.java  |  202 +---
 .../apache/iotdb/tsfile/read/common/TimeRange.java |   11 +-
 .../read/controller/MetadataQuerierByFileImpl.java |    2 +
 .../query/dataset/DataSetWithoutTimeGenerator.java |    1 +
 .../read/query/timegenerator/node/AndNode.java     |    1 +
 .../iotdb/tsfile/read/reader/page/PageReader.java  |    1 +
 .../reader/series/FileSeriesReaderByTimestamp.java |    2 +
 .../iotdb/tsfile/utils/RamUsageEstimator.java      |    1 +
 .../apache/iotdb/tsfile/write/record/Tablet.java   |   57 +
 .../iotdb/tsfile/read/ReadInPartitionTest.java     |   22 +-
 .../iotdb/tsfile/read/ReadOnlyTsFileTest.java      |   20 +-
 .../org/apache/iotdb/tsfile/read/ReadTest.java     |   59 +-
 .../iotdb/tsfile/read/TimePlainEncodeReadTest.java |   71 +-
 .../apache/iotdb/tsfile/read/common/PathTest.java  |   77 +-
 .../tsfile/read/controller/ChunkLoaderTest.java    |    2 +-
 .../controller/IMetadataQuerierByFileImplTest.java |   16 +-
 .../read/filter/IExpressionOptimizerTest.java      |   30 +-
 .../read/query/executor/QueryExecutorTest.java     |   20 +-
 .../read/query/timegenerator/ReadWriteTest.java    |    8 +-
 .../query/timegenerator/ReaderByTimestampTest.java |    2 +-
 .../timegenerator/TimeGeneratorReadEmptyTest.java  |    8 +-
 .../timegenerator/TimeGeneratorReadWriteTest.java  |    8 +-
 .../query/timegenerator/TimeGeneratorTest.java     |    6 +-
 .../TsFileGeneratorForSeriesReaderByTimestamp.java |   22 +-
 .../tsfile/read/reader/FakedTimeGenerator.java     |    8 +-
 .../iotdb/tsfile/read/reader/ReaderTest.java       |    8 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |   22 +-
 .../apache/iotdb/tsfile/utils/RecordUtilsTest.java |   12 +-
 .../iotdb/tsfile/utils/StringContainerTest.java    |    5 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |  101 +-
 .../org/apache/iotdb/tsfile/write/PerfTest.java    |   78 +-
 .../iotdb/tsfile/write/ReadPageInMemTest.java      |   16 +-
 ...SameMeasurementsWithDifferentDataTypesTest.java |    4 +-
 .../iotdb/tsfile/write/TsFileReadWriteTest.java    |    4 +-
 .../iotdb/tsfile/write/TsFileWriterTest.java       |   18 +-
 .../org/apache/iotdb/tsfile/write/WriteTest.java   |   51 +-
 .../write/writer/ForceAppendTsFileWriterTest.java  |    8 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |   83 +-
 465 files changed, 14128 insertions(+), 6822 deletions(-)
 copy docs/zh/SystemDesign/QueryEngine/PlanExecutor.md => client-cpp/README.md (77%)
 create mode 100644 client-cpp/client-cpp-example/pom.xml
 copy server/src/assembly/resources/sbin/stop-server.sh => client-cpp/client-cpp-example/src/CMakeLists.txt (70%)
 mode change 100755 => 100644
 create mode 100644 client-cpp/client-cpp-example/src/SessionExample.cpp
 create mode 100644 client-cpp/pom.xml
 create mode 100644 client-cpp/src/assembly/client-cpp.xml
 create mode 100644 client-cpp/src/main/CMakeLists.txt
 create mode 100644 client-cpp/src/main/IOTDBSession.cpp
 create mode 100644 client-cpp/src/main/IOTDBSession.h
 create mode 100644 client-cpp/src/test/CMakeLists.txt
 create mode 100644 client-cpp/src/test/cpp/sessionIT.cpp
 copy tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetadata.java => client-cpp/src/test/main.cpp (56%)
 rename cluster/src/main/java/org/apache/iotdb/cluster/partition/{ => slot}/SlotManager.java (92%)
 copy cluster/src/main/java/org/apache/iotdb/cluster/partition/{NodeAdditionResult.java => slot/SlotNodeAdditionResult.java} (79%)
 copy cluster/src/main/java/org/apache/iotdb/cluster/{exception/NotInSameGroupException.java => partition/slot/SlotNodeRemovalResult.java} (62%)
 rename cluster/src/main/java/org/apache/iotdb/cluster/partition/{ => slot}/SlotPartitionTable.java (91%)
 create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotStrategy.java
 create mode 100644 compile-tools/README.md
 create mode 100644 compile-tools/boost/pom.xml
 copy site/src/main/deploy.js => compile-tools/boost/src/assembly/bundle.xml (58%)
 create mode 100644 compile-tools/pom.xml
 create mode 100644 compile-tools/thrift/pom.xml
 copy site/src/main/deploy.js => compile-tools/thrift/src/assembly/compiler.xml (53%)
 create mode 100644 compile-tools/thrift/src/assembly/cpp.xml
 copy site/src/main/deploy.js => compile-tools/thrift/src/assembly/python.xml (53%)
 copy docker/src/main/{Dockerfile-0.10.0 => Dockerfile-0.10.1} (79%)
 create mode 100644 docs/UserGuide/Client/Native API Update(0.9-0.10).md
 create mode 100644 docs/zh/UserGuide/Client/Native API Update(0.9-0.10).md
 create mode 100755 server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java
 copy server/src/main/java/org/apache/iotdb/db/rescon/{TVListAllocatorMBean.java => CachedStringPool.java} (62%)
 create mode 100644 server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/PartialPathTest.java


[incubator-iotdb] 01/01: merge cluster_new

Posted by yu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yuyuankang pushed a commit to branch cluster_performance
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 11ddd3d46c97c289490e6d75acceaf7c5e70b9e9
Merge: 08880f9 82706a7
Author: Ring-k <yu...@hotmail.com>
AuthorDate: Mon Sep 7 11:37:04 2020 +0800

    merge cluster_new

 .gitignore                                         |    8 +
 .mvn/wrapper/MavenWrapperDownloader.java           |   10 +-
 .../org/apache/iotdb/db/qp/strategy/SqlBase.g4     |  102 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |    3 +
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |    1 +
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |   51 +-
 client-cpp/README.md                               |   26 +
 client-cpp/client-cpp-example/pom.xml              |  162 +++
 client-cpp/client-cpp-example/src/CMakeLists.txt   |   30 +
 .../client-cpp-example/src/SessionExample.cpp      |  296 +++++
 client-cpp/pom.xml                                 |  360 ++++++
 client-cpp/src/assembly/client-cpp.xml             |   60 +
 client-cpp/src/main/CMakeLists.txt                 |   42 +
 client-cpp/src/main/IOTDBSession.cpp               | 1018 ++++++++++++++++
 client-cpp/src/main/IOTDBSession.h                 |  633 ++++++++++
 client-cpp/src/test/CMakeLists.txt                 |   41 +
 client-cpp/src/test/cpp/sessionIT.cpp              |  171 +++
 .../src/test/main.cpp                              |   44 +-
 client-py/src/SessionExample.py                    |    2 +
 .../iotdb/cluster/ClusterFileFlushPolicy.java      |   13 +-
 .../java/org/apache/iotdb/cluster/ClusterMain.java |   39 +
 .../cluster/log/applier/AsyncDataLogApplier.java   |   11 +-
 .../iotdb/cluster/log/applier/BaseApplier.java     |   13 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |   23 +-
 .../iotdb/cluster/log/catchup/CatchUpTask.java     |    1 -
 .../iotdb/cluster/log/catchup/LogCatchUpTask.java  |   10 +-
 .../cluster/log/catchup/SnapshotCatchUpTask.java   |    2 -
 .../cluster/log/logtypes/PhysicalPlanLog.java      |    4 +-
 .../cluster/log/manage/CommittedEntryManager.java  |   47 +-
 .../manage/FilePartitionedSnapshotLogManager.java  |   62 +-
 .../log/manage/MetaSingleSnapshotLogManager.java   |   13 +-
 .../log/manage/PartitionedSnapshotLogManager.java  |   13 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |  270 ++++-
 .../cluster/log/snapshot/MetaSimpleSnapshot.java   |   19 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   55 +-
 .../apache/iotdb/cluster/metadata/MetaPuller.java  |   32 +-
 .../cluster/partition/NodeAdditionResult.java      |   20 +-
 .../iotdb/cluster/partition/NodeRemovalResult.java |   20 +-
 .../iotdb/cluster/partition/PartitionTable.java    |   47 +-
 .../cluster/partition/{ => slot}/SlotManager.java  |   19 +-
 .../SlotNodeAdditionResult.java}                   |   18 +-
 .../SlotNodeRemovalResult.java}                    |   31 +-
 .../partition/{ => slot}/SlotPartitionTable.java   |   51 +-
 .../iotdb/cluster/partition/slot/SlotStrategy.java |   36 +
 .../cluster/query/ClusterAggregateExecutor.java    |    8 +-
 .../cluster/query/ClusterConcatPathOptimizer.java  |    8 +-
 .../cluster/query/ClusterDataQueryExecutor.java    |    6 +-
 .../cluster/query/ClusterPhysicalGenerator.java    |   24 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |   83 +-
 .../iotdb/cluster/query/ClusterPlanRouter.java     |   25 +-
 .../iotdb/cluster/query/ClusterQueryRouter.java    |    4 +-
 .../query/dataset/ClusterAlignByDeviceDataSet.java |   12 +-
 .../cluster/query/fill/ClusterFillExecutor.java    |    6 +-
 .../cluster/query/fill/ClusterPreviousFill.java    |    5 +-
 .../cluster/query/fill/PreviousFillArguments.java  |    8 +-
 .../iotdb/cluster/query/filter/SlotSgFilter.java   |    4 +-
 .../cluster/query/filter/SlotTsFileFilter.java     |    4 +-
 .../groupby/ClusterGroupByNoVFilterDataSet.java    |    7 +-
 .../groupby/ClusterGroupByVFilterDataSet.java      |    7 +-
 .../query/groupby/MergeGroupByExecutor.java        |    6 +-
 .../query/last/ClusterLastQueryExecutor.java       |   11 +-
 .../cluster/query/reader/ClusterTimeGenerator.java |    6 +-
 .../apache/iotdb/cluster/server/ClientServer.java  |   10 +-
 .../iotdb/cluster/server/DataClusterServer.java    |    9 +-
 .../apache/iotdb/cluster/server/NodeReport.java    |   14 +-
 .../server/heartbeat/DataHeartbeatThread.java      |   11 +-
 .../cluster/server/member/DataGroupMember.java     |  202 +++-
 .../cluster/server/member/MetaGroupMember.java     |  203 ++--
 .../iotdb/cluster/server/member/RaftMember.java    |   12 +-
 .../cluster/server/service/DataAsyncService.java   |    7 +-
 .../cluster/server/service/DataSyncService.java    |    7 +-
 .../iotdb/cluster/utils/ClusterQueryUtils.java     |   13 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |   10 +-
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |   28 +-
 .../iotdb/cluster/common/TestAsyncDataClient.java  |    3 +-
 .../iotdb/cluster/common/TestDataGroupMember.java  |    2 +-
 .../iotdb/cluster/common/TestLogApplier.java       |    8 +-
 .../cluster/common/TestPartitionedLogManager.java  |    5 +-
 .../org/apache/iotdb/cluster/common/TestUtils.java |   10 +-
 .../apache/iotdb/cluster/log/LogParserTest.java    |    7 +-
 .../cluster/log/applier/DataLogApplierTest.java    |   32 +-
 .../cluster/log/applier/MetaLogApplierTest.java    |   28 +-
 .../iotdb/cluster/log/catchup/CatchUpTaskTest.java |    6 +-
 .../cluster/log/logtypes/SerializeLogTest.java     |   12 +-
 .../FilePartitionedSnapshotLogManagerTest.java     |   26 +-
 .../manage/MetaSingleSnapshotLogManagerTest.java   |   15 +-
 .../cluster/log/manage/RaftLogManagerTest.java     |  150 ++-
 .../iotdb/cluster/partition/SlotManagerTest.java   |   14 +-
 .../cluster/partition/SlotPartitionTableTest.java  |   99 +-
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |    6 +-
 .../query/ClusterAggregateExecutorTest.java        |   35 +-
 .../query/ClusterDataQueryExecutorTest.java        |    8 +-
 .../cluster/query/ClusterFillExecutorTest.java     |   13 +-
 .../query/ClusterPhysicalGeneratorTest.java        |    7 +-
 .../cluster/query/ClusterPlanExecutorTest.java     |    7 +-
 .../cluster/query/ClusterQueryRouterTest.java      |   43 +-
 .../ClusterGroupByNoVFilterDataSetTest.java        |   10 +-
 .../groupby/ClusterGroupByVFilterDataSetTest.java  |   14 +-
 .../query/groupby/MergeGroupByExecutorTest.java    |   11 +-
 .../query/groupby/RemoteGroupByExecutorTest.java   |   13 +-
 .../query/reader/ClusterTimeGeneratorTest.java     |   13 +-
 .../handlers/forwarder/ForwardPlanHandlerTest.java |   12 +-
 .../server/heartbeat/MetaHeartbeatThreadTest.java  |   40 -
 .../cluster/server/member/DataGroupMemberTest.java |  107 +-
 .../iotdb/cluster/server/member/MemberTest.java    |   47 +-
 .../cluster/server/member/MetaGroupMemberTest.java |  135 ++-
 .../iotdb/cluster/utils/SerializeUtilTest.java     |   11 +-
 compile-tools/README.md                            |  147 +++
 compile-tools/boost/pom.xml                        |  141 +++
 compile-tools/boost/src/assembly/bundle.xml        |   35 +
 compile-tools/pom.xml                              |  121 ++
 compile-tools/thrift/pom.xml                       |  420 +++++++
 compile-tools/thrift/src/assembly/compiler.xml     |   37 +
 compile-tools/thrift/src/assembly/cpp.xml          |   51 +
 compile-tools/thrift/src/assembly/python.xml       |   38 +
 docker/src/main/Dockerfile-0.10.1                  |   41 +
 docs/Download/README.md                            |   16 +-
 .../SystemDesign/StorageEngine/DataManipulation.md |   10 +-
 .../Client/Native API Update(0.9-0.10).md          |  196 ++++
 .../Concept/Data Model and Terminology.md          |    4 +
 .../DML Data Manipulation Language.md              |   18 +-
 docs/UserGuide/Operation Manual/SQL Reference.md   |   57 +-
 docs/zh/Download/README.md                         |   16 +-
 .../SystemDesign/StorageEngine/DataManipulation.md |   10 +-
 .../Client/Native API Update(0.9-0.10).md          |  192 +++
 .../Concept/Data Model and Terminology.md          |    4 +
 .../DML Data Manipulation Language.md              |   18 +-
 .../zh/UserGuide/Operation Manual/SQL Reference.md |   57 +-
 docs/zh/UserGuide/Server/Config Manual.md          |    2 +-
 .../org/apache/iotdb/flink/FlinkIoTDBSink.java     |    4 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSink.java   |    2 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSource.java |    2 +-
 .../apache/iotdb/flink/FlinkTsFileStreamSink.java  |    2 +-
 .../iotdb/flink/FlinkTsFileStreamSource.java       |    2 +-
 .../iotdb/hadoop/tsfile/TSFMRReadExample.java      |    3 +-
 .../iotdb/hadoop/tsfile/TSMRWriteExample.java      |    3 +-
 .../apache/iotdb/hadoop/tsfile/TsFileHelper.java   |   44 +-
 .../main/java/org/apache/iotdb/SessionExample.java |   56 +
 .../java/org/apache/iotdb/tsfile/TsFileRead.java   |   50 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |  137 +--
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   46 +-
 .../java/org/apache/iotdb/flink/IoTDBSink.java     |    3 +-
 .../iotdb/flink/tsfile/RowTSRecordConverter.java   |    5 +-
 .../iotdb/flink/tsfile/TsFileInputFormat.java      |   19 +-
 .../flink/tsfile/RowTsFileConnectorTestBase.java   |    2 +-
 .../iotdb/hadoop/fileSystem/HDFSConfUtil.java      |    3 +-
 .../iotdb/hadoop/tsfile/TSFRecordReader.java       |   22 +-
 .../org/apache/iotdb/hive/TSFHiveRecordReader.java |    1 +
 .../org/apache/iotdb/hive/TsFileDeserializer.java  |    1 +
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |    1 +
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |    2 +-
 pom.xml                                            |   17 +
 .../resources/conf/iotdb-engine.properties         |    2 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    8 +-
 .../iotdb/db/auth/role/LocalFileRoleAccessor.java  |    4 +
 .../iotdb/db/auth/user/LocalFileUserAccessor.java  |    4 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   21 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   90 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |    4 +-
 .../strategy/RandomOnDiskUsableSpaceStrategy.java  |    4 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  218 ++--
 .../iotdb/db/engine/flush/TsFileFlushPolicy.java   |    2 +-
 .../apache/iotdb/db/engine/flush/VmMergeUtils.java |    1 +
 .../db/engine/flush/pool/AbstractPoolManager.java  |    1 +
 .../iotdb/db/engine/memtable/AbstractMemTable.java |    4 +-
 .../iotdb/db/engine/merge/manage/MergeContext.java |    8 +-
 .../db/engine/merge/manage/MergeResource.java      |   16 +-
 .../iotdb/db/engine/merge/recover/LogAnalyzer.java |   64 +-
 .../iotdb/db/engine/merge/recover/MergeLogger.java |    8 +-
 .../engine/merge/selector/IMergePathSelector.java  |    4 +-
 .../engine/merge/selector/NaivePathSelector.java   |   10 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |   12 +-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |   23 +-
 .../iotdb/db/engine/merge/task/MergeTask.java      |   28 +-
 .../db/engine/merge/task/RecoverMergeTask.java     |    8 +-
 .../iotdb/db/engine/modification/Deletion.java     |    6 +-
 .../iotdb/db/engine/modification/Modification.java |   10 +-
 .../db/engine/modification/ModificationFile.java   |    3 +-
 .../io/LocalTextModificationAccessor.java          |   18 +-
 .../db/engine/querycontext/QueryDataSource.java    |   11 +-
 .../engine/storagegroup/StorageGroupProcessor.java |   95 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |   12 +-
 .../db/engine/storagegroup/TsFileResource.java     |   44 +-
 .../version/SimpleFileVersionController.java       |    1 +
 .../org/apache/iotdb/db/metadata/MManager.java     |  312 ++---
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  277 +++--
 .../org/apache/iotdb/db/metadata/MetaUtils.java    |   75 +-
 .../org/apache/iotdb/db/metadata/PartialPath.java  |  213 ++++
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   45 +-
 .../apache/iotdb/db/metrics/server/JettyUtil.java  |    4 +-
 .../iotdb/db/metrics/server/QueryServlet.java      |    2 +-
 .../iotdb/db/metrics/server/ServerArgument.java    |   37 +-
 .../apache/iotdb/db/metrics/ui/MetricsPage.java    |   10 +-
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   11 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   16 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |    6 +-
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |    9 +-
 .../apache/iotdb/db/qp/constant/DatetimeUtils.java |   14 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   24 +-
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |    6 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  236 ++--
 .../db/qp/logical/crud/BasicFunctionOperator.java  |   10 +-
 .../iotdb/db/qp/logical/crud/FilterOperator.java   |   26 +-
 .../iotdb/db/qp/logical/crud/FromOperator.java     |    8 +-
 .../iotdb/db/qp/logical/crud/InOperator.java       |   10 +-
 .../iotdb/db/qp/logical/crud/SFWOperator.java      |    6 +-
 .../iotdb/db/qp/logical/crud/SelectOperator.java   |   15 +-
 .../db/qp/logical/sys/AlterTimeSeriesOperator.java |   11 +-
 .../iotdb/db/qp/logical/sys/AuthorOperator.java    |    8 +-
 .../iotdb/db/qp/logical/sys/CountOperator.java     |   10 +-
 .../qp/logical/sys/CreateTimeSeriesOperator.java   |   11 +-
 .../db/qp/logical/sys/DeletePartitionOperator.java |    7 +-
 .../qp/logical/sys/DeleteStorageGroupOperator.java |    9 +-
 .../qp/logical/sys/DeleteTimeSeriesOperator.java   |    9 +-
 .../iotdb/db/qp/logical/sys/FlushOperator.java     |    8 +-
 .../db/qp/logical/sys/SetStorageGroupOperator.java |    8 +-
 .../iotdb/db/qp/logical/sys/SetTTLOperator.java    |    7 +-
 .../db/qp/logical/sys/ShowChildPathsOperator.java  |    8 +-
 .../db/qp/logical/sys/ShowDevicesOperator.java     |    8 +-
 .../iotdb/db/qp/logical/sys/ShowTTLOperator.java   |    8 +-
 .../db/qp/logical/sys/ShowTimeSeriesOperator.java  |    8 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |   18 +-
 .../db/qp/physical/crud/AlignByDevicePlan.java     |   17 +-
 .../db/qp/physical/crud/DeletePartitionPlan.java   |   10 +-
 .../iotdb/db/qp/physical/crud/DeletePlan.java      |   27 +-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |    7 +-
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |   40 +-
 .../db/qp/physical/crud/InsertTabletPlan.java      |   30 +-
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |   14 +-
 .../db/qp/physical/crud/RawDataQueryPlan.java      |    9 +-
 .../iotdb/db/qp/physical/crud/UpdatePlan.java      |   16 +-
 .../db/qp/physical/sys/AlterTimeSeriesPlan.java    |   21 +-
 .../iotdb/db/qp/physical/sys/AuthorPlan.java       |   16 +-
 .../iotdb/db/qp/physical/sys/ClearCachePlan.java   |    5 +-
 .../apache/iotdb/db/qp/physical/sys/CountPlan.java |    9 +-
 .../db/qp/physical/sys/CreateSnapshotPlan.java     |    5 +-
 .../db/qp/physical/sys/CreateTimeSeriesPlan.java   |   17 +-
 .../iotdb/db/qp/physical/sys/DataAuthPlan.java     |    4 +-
 .../db/qp/physical/sys/DeleteStorageGroupPlan.java |   21 +-
 .../db/qp/physical/sys/DeleteTimeSeriesPlan.java   |   21 +-
 .../apache/iotdb/db/qp/physical/sys/FlushPlan.java |  182 ++-
 .../db/qp/physical/sys/LoadConfigurationPlan.java  |    4 +-
 .../iotdb/db/qp/physical/sys/LoadDataPlan.java     |    9 +-
 .../apache/iotdb/db/qp/physical/sys/MergePlan.java |    5 +-
 .../iotdb/db/qp/physical/sys/OperateFilePlan.java  |    6 +-
 .../db/qp/physical/sys/SetStorageGroupPlan.java    |   20 +-
 .../iotdb/db/qp/physical/sys/SetTTLPlan.java       |   23 +-
 .../db/qp/physical/sys/ShowChildPathsPlan.java     |    8 +-
 .../iotdb/db/qp/physical/sys/ShowDevicesPlan.java  |    8 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |    4 +-
 .../iotdb/db/qp/physical/sys/ShowTTLPlan.java      |   10 +-
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |   15 +-
 .../iotdb/db/qp/physical/sys/TracingPlan.java      |    4 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |  194 +--
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  149 ++-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  117 +-
 .../optimizer/MergeSingleFilterOptimizer.java      |   17 +-
 .../db/query/control/QueryResourceManager.java     |    8 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   27 +-
 .../apache/iotdb/db/query/dataset/ListDataSet.java |    6 +-
 .../db/query/dataset/NonAlignEngineDataSet.java    |   24 +-
 .../dataset/RawQueryDataSetWithValueFilter.java    |   12 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |    7 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |    5 +-
 .../iotdb/db/query/dataset/SingleDataSet.java      |    7 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |    3 +-
 .../query/dataset/groupby/GroupByFillDataSet.java  |   23 +-
 .../query/dataset/groupby/GroupByTimeDataSet.java  |   19 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   14 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   23 +-
 .../dataset/groupby/LocalGroupByExecutor.java      |   14 +-
 .../db/query/executor/AggregationExecutor.java     |   41 +-
 .../iotdb/db/query/executor/FillQueryExecutor.java |   19 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   47 +-
 .../iotdb/db/query/executor/QueryRouter.java       |   42 +-
 .../db/query/executor/RawDataQueryExecutor.java    |   12 +-
 .../apache/iotdb/db/query/executor/fill/IFill.java |    4 +-
 .../db/query/executor/fill/LastPointReader.java    |    7 +-
 .../iotdb/db/query/executor/fill/LinearFill.java   |    9 +-
 .../iotdb/db/query/executor/fill/PreviousFill.java |   11 +-
 .../FixLengthIExternalSortFileDeserializer.java    |   75 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |    5 +-
 .../chunk/metadata/MemChunkMetadataLoader.java     |   11 +-
 .../query/reader/series/SeriesAggregateReader.java |    9 +-
 .../reader/series/SeriesRawDataBatchReader.java    |    6 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |   11 +-
 .../reader/series/SeriesReaderByTimestamp.java     |    9 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   46 +-
 .../CachedStringPool.java}                         |   30 +-
 .../org/apache/iotdb/db/rescon/MemTablePool.java   |    2 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |    2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  342 +++---
 .../iotdb/db/sync/receiver/load/FileLoader.java    |   12 +-
 .../db/sync/receiver/load/FileLoaderManager.java   |    1 +
 .../receiver/recover/SyncReceiverLogAnalyzer.java  |    1 +
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   29 +-
 .../db/sync/sender/manage/SyncFileManager.java     |   18 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |    8 +-
 .../apache/iotdb/db/tools/IoTDBDataDirViewer.java  |   12 +-
 .../iotdb/db/tools/TsFileResourcePrinter.java      |    3 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |  254 ++--
 .../db/tools/upgrade/TsFileOnlineUpgradeTool.java  |    1 +
 .../db/tools/watermark/WatermarkDetector.java      |   94 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |    7 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |    6 +-
 .../org/apache/iotdb/db/utils/FilePathUtils.java   |   21 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |   17 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   10 +-
 .../apache/iotdb/db/utils/QueryDataSetUtils.java   |    2 +
 .../java/org/apache/iotdb/db/utils/QueryUtils.java |   25 +-
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |   48 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |    2 +-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |    3 +-
 .../org/apache/iotdb/db/utils/UpgradeUtils.java    |    3 +-
 .../iotdb/db/writelog/io/BatchLogReader.java       |    3 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |   36 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |   26 +-
 .../writelog/recover/TsFileRecoverPerformer.java   |    6 +-
 .../org/apache/iotdb/db/constant/TestConstant.java |   16 +-
 .../iotdb/db/engine/MetadataManagerHelper.java     |   43 +-
 .../db/engine/cache/ChunkMetadataCacheTest.java    |   15 +-
 .../iotdb/db/engine/memtable/MemTablePoolTest.java |    1 +
 .../apache/iotdb/db/engine/merge/MergeLogTest.java |    3 +-
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |   21 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   36 +-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |    8 +-
 .../engine/modification/DeletionFileNodeTest.java  |  101 +-
 .../db/engine/modification/DeletionQueryTest.java  |  139 ++-
 .../engine/modification/ModificationFileTest.java  |   17 +-
 .../io/LocalTextModificationAccessorTest.java      |    9 +-
 .../storagegroup/FileNodeManagerBenchmark.java     |   11 +-
 .../storagegroup/StorageGroupProcessorTest.java    |   44 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |   71 +-
 .../storagegroup/TsFileProcessorEnableVmTest.java  |    5 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |   10 +-
 .../version/SysTimeVersionControllerTest.java      |    1 +
 .../iotdb/db/integration/IoTDBAggregationIT.java   |   35 +-
 .../integration/IoTDBAggregationLargeDataIT.java   |  285 +++--
 .../apache/iotdb/db/integration/IoTDBAliasIT.java  |   49 +-
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |  156 +--
 .../org/apache/iotdb/db/integration/IoTDBAsIT.java |  603 ++++++++++
 .../iotdb/db/integration/IoTDBAuthorizationIT.java | 1234 ++++++++++----------
 .../apache/iotdb/db/integration/IoTDBCloseIT.java  |  112 +-
 .../apache/iotdb/db/integration/IoTDBDaemonIT.java |   28 +-
 .../db/integration/IoTDBDeleteStorageGroupIT.java  |   14 +-
 .../db/integration/IoTDBDeleteTimeseriesIT.java    |   64 +-
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |   24 +-
 .../apache/iotdb/db/integration/IoTDBFillIT.java   |  283 ++---
 .../db/integration/IoTDBFlushQueryMergeIT.java     |    8 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |   21 +-
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |   10 +-
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |   78 +-
 .../IoTDBMultiOverlappedChunkInUnseqIT.java        |    9 +-
 .../db/integration/IoTDBMultiOverlappedPageIT.java |   20 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   25 +-
 .../db/integration/IoTDBMultiStatementsIT.java     |   92 +-
 .../iotdb/db/integration/IoTDBNumberPathIT.java    |   13 +-
 .../db/integration/IoTDBOverlappedPageIT.java      |   12 +-
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |  115 +-
 .../iotdb/db/integration/IoTDBRecoverIT.java       |    3 +
 .../db/integration/IoTDBRemovePartitionIT.java     |   16 +-
 .../iotdb/db/integration/IoTDBRestartIT.java       |   84 +-
 .../db/integration/IoTDBSequenceDataQueryIT.java   |   51 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |   50 +-
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   |  168 +--
 .../iotdb/db/integration/IoTDBTagAlterIT.java      |  410 ++++---
 .../apache/iotdb/db/integration/IoTDBTagIT.java    |  622 +++++-----
 .../iotdb/db/integration/IoTDBTimeZoneIT.java      |   12 +-
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |   71 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  246 ++--
 .../iotdb/db/metadata/MManagerImproveTest.java     |   45 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |  323 ++---
 .../apache/iotdb/db/metadata/MetaUtilsTest.java    |   62 +
 .../apache/iotdb/db/metadata/PartialPathTest.java  |   74 ++
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |   39 +-
 .../iotdb/db/qp/other/TSPlanContextAuthorTest.java |    7 +-
 .../iotdb/db/qp/plan/ConcatOptimizerTest.java      |   31 +-
 .../iotdb/db/qp/plan/LogicalPlanSmallTest.java     |   24 +-
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  130 ++-
 .../apache/iotdb/db/qp/plan/SerializationTest.java |   81 +-
 .../db/query/dataset/GroupByLevelDataSetTest.java  |    1 -
 .../db/query/dataset/GroupByTimeDataSetTest.java   |    1 -
 .../reader/series/SeriesAggregateReaderTest.java   |   28 +-
 .../reader/series/SeriesReaderByTimestampTest.java |   22 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   29 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |   22 +-
 .../apache/iotdb/db/sql/CheckPathValidityTest.java |    3 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |   28 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   15 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |    3 +-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |    7 +-
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |   74 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |   17 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |    5 +-
 .../iotdb/db/utils/TypeInferenceUtilsTest.java     |    7 +-
 .../db/utils/datastructure/PrecisionTest.java      |    2 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |   26 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |    8 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |   32 +-
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |   11 +-
 .../db/writelog/io/MultiFileLogReaderTest.java     |    6 +-
 .../db/writelog/recover/DeviceStringTest.java      |   16 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |   14 +-
 .../recover/RecoverResourceFromReaderTest.java     |   20 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |    7 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |   20 +-
 .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java |    1 +
 .../org/apache/iotdb/session/SessionUtils.java     |    1 +
 .../org/apache/iotdb/session/pool/SessionPool.java |   21 +-
 .../org/apache/iotdb/session/IoTDBSessionIT.java   |  330 ++++--
 site/src/main/.vuepress/config.js                  |    6 +-
 .../theme/global-components/Contributor.vue        |    7 +
 .../.vuepress/theme/global-components/IoTDB.vue    |    4 +-
 .../.vuepress/theme/global-components/IoTDBZH.vue  |   23 +-
 .../iotdb/spark/tsfile/qp/QueryProcessor.java      |    2 +
 .../qp/optimizer/MergeSingleFilterOptimizer.java   |    1 +
 .../tsfile/qp/optimizer/PhysicalOptimizer.java     |    2 +
 .../apache/iotdb/spark/tsfile/DefaultSource.scala  |    2 +-
 .../iotdb/spark/tsfile/NarrowConverter.scala       |   71 +-
 .../apache/iotdb/spark/tsfile/WideConverter.scala  |   54 +-
 thrift/src/main/thrift/rpc.thrift                  |   32 +-
 thrift/src/pypi/README.md                          |    6 +-
 .../tsfile/common/constant/TsFileConstant.java     |    3 +-
 .../iotdb/tsfile/encoding/encoder/RleEncoder.java  |    1 +
 .../file/metadata/MetadataIndexConstructor.java    |    1 +
 .../file/metadata/statistics/Statistics.java       |    5 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |    2 +-
 .../org/apache/iotdb/tsfile/read/common/Path.java  |  202 +---
 .../apache/iotdb/tsfile/read/common/TimeRange.java |   11 +-
 .../read/controller/MetadataQuerierByFileImpl.java |    2 +
 .../query/dataset/DataSetWithoutTimeGenerator.java |    1 +
 .../read/query/timegenerator/node/AndNode.java     |    1 +
 .../iotdb/tsfile/read/reader/page/PageReader.java  |    1 +
 .../reader/series/FileSeriesReaderByTimestamp.java |    2 +
 .../iotdb/tsfile/utils/RamUsageEstimator.java      |    1 +
 .../apache/iotdb/tsfile/write/record/Tablet.java   |   57 +
 .../iotdb/tsfile/read/ReadInPartitionTest.java     |   22 +-
 .../iotdb/tsfile/read/ReadOnlyTsFileTest.java      |   20 +-
 .../org/apache/iotdb/tsfile/read/ReadTest.java     |   59 +-
 .../iotdb/tsfile/read/TimePlainEncodeReadTest.java |   71 +-
 .../apache/iotdb/tsfile/read/common/PathTest.java  |   77 +-
 .../tsfile/read/controller/ChunkLoaderTest.java    |    2 +-
 .../controller/IMetadataQuerierByFileImplTest.java |   16 +-
 .../read/filter/IExpressionOptimizerTest.java      |   30 +-
 .../read/query/executor/QueryExecutorTest.java     |   20 +-
 .../read/query/timegenerator/ReadWriteTest.java    |    8 +-
 .../query/timegenerator/ReaderByTimestampTest.java |    2 +-
 .../timegenerator/TimeGeneratorReadEmptyTest.java  |    8 +-
 .../timegenerator/TimeGeneratorReadWriteTest.java  |    8 +-
 .../query/timegenerator/TimeGeneratorTest.java     |    6 +-
 .../TsFileGeneratorForSeriesReaderByTimestamp.java |   22 +-
 .../tsfile/read/reader/FakedTimeGenerator.java     |    8 +-
 .../iotdb/tsfile/read/reader/ReaderTest.java       |    8 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |   22 +-
 .../apache/iotdb/tsfile/utils/RecordUtilsTest.java |   12 +-
 .../iotdb/tsfile/utils/StringContainerTest.java    |    5 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |  101 +-
 .../org/apache/iotdb/tsfile/write/PerfTest.java    |   78 +-
 .../iotdb/tsfile/write/ReadPageInMemTest.java      |   16 +-
 ...SameMeasurementsWithDifferentDataTypesTest.java |    4 +-
 .../iotdb/tsfile/write/TsFileReadWriteTest.java    |    4 +-
 .../iotdb/tsfile/write/TsFileWriterTest.java       |   18 +-
 .../org/apache/iotdb/tsfile/write/WriteTest.java   |   51 +-
 .../write/writer/ForceAppendTsFileWriterTest.java  |    8 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |   83 +-
 465 files changed, 14241 insertions(+), 6809 deletions(-)

diff --cc cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
index 29de9f0,1b7fdfc..c82ef45
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
@@@ -75,13 -109,15 +109,23 @@@ public abstract class RaftLogManager 
    private int maxNumOfLogsInMem = ClusterDescriptor.getInstance().getConfig()
        .getMaxNumOfLogsInMem();
  
 +  /**
 +   * Each time new logs are appended, this condition will be notified so logs that have larger
 +   * indices but arrived earlier can proceed.
 +   */
 +  private final Object logUpdateCondition = new Object();
 +
 +
+   protected int LOG_APPLIER_WAIT_TIME_MS = 10_000;
+ 
+   protected IOException logApplierWaitTimeOutException = new IOException(
+       "wait all log applied time out");
+ 
+   private List<Log> blockedUnappliedLogList;
+ 
+   private ExecutorService logApplierExecutor;
+ 
++
    public RaftLogManager(StableEntryManager stableEntryManager, LogApplier applier, String name) {
      this.logApplier = applier;
      this.name = name;
@@@ -664,7 -804,90 +818,95 @@@
      }
    }
  
++
 +  public Object getLogUpdateCondition() {
 +    return logUpdateCondition;
 +  }
++
+   public void applyAllCommittedLogWhenStartUp() {
+     long lo = maxHaveAppliedCommitIndex;
+     long hi = getCommittedEntryManager().getLastIndex() + 1;
+     if (lo >= hi) {
+       logger.info("{}: the maxHaveAppliedCommitIndex={}, lastIndex={}, no need to reapply",
+           name, maxHaveAppliedCommitIndex, hi);
+       return;
+     }
+ 
+     List<Log> entries = null;
+     try {
+       entries = new ArrayList<>(getCommittedEntryManager().getEntries(lo, hi));
+     } catch (EntryCompactedException e) {
+       logger.error("{}: apply all committed log failed when get entries", name, e);
+       return;
+     }
+     try {
+       applyEntries(entries, true);
+     } catch (LogExecutionException e) {
+       logger.error("{}: apply all committed log failed", name, e);
+     }
+   }
+ 
+   public void checkAppliedLogIndex() {
+     while (!Thread.interrupted()) {
+       doCheckAppliedLogIndex();
+     }
+   }
+ 
+   public void doCheckAppliedLogIndex() {
+     try {
+       long nextToCheckIndex = maxHaveAppliedCommitIndex + 1;
+       if (nextToCheckIndex > commitIndex || nextToCheckIndex > getCommittedEntryManager()
+           .getLastIndex()) {
+         return;
+       }
+       Log log = getCommittedEntryManager().getEntry(nextToCheckIndex);
+       synchronized (log) {
+         while (!log.isApplied()) {
+           // wait until the log is applied
+           try {
+             log.wait();
+           } catch (InterruptedException e) {
+             Thread.currentThread().interrupt();
+             logger.error("{}: do check applied log index is interrupt", name);
+           }
+           return;
+         }
+         maxHaveAppliedCommitIndex = nextToCheckIndex;
+         logger.debug(
+             "{}: log={} is applied, nextToCheckIndex={}, commitIndex={}, maxHaveAppliedCommitIndex={}",
+             name, log, nextToCheckIndex, commitIndex, maxHaveAppliedCommitIndex);
+       }
+     } catch (EntryCompactedException e) {
+       // ignore
+       return;
+     }
+   }
+ 
+   public long getBlockAppliedCommitIndex() {
+     return blockAppliedCommitIndex;
+   }
+ 
+   public void setBlockAppliedCommitIndex(long blockAppliedCommitIndex) {
+     this.blockAppliedCommitIndex = blockAppliedCommitIndex;
+     if (blockAppliedCommitIndex < 0) {
+       this.reapplyBlockedLogs();
+     }
+   }
+ 
+   private void reapplyBlockedLogs() {
+     try {
+       if (blockedUnappliedLogList.size() > 0) {
+         applyEntries(blockedUnappliedLogList, false);
+         logger.info("{}: reapply {} number of logs", name, blockedUnappliedLogList.size());
+       }
+     } catch (LogExecutionException e) {
+       logger.error("{}: reapply blocked log list failed", name, e);
+     } finally {
+       blockedUnappliedLogList.clear();
+     }
+   }
+ 
+   public String getName() {
+     return name;
+   }
  }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
index bb0b3cc,04958ee..0745ca5
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
@@@ -114,7 -116,7 +116,8 @@@ public class NodeReport 
            ", commitTerm=" + commitTerm +
            ", readOnly=" + isReadOnly +
            ", lastHeartbeat=" + (System.currentTimeMillis() - lastHeartbeatReceivedTime) + "ms ago" +
 +          ", \n timer: "+ Timer.getReport() +
+           ", logIncrement=" + (lastLogIndex - prevLastLogIndex) +
            '}';
      }
    }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
index 5d4ab53,1898b9e..6a23833
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
@@@ -51,19 -50,11 +51,20 @@@ public class DataHeartbeatThread extend
     */
    @Override
    void startElection() {
-     electionRequest.setHeader(dataGroupMember.getHeader());
-     electionRequest.setLastLogTerm(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogTerm());
-     electionRequest.setLastLogIndex(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogIndex());
-     electionRequest.setDataLogLastIndex(dataGroupMember.getLogManager().getLastLogIndex());
-     electionRequest.setDataLogLastTerm(dataGroupMember.getLogManager().getLastLogTerm());
 +    if(dataGroupMember.getThisNode() != dataGroupMember.getHeader()){
 +      if(number%4 != 0){
 +        number++;
 +        return;
 +      }else{
 +        number = 1;
 +      }
 +    }
+     electionRequest.setHeader(dataGroupMember.getHeader());
+     electionRequest.setLastLogTerm(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogTerm());
+     electionRequest.setLastLogIndex(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogIndex());
+     electionRequest.setDataLogLastIndex(dataGroupMember.getLogManager().getLastLogIndex());
+     electionRequest.setDataLogLastTerm(dataGroupMember.getLogManager().getLastLogTerm());
++
      super.startElection();
    }
  }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index ba29275,82f45f3..af98b40
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@@ -95,11 -100,8 +100,9 @@@ import org.apache.iotdb.cluster.server.
  import org.apache.iotdb.cluster.server.Peer;
  import org.apache.iotdb.cluster.server.PullSnapshotHintService;
  import org.apache.iotdb.cluster.server.Response;
 +import org.apache.iotdb.cluster.server.Timer;
  import org.apache.iotdb.cluster.server.heartbeat.DataHeartbeatThread;
  import org.apache.iotdb.cluster.utils.ClusterQueryUtils;
- import org.apache.iotdb.cluster.utils.PartitionUtils;
- import org.apache.iotdb.cluster.utils.nodetool.function.Status;
  import org.apache.iotdb.db.conf.IoTDBDescriptor;
  import org.apache.iotdb.db.engine.StorageEngine;
  import org.apache.iotdb.db.engine.modification.ModificationFile;
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index 4a5305d,cc4b4bf..8964dac
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
@@@ -181,8 -177,12 +182,16 @@@ public abstract class RaftMember 
     */
    private final Object snapshotApplyLock = new Object();
  
++
 +  private LogDispatcher logDispatcher;
 +
+   /**
+    * lastLogIndex when generating previous member report, to show the log ingestion rate of the
+    * member.
+    */
+   long lastReportedLogIndex;
+ 
++
    public RaftMember() {
    }
  
@@@ -1478,10 -1320,10 +1487,11 @@@
     *
     * @param request
     */
-   public TSStatus executeNonQueryPlan(ExecutNonQueryReq request) throws IOException {
+   public TSStatus executeNonQueryPlan(ExecutNonQueryReq request)
+       throws IOException, IllegalPathException {
      // process the plan locally
      PhysicalPlan plan = PhysicalPlan.Factory.create(request.planBytes);
 +
      TSStatus answer = executeNonQuery(plan);
      logger.debug("{}: Received a plan {}, executed answer: {}", name, plan, answer);
      return answer;