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

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

commit a7345e3747536d1241fa64576f67bc63871b16b6
Merge: db3e595 946d4b8
Author: xiangdong huang <[email protected]>
AuthorDate: Sun Jan 31 14:47:58 2021 +0800

    merge with master

 .../upgrade/config.properties => .dockerignore     |   10 +-
 .github/pull_request_template.md                   |   37 +-
 .github/workflows/client.yml                       |   98 ++
 .github/workflows/e2e.yml                          |   52 +
 .github/workflows/main-linux.yml                   |   70 ++
 .github/workflows/main-mac.yml                     |   46 +
 .github/workflows/{main-ci.yml => main-win.yml}    |   69 +-
 .github/workflows/sonar_and_coverall.yml           |   76 --
 .travis.yml                                        |  192 ----
 Jenkinsfile                                        |    4 +-
 LICENSE-binary                                     |   20 +-
 NOTICE                                             |    2 +-
 NOTICE-binary                                      |    2 +-
 README.md                                          |   15 +
 README_ZH.md                                       |   14 +-
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlBase.g4   |   31 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |  138 +--
 cli/src/main/java/org/apache/iotdb/cli/Cli.java    |    2 +
 cli/src/main/java/org/apache/iotdb/cli/WinCli.java |    3 +
 .../org/apache/iotdb/cli/utils/IoTPrinter.java     |  107 ++
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |   63 +-
 client-cpp/README.md                               |   31 +
 client-cpp/pom.xml                                 |   41 +-
 client-cpp/src/assembly/client-cpp.xml             |   16 +-
 client-cpp/src/main/CMakeLists.txt                 |   23 +-
 client-cpp/src/main/Session.cpp                    |  191 +++-
 client-cpp/src/main/Session.h                      |   23 +-
 client-cpp/src/test/CMakeLists.txt                 |   40 +-
 client-cpp/src/test/cpp/sessionIT.cpp              |  155 ++-
 client-py/readme.md                                |    6 +
 client-py/src/SessionExample.py                    |   14 +-
 .../src/{SessionExample.py => SessionTest.py}      |   79 +-
 client-py/src/iotdb/Session.py                     |  143 ++-
 client-py/src/iotdb/utils/IoTDBRpcDataSet.py       |    5 +-
 cluster/pom.xml                                    |   43 +-
 cluster/src/assembly/cluster.xml                   |    4 +-
 cluster/src/assembly/resources/sbin/add-node.sh    |    2 +-
 cluster/src/assembly/resources/sbin/start-node.sh  |    2 +-
 .../iotdb/cluster/ClusterFileFlushPolicy.java      |    2 +-
 .../java/org/apache/iotdb/cluster/ClusterMain.java |    4 +-
 .../apache/iotdb/cluster/RemoteTsFileResource.java |   41 +-
 .../cluster/client/async/AsyncClientFactory.java   |    6 +-
 .../cluster/client/async/AsyncClientPool.java      |   81 +-
 .../cluster/client/async/AsyncDataClient.java      |   11 +-
 .../iotdb/cluster/client/sync/SyncClientPool.java  |   24 +-
 .../iotdb/cluster/config/ClusterConstant.java      |   31 +-
 .../iotdb/cluster/coordinator/Coordinator.java     |  167 ++--
 .../apache/iotdb/cluster/log/LogDispatcher.java    |   16 +-
 .../cluster/log/applier/AsyncDataLogApplier.java   |   17 +-
 .../iotdb/cluster/log/applier/BaseApplier.java     |    2 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |   13 +-
 .../iotdb/cluster/log/catchup/CatchUpTask.java     |    2 +-
 .../cluster/log/manage/CommittedEntryManager.java  |    5 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |   26 +-
 .../log/manage/UnCommittedEntryManager.java        |   10 +-
 .../iotdb/cluster/log/snapshot/FileSnapshot.java   |   38 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   28 +-
 .../apache/iotdb/cluster/metadata/MetaPuller.java  |    5 +-
 .../iotdb/cluster/partition/PartitionTable.java    |    3 +-
 .../cluster/query/ClusterPhysicalGenerator.java    |   15 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |   53 +-
 .../iotdb/cluster/query/ClusterPlanRouter.java     |   74 ++
 .../cluster/query/filter/SlotTsFileFilter.java     |   16 +-
 .../cluster/query/manage/QueryCoordinator.java     |  115 +--
 .../apache/iotdb/cluster/server/ClientServer.java  |   10 +-
 .../iotdb/cluster/server/DataClusterServer.java    |    2 +-
 .../iotdb/cluster/server/MetaClusterServer.java    |   10 +
 .../apache/iotdb/cluster/server/RaftServer.java    |    7 +-
 .../handlers/caller/AppendNodeEntryHandler.java    |    6 +-
 .../server/handlers/caller/HeartbeatHandler.java   |    2 +-
 .../cluster/server/heartbeat/HeartbeatThread.java  |    8 +-
 .../cluster/server/member/DataGroupMember.java     |   19 +-
 .../cluster/server/member/MetaGroupMember.java     |   73 +-
 .../iotdb/cluster/server/member/RaftMember.java    |  126 +--
 .../cluster/server/{ => monitor}/NodeReport.java   |    3 +-
 .../manage => server/monitor}/NodeStatus.java      |   41 +-
 .../monitor/NodeStatusManager.java}                |   87 +-
 .../iotdb/cluster/server/{ => monitor}/Peer.java   |    2 +-
 .../iotdb/cluster/server/{ => monitor}/Timer.java  |    2 +-
 .../cluster/server/service/MetaAsyncService.java   |    6 +
 .../cluster/server/service/MetaSyncService.java    |    5 +
 .../apache/iotdb/cluster/utils/ClusterUtils.java   |    9 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |    2 +-
 .../utils/nodetool/function/NodeToolCmd.java       |   22 +-
 .../iotdb/cluster/common/EnvironmentUtils.java     |  218 -----
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |    4 +-
 .../org/apache/iotdb/cluster/common/TestUtils.java |    6 +-
 .../cluster/integration/BaseSingleNodeTest.java    |    2 +-
 .../iotdb/cluster/integration/SingleNodeTest.java  |    7 +-
 .../iotdb/cluster/log/CommitLogCallbackTest.java   |    2 +-
 .../iotdb/cluster/log/CommitLogTaskTest.java       |    2 +-
 .../iotdb/cluster/log/LogDispatcherTest.java       |    2 +-
 .../log/applier/AsyncDataLogApplierTest.java       |    2 +-
 .../cluster/log/applier/DataLogApplierTest.java    |   11 +-
 .../iotdb/cluster/log/catchup/CatchUpTaskTest.java |    9 +-
 .../cluster/log/catchup/LogCatchUpTaskTest.java    |    8 +-
 .../log/catchup/SnapshotCatchUpTaskTest.java       |    8 +-
 .../FilePartitionedSnapshotLogManagerTest.java     |    1 +
 .../cluster/log/manage/RaftLogManagerTest.java     |   22 +-
 .../cluster/log/snapshot/DataSnapshotTest.java     |    7 +-
 .../cluster/log/snapshot/PullSnapshotTaskTest.java |   25 +-
 .../iotdb/cluster/partition/SlotManagerTest.java   |    2 +-
 .../cluster/partition/SlotPartitionTableTest.java  |    2 +-
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |   17 +-
 .../query/ClusterAggregateExecutorTest.java        |   48 +-
 .../query/ClusterDataQueryExecutorTest.java        |   22 +-
 .../cluster/query/ClusterFillExecutorTest.java     |   72 +-
 .../query/ClusterPhysicalGeneratorTest.java        |    1 +
 .../cluster/query/ClusterPlanExecutorTest.java     |    9 +-
 .../cluster/query/ClusterQueryRouterTest.java      |  216 +++--
 .../iotdb/cluster/query/LoadConfigurationTest.java |  122 +++
 .../ClusterGroupByNoVFilterDataSetTest.java        |   64 +-
 .../groupby/ClusterGroupByVFilterDataSetTest.java  |   74 +-
 .../query/groupby/MergeGroupByExecutorTest.java    |   83 +-
 .../query/groupby/RemoteGroupByExecutorTest.java   |  146 +--
 .../cluster/query/manage/QueryCoordinatorTest.java |   15 +-
 .../query/reader/ClusterTimeGeneratorTest.java     |   34 +-
 .../cluster/query/reader/DatasourceInfoTest.java   |   16 +-
 .../reader/RemoteSeriesReaderByTimestampTest.java  |  122 +--
 .../query/reader/RemoteSimpleSeriesReaderTest.java |  136 +--
 .../caller/AppendGroupEntryHandlerTest.java        |    2 +-
 .../caller/AppendNodeEntryHandlerTest.java         |    4 +-
 .../handlers/caller/ElectionHandlerTest.java       |    2 +-
 .../handlers/caller/HeartbeatHandlerTest.java      |    2 +-
 .../handlers/caller/LogCatchUpHandlerTest.java     |    2 +-
 .../server/heartbeat/DataHeartbeatThreadTest.java  |    5 +
 .../server/heartbeat/HeartbeatThreadTest.java      |   10 +-
 .../server/heartbeat/MetaHeartbeatThreadTest.java  |    5 +
 .../cluster/server/member/DataGroupMemberTest.java |  156 +--
 .../iotdb/cluster/server/member/MemberTest.java    |   18 +-
 .../cluster/server/member/MetaGroupMemberTest.java |   56 +-
 .../README.md                                      |   12 +-
 .../copy-code-coverage-sources.sh                  |   35 +-
 code-coverage/pom.xml                              |  132 +++
 compile-tools/README.md                            |   85 +-
 compile-tools/boost/pom.xml                        |  145 ---
 compile-tools/boost/src/assembly/bundle.xml        |   35 -
 compile-tools/pom.xml                              |    7 +-
 compile-tools/thrift/pom.xml                       |   51 +-
 docker/src/main/Dockerfile                         |   46 +-
 docker/src/main/Dockerfile-0.10.0                  |    4 +-
 docker/src/main/Dockerfile-0.10.1                  |    4 +-
 docker/src/main/Dockerfile-0.11.0                  |    4 +-
 .../main/{Dockerfile-0.11.0 => Dockerfile-0.11.1}  |   10 +-
 .../main/{Dockerfile-0.11.0 => Dockerfile-0.11.2}  |   10 +-
 docs/Download/README.md                            |   33 +-
 docs/UserGuide/Client/Programming - Native API.md  |   26 +
 docs/UserGuide/Client/Status Codes.md              |    2 +
 .../Concept/Data Model and Terminology.md          |   15 +-
 docs/UserGuide/Concept/SDT.md                      |   21 +-
 docs/UserGuide/Operation Manual/Administration.md  |    2 +
 .../DDL Data Definition Language.md                |    5 +
 .../DML Data Manipulation Language.md              |  192 +++-
 docs/UserGuide/Operation Manual/Kill Query.md      |   60 ++
 docs/UserGuide/Operation Manual/SQL Reference.md   |   25 +-
 .../Operation Manual/UDF User Defined Function.md  |   72 ++
 docs/UserGuide/Server/Cluster Setup.md             |    3 -
 docs/UserGuide/Server/Config Manual.md             |   18 +
 docs/UserGuide/System Tools/CSV Tool.md            |    1 +
 docs/UserGuide/System Tools/NodeTool.md            |    9 +-
 docs/zh/Download/README.md                         |   30 +-
 docs/zh/SystemDesign/StorageEngine/Compaction.md   |   40 +-
 .../UserGuide/Client/Programming - Native API.md   |   24 +-
 docs/zh/UserGuide/Client/Status Codes.md           |    2 +
 .../Concept/Data Model and Terminology.md          |   16 +-
 docs/zh/UserGuide/Concept/SDT.md                   |   17 +-
 .../UserGuide/Operation Manual/Administration.md   |    2 +
 .../DDL Data Definition Language.md                |    6 +
 .../DML Data Manipulation Language.md              |  198 +++-
 docs/zh/UserGuide/Operation Manual/Kill Query.md   |   61 ++
 .../zh/UserGuide/Operation Manual/SQL Reference.md |   31 +-
 .../Operation Manual/UDF User Defined Function.md  |   74 ++
 docs/zh/UserGuide/Server/Cluster Setup.md          |    3 -
 docs/zh/UserGuide/Server/Config Manual.md          |   17 +
 docs/zh/UserGuide/System Tools/CSV Tool.md         |    1 +
 docs/zh/UserGuide/System Tools/NodeTool.md         |   10 +-
 .../client-cpp-example}/README.md                  |   28 +-
 {client-cpp => example}/client-cpp-example/pom.xml |   12 +-
 .../client-cpp-example/src/CMakeLists.txt          |   19 +-
 .../client-cpp-example/src/SessionExample.cpp      |   13 +
 .../main/java/org/apache/iotdb/JDBCExample.java    |   25 +-
 .../apache/iotdb/kafka/KafkaConsumerThread.java    |    1 +
 .../main/java/org/apache/iotdb/SessionExample.java |   40 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |   62 +-
 example/udf/pom.xml                                |   48 +-
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   |    1 +
 hadoop/pom.xml                                     |   47 +-
 .../apache/iotdb/hadoop/fileSystem/HDFSInput.java  |   11 +
 .../apache/iotdb/hadoop/fileSystem/HDFSOutput.java |    6 +
 .../iotdb/hadoop/tsfile/record/HDFSTSRecord.java   |    4 +-
 hive-connector/pom.xml                             |   53 +-
 jdbc/pom.xml                                       |   47 +-
 .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java     |    4 +-
 .../main/java/org/apache/iotdb/jdbc/Activator.java |    2 +
 .../main/java/org/apache/iotdb/jdbc/Config.java    |   20 +-
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |   99 +-
 .../apache/iotdb/jdbc/IoTDBConnectionParams.java   |   18 +
 .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java  |    4 +-
 .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java     |    5 +-
 .../apache/iotdb/jdbc/IoTDBPreparedStatement.java  |    8 +-
 .../java/org/apache/iotdb/jdbc/IoTDBStatement.java |   69 +-
 .../src/main/java/org/apache/iotdb/jdbc/Utils.java |    7 +
 .../test/java/org/apache/iotdb/jdbc/BatchTest.java |    2 +-
 .../org/apache/iotdb/jdbc/IoTDBConnectionTest.java |   16 +-
 .../org/apache/iotdb/jdbc/IoTDBStatementTest.java  |   17 +-
 pom.xml                                            |  119 ++-
 server/file-changelists/TsFileMods-changelist.md   |   11 +
 .../file-changelists/TsFileResource-changelist.md  |    8 +-
 .../system.properties-changelist.md                |    9 +
 server/pom.xml                                     |   19 +
 .../resources/conf/iotdb-engine.properties         |   24 +-
 server/src/assembly/resources/conf/iotdb-env.bat   |    1 -
 server/src/assembly/resources/conf/iotdb-env.sh    |   10 +-
 server/src/assembly/resources/conf/logback.xml     |   69 +-
 .../src/assembly/resources/sbin/start-server.bat   |    4 +-
 server/src/assembly/resources/sbin/start-server.sh |    4 +-
 .../assembly/resources/tools/start-WalChecker.sh   |    2 +-
 .../resources/tools/upgrade/offline-upgrade.bat    |   67 --
 .../iotdb/db/concurrent/WrappedRunnable.java       |    1 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   67 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  207 +++-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |   10 +
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   23 +
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  628 ++++++------
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |    5 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   33 +-
 .../compaction/CompactionMergeTaskPoolManager.java |    2 +-
 .../db/engine/compaction/TsFileManagement.java     |   16 +
 .../level/LevelCompactionTsFileManagement.java     |   77 +-
 .../no/NoCompactionTsFileManagement.java           |    5 +
 .../engine/compaction/utils/CompactionLogger.java  |    2 +-
 .../engine/compaction/utils/CompactionUtils.java   |    8 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |   24 +-
 .../iotdb/db/engine/flush/MemTableFlushTask.java   |  219 +++--
 .../iotdb/db/engine/memtable/AbstractMemTable.java |   80 +-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |   17 +-
 .../db/engine/memtable/PrimitiveMemTable.java      |    8 -
 .../iotdb/db/engine/memtable/WritableMemChunk.java |   18 +-
 .../merge/selector/MaxFileMergeFileSelector.java   |   15 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |  151 ++-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |    6 +-
 .../iotdb/db/engine/merge/task/MergeTask.java      |   33 +-
 .../iotdb/db/engine/modification/Deletion.java     |    8 +-
 .../iotdb/db/engine/modification/Modification.java |   18 +-
 .../db/engine/modification/ModificationFile.java   |    1 +
 .../io/LocalTextModificationAccessor.java          |   10 +-
 .../db/engine/querycontext/ReadOnlyMemChunk.java   |    9 +-
 .../db/engine/storagegroup/StorageGroupInfo.java   |   51 +-
 .../engine/storagegroup/StorageGroupProcessor.java |  868 ++++++++++-------
 .../db/engine/storagegroup/TsFileProcessor.java    |  162 ++--
 .../db/engine/storagegroup/TsFileResource.java     |  393 +++-----
 .../storagegroup/timeindex/DeviceTimeIndex.java    |  308 ++++++
 .../storagegroup/timeindex/FileTimeIndex.java      |  193 ++++
 .../engine/storagegroup/timeindex/ITimeIndex.java  |  138 +++
 .../storagegroup/timeindex/TimeIndexLevel.java}    |   43 +-
 .../virtualSg/HashVirtualPartitioner.java          |   67 ++
 .../virtualSg/VirtualPartitioner.java}             |   26 +-
 .../virtualSg/VirtualStorageGroupManager.java      |  434 +++++++++
 .../iotdb/db/engine/upgrade/UpgradeTask.java       |  108 +--
 .../apache/iotdb/db/exception/IoTDBException.java  |   21 +
 .../db/exception/PartitionViolationException.java  |    8 +-
 ...xception.java => QueryIdNotExsitException.java} |   10 +-
 .../iotdb/db/exception/StorageEngineException.java |    2 +-
 .../db/exception/UDFRegistrationException.java     |    7 +-
 .../iotdb/db/exception/WriteProcessException.java  |    4 +
 .../metadata/AliasAlreadyExistException.java       |    1 +
 ...n.java => IllegalParameterOfPathException.java} |   11 +-
 .../exception/metadata/IllegalPathException.java   |    1 +
 .../db/exception/metadata/MetadataException.java   |    8 +
 .../metadata/PathAlreadyExistException.java        |    1 +
 .../exception/metadata/PathNotExistException.java  |   20 +-
 .../metadata/StorageGroupNotSetException.java      |    5 +
 .../db/exception/query/OutOfTTLException.java      |    2 +-
 .../db/exception/query/QueryProcessException.java  |    6 +-
 .../QueryTimeoutRuntimeException.java}             |   68 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |  138 +--
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  144 ++-
 .../org/apache/iotdb/db/metadata/PartialPath.java  |    1 +
 .../iotdb/db/metadata/logfile/MLogWriter.java      |  148 +--
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   27 +-
 .../iotdb/db/metrics/source/MetricsSource.java     |   10 +
 .../apache/iotdb/db/metrics/ui/MetricsPage.java    |    2 +-
 .../apache/iotdb/db/monitor/MonitorConstants.java  |    5 -
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   20 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |  123 +--
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |    1 +
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |    2 +
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |   16 +
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  158 ++-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |    5 +-
 ...TracingOperator.java => KillQueryOperator.java} |   20 +-
 .../db/qp/logical/sys/RemoveFileOperator.java      |    5 -
 .../db/qp/logical/sys/ShowDevicesOperator.java     |   18 +
 .../iotdb/db/qp/logical/sys/TracingOperator.java   |   10 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |   13 +-
 .../db/qp/physical/crud/InsertMultiTabletPlan.java |  326 +++++++
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |   29 +-
 .../physical/crud/InsertRowsOfOneDevicePlan.java   |  154 +++
 .../db/qp/physical/crud/InsertTabletPlan.java      |   10 +-
 .../iotdb/db/qp/physical/crud/LastQueryPlan.java   |    1 +
 .../apache/iotdb/db/qp/physical/crud/UDFPlan.java  |    3 +-
 .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java |    3 +-
 .../db/qp/physical/sys/AlterTimeSeriesPlan.java    |    2 +-
 .../iotdb/db/qp/physical/sys/AuthorPlan.java       |    2 +-
 .../apache/iotdb/db/qp/physical/sys/CountPlan.java |    1 +
 .../qp/physical/sys/CreateMultiTimeSeriesPlan.java |    6 +-
 .../db/qp/physical/sys/CreateTimeSeriesPlan.java   |   14 +-
 ...howStorageGroupPlan.java => KillQueryPlan.java} |   80 +-
 .../db/qp/physical/sys/ShowChildPathsPlan.java     |    1 +
 .../iotdb/db/qp/physical/sys/ShowDevicesPlan.java  |   13 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |   51 +-
 .../qp/physical/sys/ShowQueryProcesslistPlan.java  |   13 +-
 .../db/qp/physical/sys/ShowStorageGroupPlan.java   |    1 +
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |   56 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |   34 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |    4 +
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |   29 +-
 .../db/qp/{constant => utils}/DatetimeUtils.java   |   12 +-
 .../db/query/aggregation/AggregateResult.java      |    5 +-
 .../db/query/aggregation/impl/AvgAggrResult.java   |   22 +-
 .../db/query/aggregation/impl/SumAggrResult.java   |   20 +-
 .../iotdb/db/query/control/FileReaderManager.java  |   16 +-
 .../iotdb/db/query/control/QueryFileManager.java   |    2 +
 .../db/query/control/QueryResourceManager.java     |    3 +
 .../iotdb/db/query/control/QueryTimeManager.java   |  178 ++++
 .../iotdb/db/query/control/TracingManager.java     |    2 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |    2 +
 .../db/query/dataset/NonAlignEngineDataSet.java    |   18 +-
 .../dataset/RawQueryDataSetWithValueFilter.java    |   68 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |  119 ++-
 .../apache/iotdb/db/query/dataset/ShowDataSet.java |   78 ++
 .../iotdb/db/query/dataset/ShowDevicesDataSet.java |   59 ++
 .../db/query/dataset/ShowTimeseriesDataSet.java    |   47 +-
 .../dataset/UDFInputDataSet.java}                  |   16 +-
 .../db/query/dataset/UDTFAlignByTimeDataSet.java   |    6 +-
 .../apache/iotdb/db/query/dataset/UDTFDataSet.java |    2 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |    8 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |    3 +-
 .../db/query/executor/AggregationExecutor.java     |    4 +-
 .../db/query/executor/RawDataQueryExecutor.java    |    7 +-
 .../db/query/executor/fill/LastPointReader.java    |   36 +-
 .../FixLengthIExternalSortFileDeserializer.java    |    2 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |    7 +
 .../chunk/metadata/MemChunkMetadataLoader.java     |    4 +
 .../query/reader/series/SeriesAggregateReader.java |    1 +
 .../iotdb/db/query/reader/series/SeriesReader.java |   29 +-
 .../reader/universal/DescPriorityMergeReader.java  |    4 +-
 .../reader/universal/PriorityMergeReader.java      |   50 +-
 .../api/customizer/parameter/UDFParameters.java    |    6 +-
 .../strategy/SlidingTimeWindowAccessStrategy.java  |    2 +-
 .../db/query/udf/builtin/BuiltinFunction.java      |   39 +-
 .../iotdb/db/query/udf/builtin/UDTFAbs.java}       |   63 +-
 .../iotdb/db/query/udf/builtin/UDTFAcos.java       |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFAsin.java       |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFAtan.java       |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFBottomK.java    |  106 ++
 .../iotdb/db/query/udf/builtin/UDTFCeil.java       |   14 +-
 .../db/query/udf/builtin/UDTFCommonDerivative.java |   63 ++
 .../udf/builtin/UDTFCommonValueDifference.java     |   61 ++
 .../iotdb/db/query/udf/builtin/UDTFContains.java}  |  118 ++-
 .../apache/iotdb/db/query/udf/builtin/UDTFCos.java |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFDegrees.java    |   14 +-
 .../db/query/udf/builtin/UDTFDerivative.java}      |   45 +-
 .../apache/iotdb/db/query/udf/builtin/UDTFExp.java |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFFloor.java      |   14 +-
 .../apache/iotdb/db/query/udf/builtin/UDTFLog.java |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFLog10.java      |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFMatches.java}   |  119 ++-
 .../iotdb/db/query/udf/builtin/UDTFMath.java}      |  178 ++--
 .../udf/builtin/UDTFNonNegativeDerivative.java     |   63 ++
 .../builtin/UDTFNonNegativeValueDifference.java    |   61 ++
 .../iotdb/db/query/udf/builtin/UDTFRadians.java    |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFRound.java      |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFSelectK.java    |  156 +++
 .../iotdb/db/query/udf/builtin/UDTFSign.java       |   14 +-
 .../apache/iotdb/db/query/udf/builtin/UDTFSin.java |   14 +-
 .../iotdb/db/query/udf/builtin/UDTFSqrt.java       |   14 +-
 .../apache/iotdb/db/query/udf/builtin/UDTFTan.java |   14 +-
 .../db/query/udf/builtin/UDTFTimeDifference.java}  |   40 +-
 .../iotdb/db/query/udf/builtin/UDTFTopK.java       |  104 ++
 .../db/query/udf/builtin/UDTFValueDifference.java} |   45 +-
 .../iotdb/db/query/udf/builtin/UDTFValueTrend.java |   73 ++
 .../iotdb/db/query/udf/core/access/RowImpl.java    |   23 +-
 .../iotdb/db/query/udf/core/input/InputLayer.java  |  122 ++-
 .../iotdb/db/query/udf/core/input/SafetyLine.java  |   40 +-
 .../iotdb/db/query/udf/datastructure/Cache.java    |   99 ++
 .../primitive/ElasticSerializableIntList.java      |   25 +-
 .../row/ElasticSerializableRowRecordList.java      |   69 +-
 .../row/SerializableRowRecordList.java             |   98 +-
 .../tv/ElasticSerializableTVList.java              |   28 +-
 .../query/udf/service/UDFClassLoaderManager.java   |    9 +-
 .../query/udf/service/UDFRegistrationService.java  |   20 +-
 .../apache/iotdb/db/rescon/MemTableManager.java    |   39 +-
 .../iotdb/db/rescon/PrimitiveArrayManager.java     |    2 +-
 .../org/apache/iotdb/db/rescon/SystemInfo.java     |   28 +-
 .../apache/iotdb/db/rescon/TVListAllocator.java    |   14 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |    5 +-
 .../apache/iotdb/db/service/RegisterManager.java   |   17 +-
 .../org/apache/iotdb/db/service/ServiceType.java   |    1 +
 .../org/apache/iotdb/db/service/TSServiceImpl.java | 1006 +++++++++----------
 .../org/apache/iotdb/db/service/UpgradeSevice.java |    3 -
 .../db/sync/receiver/load/FileLoaderManager.java   |    2 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   18 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |   41 +-
 .../apache/iotdb/db/tools/IoTDBDataDirViewer.java  |    4 +-
 .../iotdb/db/tools/TsFileResourcePrinter.java      |   11 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |   54 +-
 .../db/tools/upgrade/TsFileOnlineUpgradeTool.java  |  480 +++------
 .../db/tools/virtualsg/DeviceMappingViewer.java    |   61 ++
 .../watermark/GroupedLSBWatermarkEncoder.java      |    6 +
 .../db/tools/watermark/WatermarkDetector.java      |    2 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |   12 +-
 .../org/apache/iotdb/db/utils/FilePathUtils.java   |   90 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |    2 +-
 .../java/org/apache/iotdb/db/utils/MmapUtil.java   |   19 +-
 .../java/org/apache/iotdb/db/utils/QueryUtils.java |   14 +-
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |    5 +-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |    3 +
 .../org/apache/iotdb/db/utils/UpgradeUtils.java    |  120 ++-
 .../iotdb/db/utils/datastructure/BinaryTVList.java |    4 +
 .../db/utils/datastructure/BooleanTVList.java      |    4 +
 .../iotdb/db/utils/datastructure/DoubleTVList.java |    4 +
 .../iotdb/db/utils/datastructure/FloatTVList.java  |    4 +
 .../iotdb/db/utils/datastructure/IntTVList.java    |    4 +
 .../iotdb/db/utils/datastructure/LongTVList.java   |    4 +
 .../iotdb/db/utils/datastructure/TVList.java       |    1 +
 .../iotdb/db/utils/datastructure/TimeSelector.java |  155 +++
 .../writelog/manager/MultiFileLogNodeManager.java  |   27 +-
 .../db/writelog/manager/WriteLogNodeManager.java   |    7 +-
 .../db/writelog/node/ExclusiveWriteLogNode.java    |   19 +-
 .../iotdb/db/writelog/node/WriteLogNode.java       |    8 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |   26 +-
 .../writelog/recover/TsFileRecoverPerformer.java   |   29 +-
 .../IoTDBDefaultThreadExceptionHandlerTest.java    |    1 +
 .../db/engine/cache/ChunkMetadataCacheTest.java    |    2 +-
 .../db/engine/compaction/CompactionChunkTest.java  |  215 ++++
 .../engine/compaction/LevelCompactionLogTest.java  |    2 +
 .../compaction/LevelCompactionMergeTest.java       |    2 +
 .../compaction/LevelCompactionRecoverTest.java     |   12 +-
 .../compaction/LevelCompactionSelectorTest.java    |    2 +
 .../LevelCompactionTsFileManagementTest.java       |    2 +
 .../NoCompactionTsFileManagementTest.java          |    2 +
 .../db/engine/memtable/PrimitiveMemTableTest.java  |    4 +-
 .../engine/merge/MaxFileMergeFileSelectorTest.java |    4 +-
 .../merge/MaxSeriesMergeFileSelectorTest.java      |    8 +-
 .../apache/iotdb/db/engine/merge/MergeLogTest.java |    2 +
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |    3 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   96 +-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |    3 +
 .../engine/modification/DeletionFileNodeTest.java  |   27 +-
 .../storagegroup/StorageGroupProcessorTest.java    |   42 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |   34 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |   24 +-
 .../virtualSg/HashVirtualPartitionerTest.java      |   64 ++
 .../iotdb/db/integration/IOTDBGroupByIT.java       |    1 -
 .../iotdb/db/integration/IoTDBClearCacheIT.java    |    2 +-
 .../iotdb/db/integration/IoTDBCompleteIT.java      |    5 +
 .../iotdb/db/integration/IoTDBCompressTypeIT.java  |  101 ++
 .../iotdb/db/integration/IoTDBDeletionIT.java      |   39 +
 .../iotdb/db/integration/IoTDBDisableAlignIT.java  |    6 +-
 .../iotdb/db/integration/IoTDBFilePathUtilsIT.java |  109 +++
 .../apache/iotdb/db/integration/IoTDBFillIT.java   |    6 +
 .../db/integration/IoTDBFlushQueryMergeIT.java     |    2 +-
 .../integration/IoTDBGroupByFillWithRangeIT.java   |    3 -
 .../iotdb/db/integration/IoTDBInsertNaNIT.java     |   46 +-
 .../iotdb/db/integration/IoTDBKillQueryTest.java   |   84 ++
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |    1 -
 .../db/integration/IoTDBLevelCompactionIT.java     |    4 -
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |   53 +-
 .../iotdb/db/integration/IoTDBMergeTest.java       |   54 +-
 .../iotdb/db/integration/IoTDBMultiDeviceIT.java   |  322 ++++++
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   26 +-
 .../db/integration/IoTDBNewTsFileCompactionIT.java | 1023 ++++++++++++++++++++
 .../db/integration/IoTDBQueryTimeoutTest.java      |  153 +++
 .../db/integration/IoTDBRemovePartitionIT.java     |  103 ++
 .../iotdb/db/integration/IoTDBRestartIT.java       |   16 +
 .../iotdb/db/integration/IoTDBSensorUpdateIT.java  |    3 -
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   |   87 +-
 .../iotdb/db/integration/IoTDBUDFManagementIT.java |   31 +-
 .../db/integration/IoTDBUDTFBuiltinFunctionIT.java |  250 +++++
 .../db/integration/IoTDBUDTFHybridQueryIT.java     |    6 +-
 .../db/integration/IoTDBUDTFNonAlignQueryIT.java   |    2 +-
 .../aggregation/IoTDBAggregationIT.java            |   24 +-
 .../aggregation/IoTDBAggregationSmallDataIT.java   |    4 +-
 .../db/integration/auth/IoTDBAuthorizationIT.java  |   21 -
 .../iotdb/db/metadata/MManagerBasicTest.java       |   53 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |   56 +-
 .../iotdb/db/monitor/IoTDBStatMonitorTest.java     |  172 ++++
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |   59 +-
 .../qp/{plan => logical}/IndexLogicalPlanTest.java |    2 +-
 .../qp/{plan => logical}/LogicalPlanSmallTest.java |    3 +-
 .../qp/{plan => physical}/ConcatOptimizerTest.java |    3 +-
 .../IndexSubMatchingPhysicalPlanTest.java          |    3 +-
 .../IndexWholeMatchingPhysicalPlanTest.java        |    3 +-
 .../db/qp/physical/InsertTabletMultiPlanTest.java  |   99 ++
 .../iotdb/db/qp/physical/InsertTabletPlanTest.java |  105 ++
 .../db/qp/physical/PhysicalPlanSerializeTest.java  |  305 ++++++
 .../db/qp/{plan => physical}/PhysicalPlanTest.java |    5 +-
 .../qp/{plan => physical}/SerializationTest.java   |    3 +-
 .../db/qp/sql/DatetimeQueryDataSetUtilsTest.java   |  142 ---
 .../IoTDBsqlVisitorTest.java}                      |    4 +-
 .../db/qp/utils/DatetimeQueryDataSetUtilsTest.java |  190 ++++
 .../iotdb/db/query/control/TracingManagerTest.java |   15 +-
 .../iotdb/db/query/dataset/ListDataSetTest.java    |    2 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   22 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |    4 +-
 .../ElasticSerializableRowRecordListTest.java      |   63 +-
 .../ElasticSerializableTVListTest.java             |    2 +
 .../iotdb/db/query/udf/datastructure/LRUCache.java |   59 ++
 .../db/query/udf/datastructure/LRUCacheTest.java   |  115 +++
 .../SerializableBinaryTVListTest.java              |    2 +
 .../SerializableBooleanTVListTest.java             |    2 +
 .../SerializableDoubleTVListTest.java              |    2 +
 .../datastructure/SerializableFloatTVListTest.java |    2 +
 .../datastructure/SerializableIntTVListTest.java   |    2 +
 .../udf/datastructure/SerializableListTest.java    |    2 +
 .../datastructure/SerializableLongTVListTest.java  |    2 +
 .../SerializableRowRecordListTest.java             |   51 +-
 .../iotdb/db/query/udf/example/Accumulator.java    |    8 +-
 .../apache/iotdb/db/query/udf/example/Adder.java   |    8 +-
 .../apache/iotdb/db/query/udf/example/Counter.java |    8 +-
 .../org/apache/iotdb/db/query/udf/example/Max.java |    8 +-
 .../iotdb/db/query/udf/example/Multiplier.java     |    8 +-
 .../SlidingSizeWindowConstructorTester0.java       |    9 +-
 .../SlidingSizeWindowConstructorTester1.java       |    9 +-
 .../SlidingTimeWindowConstructionTester.java       |    9 +-
 .../db/query/udf/example/TerminateTester.java      |    8 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |   43 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |    6 +-
 .../org/apache/iotdb/db/tools/MLogParserTest.java  |   35 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   13 +-
 .../apache/iotdb/db/utils/FilePathUtilsTest.java   |  117 +++
 .../apache/iotdb/db/utils/VersionUtilsTest.java    |   55 --
 .../db/utils/datastructure/PrecisionTest.java      |   22 +-
 .../db/utils/datastructure/TimeSelectorTest.java   |  217 +++++
 .../iotdb/db/writelog/IoTDBLogFileSizeTest.java    |   25 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |   48 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |   63 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |   71 +-
 .../db/writelog/recover/DeviceStringTest.java      |    8 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |   43 +-
 .../recover/RecoverResourceFromReaderTest.java     |   56 +-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |   57 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |   36 +-
 server/src/test/resources/logback.xml              |    1 +
 service-rpc/pom.xml                                |   20 -
 .../org/apache/iotdb/rpc/AutoResizingBuffer.java   |   15 +-
 .../iotdb/rpc/AutoScalingBufferReadTransport.java  |    9 +
 .../iotdb/rpc/AutoScalingBufferWriteTransport.java |    5 +-
 .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java |    5 +-
 .../org/apache/iotdb/rpc/RpcTransportFactory.java  |   14 +-
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |   15 +-
 .../rpc/TCompressedElasticFramedTransport.java     |   48 +-
 .../apache/iotdb/rpc/TElasticFramedTransport.java  |   45 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    2 +
 .../iotdb/rpc/TSnappyElasticFramedTransport.java   |    2 +-
 .../rpc/TimeoutChangeableTFastFramedTransport.java |   13 +-
 .../TimeoutChangeableTSnappyFramedTransport.java   |    2 +
 session/pom.xml                                    |   47 +-
 .../main/java/org/apache/iotdb/session/Config.java |   16 +-
 .../java/org/apache/iotdb/session/Session.java     |  271 +++++-
 .../apache/iotdb/session/SessionConnection.java    |   37 +-
 .../org/apache/iotdb/session/SessionDataSet.java   |   11 +-
 .../iotdb/session/pool/SessionDataSetWrapper.java  |    1 +
 .../org/apache/iotdb/session/pool/SessionPool.java |  147 ++-
 .../iotdb/session/IoTDBSessionComplexIT.java       |    3 +-
 .../iotdb/session/IoTDBSessionIteratorIT.java      |   31 +-
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |  161 ++-
 .../apache/iotdb/session/SessionCacheLeaderUT.java |  769 +++++++++++++++
 .../java/org/apache/iotdb/session/SessionUT.java   |    9 +
 .../apache/iotdb/session/pool/SessionPoolTest.java |   41 +-
 site/src/main/.vuepress/config.js                  |    2 +
 .../apache/iotdb/spark/tsfile/HDFSInputTest.java   |    4 +-
 .../e2e/base/docker-compose.yaml                   |   54 +-
 test/e2e/cases/README.md                           |   53 +
 .../e2e/cases/cli/README.md                        |   12 +-
 .../e2e/cases/cli/cleanup.sh                       |   15 +-
 .../e2e/cases/cli/docker-compose.yaml              |   29 +-
 test/e2e/cases/cli/res/init.sql                    |   26 +
 .../e2e/cases/cli/run.sh                           |   45 +-
 thrift/pom.xml                                     |   20 -
 thrift/rpc-changelist.md                           |   24 +
 thrift/src/main/thrift/cluster.thrift              |    7 +
 thrift/src/main/thrift/rpc.thrift                  |   15 +
 tsfile/format-changelist.md                        |    4 +-
 tsfile/pom.xml                                     |   47 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |    6 +-
 .../apache/iotdb/tsfile/compress/ICompressor.java  |   83 +-
 .../iotdb/tsfile/compress/IUnCompressor.java       |   50 +
 .../iotdb/tsfile/encoding/decoder/Decoder.java     |    8 +-
 .../tsfile/encoding/decoder/FloatDecoder.java      |   11 +-
 .../tsfile/encoding/decoder/IntRleDecoder.java     |   11 +-
 .../tsfile/encoding/decoder/LongRleDecoder.java    |   11 +-
 .../tsfile/encoding/decoder/PlainDecoder.java      |   21 +-
 .../iotdb/tsfile/encoding/decoder/RleDecoder.java  |   15 +-
 .../tsfile/encoding/encoder/FloatEncoder.java      |    6 +-
 .../tsfile/encoding/encoder/IntRleEncoder.java     |    8 +-
 .../tsfile/encoding/encoder/LongRleEncoder.java    |    6 +-
 .../tsfile/encoding/encoder/PlainEncoder.java      |   57 +-
 .../iotdb/tsfile/encoding/encoder/RleEncoder.java  |   20 +-
 .../iotdb/tsfile/encoding/encoder/SDTEncoder.java  |   72 +-
 .../tsfile/encoding/encoder/TSEncodingBuilder.java |   13 +-
 .../write/UnSupportedDataTypeException.java        |    4 +-
 .../org/apache/iotdb/tsfile/file/MetaMarker.java   |   17 +-
 .../iotdb/tsfile/file/footer/ChunkGroupFooter.java |  156 ---
 .../iotdb/tsfile/file/header/ChunkGroupHeader.java |  117 +++
 .../iotdb/tsfile/file/header/ChunkHeader.java      |  151 +--
 .../iotdb/tsfile/file/header/PageHeader.java       |   54 +-
 .../iotdb/tsfile/file/header/package-info.java     |   30 -
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |   36 +-
 .../file/metadata/MetadataIndexConstructor.java    |    5 +-
 .../tsfile/file/metadata/MetadataIndexEntry.java   |    4 +-
 .../tsfile/file/metadata/MetadataIndexNode.java    |   12 +-
 .../tsfile/file/metadata/TimeseriesMetadata.java   |   37 +-
 .../iotdb/tsfile/file/metadata/TsFileMetadata.java |   76 +-
 .../file/metadata/enums/CompressionType.java       |   64 +-
 .../file/metadata/enums/MetadataIndexNodeType.java |   57 +-
 .../tsfile/file/metadata/enums/TSDataType.java     |  113 +--
 .../tsfile/file/metadata/enums/TSEncoding.java     |   94 +-
 .../file/metadata/statistics/BinaryStatistics.java |   13 +-
 .../metadata/statistics/BooleanStatistics.java     |   48 +-
 .../file/metadata/statistics/DoubleStatistics.java |   23 +-
 .../file/metadata/statistics/FloatStatistics.java  |   23 +-
 .../metadata/statistics/IntegerStatistics.java     |   48 +-
 .../file/metadata/statistics/LongStatistics.java   |   31 +-
 .../file/metadata/statistics/Statistics.java       |   22 +-
 .../fileInputFactory/HDFSInputFactory.java         |    1 +
 .../fileInputFactory/LocalFSInputFactory.java      |    1 +
 .../fileOutputFactory/LocalFSOutputFactory.java    |    1 +
 .../tsfile/fileSystem/fsFactory/HDFSFactory.java   |   11 +
 .../fileSystem/fsFactory/LocalFSFactory.java       |   11 +
 .../apache/iotdb/tsfile/read/ReadOnlyTsFile.java   |    1 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  526 ++++++----
 .../apache/iotdb/tsfile/read/common/BatchData.java |    2 +-
 .../org/apache/iotdb/tsfile/read/common/Chunk.java |   99 +-
 .../read/controller/CachedChunkLoaderImpl.java     |    3 +-
 .../iotdb/tsfile/read/reader/LocalTsFileInput.java |   20 +
 .../iotdb/tsfile/read/reader/TsFileInput.java      |    5 +
 .../tsfile/read/reader/chunk/ChunkReader.java      |  105 +-
 .../iotdb/tsfile/read/reader/page/PageReader.java  |   14 +-
 .../reader/series/AbstractFileSeriesReader.java    |    1 +
 .../tsfile/utils/ReadWriteForEncodingUtils.java    |   96 +-
 .../iotdb/tsfile/utils/ReadWriteIOUtils.java       |  103 +-
 .../apache/iotdb/tsfile/utils/VersionUtils.java    |   49 -
 .../v1/file/metadata/ChunkGroupMetaDataV1.java     |  118 ---
 .../tsfile/v1/file/metadata/ChunkMetadataV1.java   |  131 ---
 .../v1/file/metadata/TimeseriesMetadataForV1.java  |   42 -
 .../v1/file/metadata/TsDeviceMetadataIndexV1.java  |   78 --
 .../v1/file/metadata/TsDeviceMetadataV1.java       |   87 --
 .../iotdb/tsfile/v1/file/metadata/TsDigestV1.java  |   75 --
 .../tsfile/v1/file/metadata/TsFileMetadataV1.java  |  106 --
 .../metadata/statistics/BinaryStatisticsV1.java    |   84 --
 .../metadata/statistics/BooleanStatisticsV1.java   |   80 --
 .../metadata/statistics/DoubleStatisticsV1.java    |   79 --
 .../metadata/statistics/FloatStatisticsV1.java     |   79 --
 .../metadata/statistics/IntegerStatisticsV1.java   |   79 --
 .../file/metadata/statistics/LongStatisticsV1.java |   80 --
 .../v1/file/metadata/statistics/StatisticsV1.java  |  225 -----
 .../iotdb/tsfile/v1/file/utils/HeaderUtils.java    |  141 ---
 .../tsfile/v1/read/TsFileSequenceReaderForV1.java  |  409 --------
 .../tsfile/v2/file/footer/ChunkGroupFooterV2.java  |   86 ++
 .../iotdb/tsfile/v2/file/header/ChunkHeaderV2.java |  108 +++
 .../iotdb/tsfile/v2/file/header/PageHeaderV2.java  |   51 +
 .../tsfile/v2/file/metadata/ChunkMetadataV2.java   |   52 +
 .../v2/file/metadata/MetadataIndexEntryV2.java     |   72 +-
 .../v2/file/metadata/MetadataIndexNodeV2.java      |   47 +
 .../v2/file/metadata/TimeseriesMetadataV2.java     |   42 +
 .../tsfile/v2/file/metadata/TsFileMetadataV2.java  |   75 ++
 .../v2/file/metadata/statistics/StatisticsV2.java  |  104 ++
 .../tsfile/v2/read/TsFileSequenceReaderForV2.java  |  581 +++++++++++
 .../tsfile/v2/read/reader/page/PageReaderV2.java   |   85 ++
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |   20 +-
 .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java  |  128 +--
 .../iotdb/tsfile/write/chunk/IChunkWriter.java     |   11 +-
 .../apache/iotdb/tsfile/write/page/PageWriter.java |   30 +-
 .../tsfile/write/schema/MeasurementSchema.java     |   38 +-
 .../write/writer/ForceAppendTsFileWriter.java      |    4 -
 .../tsfile/write/writer/LocalTsFileOutput.java     |    5 +
 .../write/writer/RestorableTsFileIOWriter.java     |    7 +-
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |   77 +-
 .../iotdb/tsfile/write/writer/TsFileOutput.java    |    8 +
 .../org/apache/iotdb/tsfile/compress/GZIPTest.java |   88 ++
 .../tsfile/encoding/decoder/IntRleDecoderTest.java |   83 +-
 .../encoding/decoder/LongRleDecoderTest.java       |   34 +-
 .../regular/RegularDataEncoderIntegerTest.java     |    2 -
 .../regular/RegularDataEncoderLongTest.java        |    2 -
 .../iotdb/tsfile/file/header/PageHeaderTest.java   |    2 +-
 .../metadata/statistics/DoubleStatisticsTest.java  |   10 +-
 .../metadata/statistics/FloatStatisticsTest.java   |   11 +-
 .../metadata/statistics/IntegerStatisticsTest.java |   10 +-
 .../metadata/statistics/LongStatisticsTest.java    |   15 +-
 .../tsfile/file/metadata/utils/TestHelper.java     |    9 -
 .../iotdb/tsfile/file/metadata/utils/Utils.java    |   36 +-
 .../iotdb/tsfile/read/GetAllDevicesTest.java       |   14 +-
 .../org/apache/iotdb/tsfile/read/ReadTest.java     |   22 +-
 .../iotdb/tsfile/read/TimePlainEncodeReadTest.java |    5 -
 .../tsfile/read/TimeSeriesMetadataReadTest.java    |   87 ++
 .../tsfile/read/TsFileSequenceReaderTest.java      |   66 +-
 .../read/query/executor/QueryExecutorTest.java     |   18 +-
 .../iotdb/tsfile/read/reader/PageReaderTest.java   |   59 +-
 .../apache/iotdb/tsfile/utils/BytesUtilsTest.java  |   13 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |   22 +-
 .../utils/ReadWriteForEncodingUtilsTest.java       |   54 ++
 .../tsfile/write/DefaultDeviceTemplateTest.java    |  110 +++
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   26 +-
 .../iotdb/tsfile/write/TsFileWriterTest.java       |    1 -
 .../iotdb/tsfile/write/writer/PageWriterTest.java  |   54 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |   30 +-
 zeppelin-interpreter/pom.xml                       |   51 +-
 .../apache/zeppelin/iotdb/IoTDBInterpreter.java    |  212 ++--
 .../zeppelin/iotdb/IoTDBInterpreterTest.java       |  108 ++-
 711 files changed, 23198 insertions(+), 11237 deletions(-)

diff --cc 
cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
index 3ff7772,8d3a4da..2487249
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
@@@ -40,5 -41,27 +41,27 @@@ public class ClusterConstant 
      // constant class
    }
  
 -  static final String CLUSTER_CONF = "CLUSTER_CONF";
 +  public static final String CLUSTER_CONF = "CLUSTER_CONF";
+ 
+   /**
+    * a failed election will restart in 2s~5s, this should be at least as long 
as a heartbeat
+    * interval, or a stale node may frequently issue elections and thus makes 
the leader step down
+    */
+   public static long getElectionLeastTimeOutMs() {
+     return electionLeastTimeOutMs;
+   }
+ 
+   public static long getElectionRandomTimeOutMs() {
+     return electionRandomTimeOutMs;
+   }
+ 
+   @TestOnly
+   public static void setElectionLeastTimeOutMs(long electionLeastTimeOutMs) {
+     ClusterConstant.electionLeastTimeOutMs = electionLeastTimeOutMs;
+   }
+ 
+   @TestOnly
+   public static void setElectionRandomTimeOutMs(long electionRandomTimeOutMs) 
{
+     ClusterConstant.electionRandomTimeOutMs = electionRandomTimeOutMs;
+   }
  }
diff --cc 
cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index c7c7b77,74b9d3b..aa7ba59
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@@ -263,11 -264,10 +264,11 @@@ public class MetaGroupMember extends Ra
    public MetaGroupMember() {
    }
  
 +
    public MetaGroupMember(TProtocolFactory factory, Node thisNode, Coordinator 
coordinator) throws QueryProcessException {
-     super("Meta", new AsyncClientPool("Meta", new 
AsyncMetaClient.FactoryAsync(factory)),
+     super("Meta", new AsyncClientPool(new 
AsyncMetaClient.FactoryAsync(factory)),
          new SyncClientPool(new SyncMetaClient.FactorySync(factory)),
-         new AsyncClientPool("Meta", new 
AsyncMetaHeartbeatClient.FactoryAsync(factory), false),
+         new AsyncClientPool(new 
AsyncMetaHeartbeatClient.FactoryAsync(factory)),
          new SyncClientPool(new SyncMetaHeartbeatClient.FactorySync(factory)));
      allNodes = new ArrayList<>();
      initPeerMap();
diff --cc 
cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index 23b4f5b,fc83ba4..35742fa
--- 
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
@@@ -1276,28 -1251,13 +1251,12 @@@ public abstract class RaftMember 
      if (ClusterConstant.EMPTY_NODE.equals(node) || node == null) {
        return null;
      }
--
-     AsyncClient client = null;
-     IOException lastException = null;
-     for (int i = 0; i < MAX_RETRY_TIMES_FOR_GET_CLIENT; i++) {
-       try {
-         client = pool.getClient(node);
-         if (!ClientUtils.isClientReady(client)) {
-           Thread.sleep(SYNC_CLIENT_TIMEOUT_MS);
-         } else {
-           return client;
-         }
-       } catch (InterruptedException e) {
-         Thread.currentThread().interrupt();
-         return null;
-       } catch (IOException e) {
-         lastException = e;
-       }
-     }
-     if (logger.isDebugEnabled() && client == null && lastException != null) {
-       logger.debug("{} cannot connect to node {}", name, node, lastException);
+     try {
+       return pool.getClient(node, activatedOnly);
+     } catch (IOException e) {
+       logger.warn("{} cannot connect to node {}", name, node, e);
+       return null;
      }
-     return client;
    }
  
    /**
diff --cc 
cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
index 605aa77,a1e48da..55dbfd6
--- 
a/cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
+++ 
b/cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
@@@ -21,10 -21,9 +21,10 @@@ package org.apache.iotdb.cluster.integr
  
  import java.util.Collections;
  import java.util.List;
- import org.apache.iotdb.cluster.common.EnvironmentUtils;
+ import org.apache.iotdb.db.utils.EnvironmentUtils;
  import org.apache.iotdb.cluster.config.ClusterDescriptor;
  import org.apache.iotdb.cluster.server.MetaClusterServer;
 +import org.apache.iotdb.cluster.utils.Constants;
  import org.apache.iotdb.rpc.IoTDBConnectionException;
  import org.apache.iotdb.session.Session;
  import org.junit.After;
diff --cc 
cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
index cd4df36,b04636b..fdc19ed
--- 
a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
+++ 
b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
@@@ -91,9 -90,9 +90,10 @@@ import org.apache.iotdb.cluster.server.
  import org.apache.iotdb.cluster.server.Response;
  import org.apache.iotdb.cluster.server.handlers.caller.GenericHandler;
  import org.apache.iotdb.cluster.server.heartbeat.DataHeartbeatServer;
+ import org.apache.iotdb.cluster.server.monitor.NodeStatusManager;
  import org.apache.iotdb.cluster.server.service.MetaAsyncService;
  import org.apache.iotdb.cluster.utils.ClusterUtils;
 +import org.apache.iotdb.cluster.utils.Constants;
  import org.apache.iotdb.cluster.utils.StatusUtils;
  import org.apache.iotdb.db.auth.AuthException;
  import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
diff --cc docs/UserGuide/Server/Cluster Setup.md
index 2fcaa5b,2a47ea7..936c1de
--- a/docs/UserGuide/Server/Cluster Setup.md
+++ b/docs/UserGuide/Server/Cluster Setup.md
@@@ -72,13 -72,10 +72,10 @@@ When both exist, the specified configur
  > sed -i -e 's/31999/32000/g'  
cluster\target\cluster-0.11.0-SNAPSHOT\conf\iotdb-env.bat
  > sed -i -e 's/31999/32001/g'  
cluster\target\cluster-0.11.0-SNAPSHOT\conf\iotdb-env.bat
  > nohup cluster\target\cluster-0.11.0-SNAPSHOT\sbin\start-node.bat 
 -> nohup cluster\target\cluster-0.11.0-SNAPSHOT1\sbin\start-node.bat  
-internal_meta_port 9005 -internal_data_port 40012 -cluster_rpc_port 55561
 -> nohup cluster\target\cluster-0.11.0-SNAPSHOT2\sbin\start-node.bat  
-internal_meta_port 9007 -internal_data_port 40014 -cluster_rpc_port 55562
 +> nohup cluster\target\cluster-0.11.0-SNAPSHOT1\sbin\start-node.bat  
-internal_meta_port 9005 -internal_data_port 40012 -cluster_rpc_port 6668
 +> nohup cluster\target\cluster-0.11.0-SNAPSHOT2\sbin\start-node.bat  
-internal_meta_port 9007 -internal_data_port 40014 -cluster_rpc_port 6669
  ```
  
- Note: The distributed version uses the 707 identifier to instruct the client 
to do the appropriate metadata cache so that the data can then be sent directly 
to the leader of the corresponding data group later.
- Therefore, it is recommended to re-install `mvn install -pl jdbc -am 
-Dmaven.test.skip=true` and `mvn install -pl jdbc -am -Dmaven.test.skip=true` 
on current branch to update the latest client.
- 
  ## OverWrite the configurations of Stand-alone node
  
  Some configurations in the iotdb-engines.properties will be ignored
diff --cc docs/zh/UserGuide/Server/Cluster Setup.md
index 8ab0352,f5678e2..04c13f4
--- a/docs/zh/UserGuide/Server/Cluster Setup.md
+++ b/docs/zh/UserGuide/Server/Cluster Setup.md
@@@ -66,13 -66,10 +66,10 @@@ o
  > sed -i -e 's/31999/32000/g'  
cluster\target\cluster-0.11.0-SNAPSHOT\conf\iotdb-env.bat
  > sed -i -e 's/31999/32001/g'  
cluster\target\cluster-0.11.0-SNAPSHOT\conf\iotdb-env.bat
  > nohup cluster\target\cluster-0.11.0-SNAPSHOT\sbin\start-node.bat 
 -> nohup cluster\target\cluster-0.11.0-SNAPSHOT1\sbin\start-node.bat  
-internal_meta_port 9005 -internal_data_port 40012 -cluster_rpc_port 55561
 -> nohup cluster\target\cluster-0.11.0-SNAPSHOT2\sbin\start-node.bat  
-internal_meta_port 9007 -internal_data_port 40014 -cluster_rpc_port 55562
 +> nohup cluster\target\cluster-0.11.0-SNAPSHOT1\sbin\start-node.bat  
-internal_meta_port 9005 -internal_data_port 40012 -cluster_rpc_port 6668
 +> nohup cluster\target\cluster-0.11.0-SNAPSHOT2\sbin\start-node.bat  
-internal_meta_port 9007 -internal_data_port 40014 -cluster_rpc_port 6669
  ```
  
- 注:分布式版使用了707标识符来指示客户端做相应的元数据缓存以便之后能够直接将数据发送给对应数据组的 leader。因此建议在当前分支重新 `mvn 
install -pl jdbc -am -Dmaven.test.skip=true` 和
- `mvn install -pl session -am -Dmaven.test.skip=true`以更新最新的客户端。
- 
  ## 被覆盖的单机版选项
  
  iotdb-engines.properties配置文件中的部分内容会不再生效:
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index a5fe156,988469a..b1c1c95
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@@ -834,11 -849,14 +849,20 @@@ public class IoTDBConfig 
    private boolean debugState = false;
  
    /**
 +   * whether enable the rpc service. This parameter has no a corresponding 
field
 +   * in the iotdb-engine.properties
 +   */
 +  private boolean enableRPCService = true;
 +
++  /**
+    * the size of ioTaskQueue
+    */
+   private int ioTaskQueueSizeForFlushing = 10;
+ 
+   /**
+    * the number of virtual storage groups per user-defined storage group
+    */
+   private int virtualStorageGroupNum = 1;
  
    public IoTDBConfig() {
      // empty constructor
@@@ -2236,11 -2278,11 +2284,20 @@@
      this.mlogBufferSize = mlogBufferSize;
    }
  
++
 +  public boolean isEnableRPCService() {
 +    return enableRPCService;
 +  }
 +
 +  public void setEnableRPCService(boolean enableRPCService) {
 +    this.enableRPCService = enableRPCService;
 +  }
++
+   public int getIoTaskQueueSizeForFlushing() {
+     return ioTaskQueueSizeForFlushing;
+   }
+ 
+   public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
+     this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
+   }
  }
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 76dede8,38a0693..0abb3f7
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@@ -42,6 -45,7 +42,7 @@@ import org.slf4j.LoggerFactory
  public class IoTDBDescriptor {
  
    private static final Logger logger = 
LoggerFactory.getLogger(IoTDBDescriptor.class);
 -  private static CommandLine commandLine;
++
    private IoTDBConfig conf = new IoTDBConfig();
  
    protected IoTDBDescriptor() {
@@@ -57,6 -60,40 +58,10 @@@
      return conf;
    }
  
 -  public void replaceProps(String[] params) {
 -    Options options = new Options();
 -    final String RPC_PORT = "rpc_port";
 -    Option rpcPort = new Option(RPC_PORT, RPC_PORT, true,
 -        "The jdbc service listens on the port");
 -    rpcPort.setRequired(false);
 -    options.addOption(rpcPort);
 -
 -    boolean ok = parseCommandLine(options, params);
 -    if (!ok) {
 -      logger.error("replaces properties failed, use default conf params");
 -    } else {
 -      if (commandLine.hasOption(RPC_PORT)) {
 -        
conf.setRpcPort(Integer.parseInt(commandLine.getOptionValue(RPC_PORT)));
 -        logger.debug("replace rpc port with={}", conf.getRpcPort());
 -      }
 -    }
 -  }
 -
 -  private boolean parseCommandLine(Options options, String[] params) {
 -    try {
 -      CommandLineParser parser = new DefaultParser();
 -      commandLine = parser.parse(options, params);
 -    } catch (ParseException e) {
 -      logger.error("parse conf params failed, {}", e.toString());
 -      return false;
 -    }
 -    return true;
 -  }
 -
+   /**
+    * get props url location
+    * @return url object if location exit, otherwise null.
+    */
    public URL getPropsUrl() {
      // Check if a config-directory was specified first.
      String urlString = System.getProperty(IoTDBConstant.IOTDB_CONF, null);

Reply via email to