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

[iotdb] 01/01: merge with master

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 8d641cd04ac444bcccb694e73b1eaeae41d71471
Merge: 3497395 67b08f9
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Mon Feb 22 21:33:22 2021 +0800

    merge with master

 .git-blame-ignore-revs                             |    4 +
 .github/workflows/client.yml                       |    2 +
 .github/workflows/e2e.yml                          |    4 +-
 .github/workflows/main-linux.yml                   |    7 +-
 .github/workflows/main-mac.yml                     |    2 +
 .github/workflows/main-win.yml                     |    2 +
 README.md                                          |    2 +-
 README_ZH.md                                       |    2 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |  235 +--
 cli/src/main/java/org/apache/iotdb/cli/Cli.java    |   42 +-
 cli/src/main/java/org/apache/iotdb/cli/WinCli.java |   49 +-
 .../org/apache/iotdb/cli/utils/IoTPrinter.java     |   15 +-
 .../apache/iotdb/exception/ArgsErrorException.java |    1 -
 .../org/apache/iotdb/tool/AbstractCsvTool.java     |  108 +-
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |  123 +-
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |  163 +-
 .../java/org/apache/iotdb/cli/AbstractCliIT.java   |  182 ++-
 .../java/org/apache/iotdb/cli/AbstractScript.java  |   18 +-
 .../org/apache/iotdb/cli/StartClientScriptIT.java  |   71 +-
 .../org/apache/iotdb/tool/CsvLineSplitTest.java    |    7 +-
 .../org/apache/iotdb/tool/ExportCsvTestIT.java     |   75 +-
 .../org/apache/iotdb/tool/ImportCsvTestIT.java     |   72 +-
 .../java/org/apache/iotdb/cluster/ClientMain.java  |  206 +--
 .../iotdb/cluster/ClusterFileFlushPolicy.java      |   47 +-
 .../java/org/apache/iotdb/cluster/ClusterMain.java |  163 +-
 .../apache/iotdb/cluster/RemoteTsFileResource.java |   21 +-
 .../iotdb/cluster/client/DataClientProvider.java   |   16 +-
 .../cluster/client/async/AsyncClientFactory.java   |   11 +-
 .../cluster/client/async/AsyncClientPool.java      |   51 +-
 .../cluster/client/async/AsyncDataClient.java      |   36 +-
 .../client/async/AsyncDataHeartbeatClient.java     |   34 +-
 .../cluster/client/async/AsyncMetaClient.java      |   36 +-
 .../client/async/AsyncMetaHeartbeatClient.java     |   35 +-
 .../cluster/client/sync/SyncClientAdaptor.java     |  148 +-
 .../cluster/client/sync/SyncClientFactory.java     |    5 +-
 .../iotdb/cluster/client/sync/SyncClientPool.java  |   38 +-
 .../iotdb/cluster/client/sync/SyncDataClient.java  |   18 +-
 .../client/sync/SyncDataHeartbeatClient.java       |   24 +-
 .../iotdb/cluster/client/sync/SyncMetaClient.java  |    8 +-
 .../client/sync/SyncMetaHeartbeatClient.java       |   24 +-
 .../apache/iotdb/cluster/config/ClusterConfig.java |   60 +-
 .../iotdb/cluster/config/ClusterConstant.java      |    1 +
 .../iotdb/cluster/config/ClusterDescriptor.java    |  234 +--
 .../iotdb/cluster/config/ConsistencyLevel.java     |   12 +-
 .../iotdb/cluster/coordinator/Coordinator.java     |  225 +--
 .../iotdb/cluster/exception/AddSelfException.java  |    4 +-
 .../exception/BadSeedUrlFormatException.java       |    7 +-
 .../exception/CheckConsistencyException.java       |    3 +-
 .../exception/ConfigInconsistentException.java     |    5 +-
 .../cluster/exception/EntryCompactedException.java |   11 +-
 .../exception/EntryUnavailableException.java       |    8 +-
 .../cluster/exception/LeaderUnknownException.java  |    7 +-
 .../cluster/exception/MemberReadOnlyException.java |    9 +-
 .../cluster/exception/NoHeaderNodeException.java   |    4 +-
 .../cluster/exception/NotInSameGroupException.java |   10 +-
 .../cluster/exception/NotManagedSlotException.java |    4 +-
 .../PartitionTableUnavailableException.java        |    4 +-
 .../iotdb/cluster/exception/PullFileException.java |    5 +-
 .../cluster/exception/RequestTimeOutException.java |    4 +-
 .../exception/SnapshotInstallationException.java   |    5 +-
 .../exception/TruncateCommittedEntryException.java |    7 +-
 .../cluster/exception/UnknownLogTypeException.java |    4 +-
 .../iotdb/cluster/log/CommitLogCallback.java       |    1 +
 .../apache/iotdb/cluster/log/CommitLogTask.java    |   11 +-
 .../org/apache/iotdb/cluster/log/HardState.java    |   27 +-
 .../java/org/apache/iotdb/cluster/log/Log.java     |   13 +-
 .../org/apache/iotdb/cluster/log/LogApplier.java   |    9 +-
 .../apache/iotdb/cluster/log/LogDispatcher.java    |  137 +-
 .../org/apache/iotdb/cluster/log/LogParser.java    |    8 +-
 .../org/apache/iotdb/cluster/log/Snapshot.java     |   15 +-
 .../iotdb/cluster/log/StableEntryManager.java      |    2 +-
 .../cluster/log/applier/AsyncDataLogApplier.java   |   55 +-
 .../iotdb/cluster/log/applier/BaseApplier.java     |   18 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |   15 +-
 .../iotdb/cluster/log/applier/MetaLogApplier.java  |    5 +-
 .../iotdb/cluster/log/catchup/CatchUpTask.java     |  103 +-
 .../iotdb/cluster/log/catchup/LogCatchUpTask.java  |   25 +-
 .../cluster/log/catchup/SnapshotCatchUpTask.java   |   33 +-
 .../iotdb/cluster/log/logtypes/AddNodeLog.java     |   11 +-
 .../iotdb/cluster/log/logtypes/CloseFileLog.java   |   29 +-
 .../cluster/log/logtypes/EmptyContentLog.java      |    8 +-
 .../iotdb/cluster/log/logtypes/LargeTestLog.java   |    4 +-
 .../cluster/log/logtypes/PhysicalPlanLog.java      |   31 +-
 .../iotdb/cluster/log/logtypes/RemoveNodeLog.java  |   92 +-
 .../cluster/log/manage/CommittedEntryManager.java  |   48 +-
 .../manage/FilePartitionedSnapshotLogManager.java  |   83 +-
 .../log/manage/MetaSingleSnapshotLogManager.java   |   15 +-
 .../log/manage/PartitionedSnapshotLogManager.java  |   34 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |  313 ++--
 .../log/manage/UnCommittedEntryManager.java        |   59 +-
 .../log/manage/serializable/LogManagerMeta.java    |   21 +-
 .../serializable/SyncLogDequeSerializer.java       |  490 +++---
 .../iotdb/cluster/log/snapshot/FileSnapshot.java   |  174 ++-
 .../cluster/log/snapshot/MetaSimpleSnapshot.java   |   54 +-
 .../cluster/log/snapshot/PartitionedSnapshot.java  |   50 +-
 .../cluster/log/snapshot/PullSnapshotTask.java     |   89 +-
 .../log/snapshot/PullSnapshotTaskDescriptor.java   |   24 +-
 .../cluster/log/snapshot/SnapshotInstaller.java    |    4 +-
 .../log/snapshot/TimeseriesSchemaSnapshot.java     |    3 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |  711 +++++----
 .../apache/iotdb/cluster/metadata/MetaPuller.java  |  144 +-
 .../cluster/partition/NodeAdditionResult.java      |    4 +-
 .../iotdb/cluster/partition/NodeRemovalResult.java |    4 +-
 .../iotdb/cluster/partition/PartitionGroup.java    |   11 +-
 .../iotdb/cluster/partition/PartitionTable.java    |   28 +-
 .../iotdb/cluster/partition/slot/SlotManager.java  |   53 +-
 .../partition/slot/SlotNodeAdditionResult.java     |   12 +-
 .../partition/slot/SlotNodeRemovalResult.java      |    9 +-
 .../cluster/partition/slot/SlotPartitionTable.java |   58 +-
 .../iotdb/cluster/partition/slot/SlotStrategy.java |   13 +-
 .../cluster/query/ClusterConcatPathOptimizer.java  |    3 +-
 .../cluster/query/ClusterDataQueryExecutor.java    |   36 +-
 .../cluster/query/ClusterPhysicalGenerator.java    |   22 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |  270 ++--
 .../iotdb/cluster/query/ClusterPlanRouter.java     |  122 +-
 .../apache/iotdb/cluster/query/ClusterPlanner.java |   17 +-
 .../iotdb/cluster/query/ClusterQueryRouter.java    |   20 +-
 .../iotdb/cluster/query/LocalQueryExecutor.java    |  315 ++--
 .../iotdb/cluster/query/RemoteQueryContext.java    |   17 +-
 .../query/aggregate/ClusterAggregateExecutor.java  |   38 +-
 .../cluster/query/aggregate/ClusterAggregator.java |  161 +-
 .../query/dataset/ClusterAlignByDeviceDataSet.java |   21 +-
 .../cluster/query/fill/ClusterFillExecutor.java    |   19 +-
 .../cluster/query/fill/ClusterLinearFill.java      |   32 +-
 .../cluster/query/fill/ClusterPreviousFill.java    |  144 +-
 .../cluster/query/fill/PreviousFillArguments.java  |   15 +-
 .../iotdb/cluster/query/filter/SlotSgFilter.java   |    8 +-
 .../cluster/query/filter/SlotTsFileFilter.java     |   21 +-
 .../groupby/ClusterGroupByNoVFilterDataSet.java    |   30 +-
 .../groupby/ClusterGroupByVFilterDataSet.java      |   32 +-
 .../query/groupby/MergeGroupByExecutor.java        |   42 +-
 .../query/groupby/RemoteGroupByExecutor.java       |   89 +-
 .../query/last/ClusterLastQueryExecutor.java       |  123 +-
 .../cluster/query/manage/ClusterQueryManager.java  |   29 +-
 .../cluster/query/manage/QueryCoordinator.java     |    8 +-
 .../cluster/query/reader/ClusterReaderFactory.java |  432 ++++--
 .../cluster/query/reader/ClusterTimeGenerator.java |   35 +-
 .../iotdb/cluster/query/reader/DataSourceInfo.java |   55 +-
 .../iotdb/cluster/query/reader/EmptyReader.java    |   19 +-
 .../cluster/query/reader/ManagedMergeReader.java   |    5 +-
 .../cluster/query/reader/MergedReaderByTime.java   |    6 +-
 .../reader/RemoteSeriesReaderByTimestamp.java      |   35 +-
 .../query/reader/RemoteSimpleSeriesReader.java     |   48 +-
 .../apache/iotdb/cluster/server/ClientServer.java  |  111 +-
 .../iotdb/cluster/server/DataClusterServer.java    |  272 ++--
 .../iotdb/cluster/server/HardLinkCleaner.java      |   13 +-
 .../iotdb/cluster/server/MetaClusterServer.java    |   66 +-
 .../cluster/server/PullSnapshotHintService.java    |   20 +-
 .../apache/iotdb/cluster/server/RaftServer.java    |   68 +-
 .../org/apache/iotdb/cluster/server/Response.java  |    1 -
 .../iotdb/cluster/server/StoppedMemberManager.java |   43 +-
 .../handlers/caller/AppendGroupEntryHandler.java   |   30 +-
 .../handlers/caller/AppendNodeEntryHandler.java    |   60 +-
 .../server/handlers/caller/ElectionHandler.java    |   47 +-
 .../server/handlers/caller/GenericHandler.java     |   13 +-
 .../caller/GetChildNodeNextLevelPathHandler.java   |   11 +-
 .../handlers/caller/GetNodesListHandler.java       |    9 +-
 .../caller/GetTimeseriesSchemaHandler.java         |    6 +-
 .../server/handlers/caller/HeartbeatHandler.java   |   56 +-
 .../server/handlers/caller/JoinClusterHandler.java |    4 +-
 .../server/handlers/caller/LogCatchUpHandler.java  |   10 +-
 .../handlers/caller/LogCatchUpInBatchHandler.java  |   39 +-
 .../server/handlers/caller/NodeStatusHandler.java  |    9 +-
 .../handlers/caller/PreviousFillHandler.java       |   11 +-
 .../caller/PullMeasurementSchemaHandler.java       |   14 +-
 .../handlers/caller/PullSnapshotHandler.java       |   29 +-
 .../caller/PullTimeseriesSchemaHandler.java        |   14 +-
 .../handlers/caller/SnapshotCatchUpHandler.java    |   11 +-
 .../server/handlers/caller/package-info.java       |    5 +-
 .../handlers/forwarder/ForwardPlanHandler.java     |    6 +-
 .../server/heartbeat/DataHeartbeatServer.java      |   25 +-
 .../server/heartbeat/DataHeartbeatThread.java      |   14 +-
 .../cluster/server/heartbeat/HeartbeatServer.java  |   74 +-
 .../cluster/server/heartbeat/HeartbeatThread.java  |  135 +-
 .../server/heartbeat/MetaHeartbeatServer.java      |   31 +-
 .../server/heartbeat/MetaHeartbeatThread.java      |    1 +
 .../cluster/server/member/DataGroupMember.java     |  248 ++--
 .../cluster/server/member/MetaGroupMember.java     |  365 +++--
 .../server/member/MetaGroupMemberMBean.java        |    4 +-
 .../iotdb/cluster/server/member/RaftMember.java    |  519 ++++---
 .../cluster/server/member/RaftMemberMBean.java     |   11 +-
 .../iotdb/cluster/server/member/package-info.java  |    6 +-
 .../iotdb/cluster/server/monitor/NodeReport.java   |  207 ++-
 .../iotdb/cluster/server/monitor/NodeStatus.java   |   18 +-
 .../cluster/server/monitor/NodeStatusManager.java  |   19 +-
 .../apache/iotdb/cluster/server/monitor/Timer.java |  209 ++-
 .../cluster/server/service/BaseAsyncService.java   |   35 +-
 .../cluster/server/service/BaseSyncService.java    |   19 +-
 .../cluster/server/service/DataAsyncService.java   |  150 +-
 .../cluster/server/service/DataSyncService.java    |   39 +-
 .../cluster/server/service/MetaAsyncService.java   |   23 +-
 .../cluster/server/service/MetaSyncService.java    |    5 +-
 .../iotdb/cluster/server/service/package-info.java |    2 +-
 .../apache/iotdb/cluster/utils/ClientUtils.java    |    2 +-
 .../iotdb/cluster/utils/ClusterConsistent.java     |    8 +-
 .../apache/iotdb/cluster/utils/ClusterNode.java    |   31 +-
 .../iotdb/cluster/utils/ClusterQueryUtils.java     |   18 +-
 .../apache/iotdb/cluster/utils/ClusterUtils.java   |  153 +-
 .../org/apache/iotdb/cluster/utils/IOUtils.java    |    5 +-
 .../apache/iotdb/cluster/utils/PartitionUtils.java |   69 +-
 .../apache/iotdb/cluster/utils/PlanSerializer.java |   10 +-
 .../apache/iotdb/cluster/utils/StatusUtils.java    |   14 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |   33 +-
 .../utils/nodetool/ClusterMonitorMBean.java        |   22 +-
 .../iotdb/cluster/utils/nodetool/NodeTool.java     |   20 +-
 .../iotdb/cluster/utils/nodetool/Printer.java      |   10 +-
 .../cluster/utils/nodetool/function/Host.java      |   21 +-
 .../cluster/utils/nodetool/function/LogView.java   |   26 +-
 .../utils/nodetool/function/NodeToolCmd.java       |   63 +-
 .../cluster/utils/nodetool/function/Partition.java |   53 +-
 .../cluster/utils/nodetool/function/Ring.java      |   15 +-
 .../cluster/utils/nodetool/function/Status.java    |   22 +-
 .../cluster/client/DataClientProviderTest.java     |   35 +-
 .../cluster/client/async/AsyncClientPoolTest.java  |   88 +-
 .../cluster/client/async/AsyncDataClientTest.java  |   49 +-
 .../client/async/AsyncDataHeartbeatClientTest.java |    9 +-
 .../cluster/client/async/AsyncMetaClientTest.java  |   49 +-
 .../client/async/AsyncMetaHeartbeatClientTest.java |   10 +-
 .../cluster/client/sync/SyncClientAdaptorTest.java |  564 +++----
 .../cluster/client/sync/SyncClientPoolTest.java    |   63 +-
 .../cluster/client/sync/SyncDataClientTest.java    |   56 +-
 .../client/sync/SyncDataHeartbeatClientTest.java   |   29 +-
 .../cluster/client/sync/SyncMetaClientTest.java    |   38 +-
 .../client/sync/SyncMetaHeartbeatClientTest.java   |   29 +-
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |   47 +-
 .../iotdb/cluster/common/TestAsyncClient.java      |    9 +-
 .../cluster/common/TestAsyncClientFactory.java     |   13 +-
 .../iotdb/cluster/common/TestAsyncDataClient.java  |  208 ++-
 .../iotdb/cluster/common/TestAsyncMetaClient.java  |   11 +-
 .../iotdb/cluster/common/TestDataGroupMember.java  |    5 +-
 .../org/apache/iotdb/cluster/common/TestLog.java   |    6 +-
 .../iotdb/cluster/common/TestLogApplier.java       |    7 +-
 .../iotdb/cluster/common/TestLogManager.java       |    9 +-
 .../cluster/common/TestManagedSeriesReader.java    |    4 +-
 .../iotdb/cluster/common/TestMetaGroupMember.java  |    7 +-
 .../cluster/common/TestPartitionedLogManager.java  |   33 +-
 .../apache/iotdb/cluster/common/TestSnapshot.java  |   12 +-
 .../iotdb/cluster/common/TestSyncClient.java       |    2 +-
 .../cluster/common/TestSyncClientFactory.java      |   62 +-
 .../org/apache/iotdb/cluster/common/TestUtils.java |   98 +-
 .../cluster/integration/BaseSingleNodeTest.java    |   15 +-
 .../iotdb/cluster/integration/SingleNodeTest.java  |   34 +-
 .../iotdb/cluster/log/CommitLogCallbackTest.java   |   20 +-
 .../iotdb/cluster/log/CommitLogTaskTest.java       |   33 +-
 .../apache/iotdb/cluster/log/HardStateTest.java    |   16 +-
 .../iotdb/cluster/log/LogDispatcherTest.java       |  120 +-
 .../apache/iotdb/cluster/log/LogParserTest.java    |   10 +-
 .../log/applier/AsyncDataLogApplierTest.java       |  140 +-
 .../cluster/log/applier/DataLogApplierTest.java    |  229 +--
 .../cluster/log/applier/MetaLogApplierTest.java    |   66 +-
 .../iotdb/cluster/log/catchup/CatchUpTaskTest.java |  141 +-
 .../cluster/log/catchup/LogCatchUpTaskTest.java    |  158 +-
 .../log/catchup/SnapshotCatchUpTaskTest.java       |  150 +-
 .../cluster/log/logtypes/SerializeLogTest.java     |   56 +-
 .../log/manage/CommittedEntryManagerTest.java      |  942 +++++++-----
 .../FilePartitionedSnapshotLogManagerTest.java     |   33 +-
 .../manage/MetaSingleSnapshotLogManagerTest.java   |   21 +-
 .../cluster/log/manage/RaftLogManagerTest.java     | 1385 +++++++++++------
 .../log/manage/UnCommittedEntryManagerTest.java    |  695 ++++++---
 .../serializable/SyncLogDequeSerializerTest.java   |  155 +-
 .../cluster/log/snapshot/DataSnapshotTest.java     |  173 +--
 .../cluster/log/snapshot/FileSnapshotTest.java     |  106 +-
 .../log/snapshot/MetaSimpleSnapshotTest.java       |   42 +-
 .../log/snapshot/PartitionedSnapshotTest.java      |   47 +-
 .../snapshot/PullSnapshotTaskDescriptorTest.java   |   12 +-
 .../cluster/log/snapshot/PullSnapshotTaskTest.java |  249 ++--
 .../iotdb/cluster/log/snapshot/SimpleSnapshot.java |   20 +-
 .../iotdb/cluster/partition/MManagerWhiteBox.java  |   19 +-
 .../iotdb/cluster/partition/SlotManagerTest.java   |   74 +-
 .../cluster/partition/SlotPartitionTableTest.java  |  291 ++--
 .../apache/iotdb/cluster/query/BaseQueryTest.java  |   41 +-
 .../query/ClusterAggregateExecutorTest.java        |   93 +-
 .../query/ClusterDataQueryExecutorTest.java        |   20 +-
 .../cluster/query/ClusterFillExecutorTest.java     |   79 +-
 .../query/ClusterPhysicalGeneratorTest.java        |   18 +-
 .../cluster/query/ClusterPlanExecutorTest.java     |   19 +-
 .../iotdb/cluster/query/ClusterPlannerTest.java    |   12 +-
 .../cluster/query/ClusterQueryRouterTest.java      |  147 +-
 .../iotdb/cluster/query/LoadConfigurationTest.java |  248 ++--
 .../ClusterGroupByNoVFilterDataSetTest.java        |   29 +-
 .../groupby/ClusterGroupByVFilterDataSetTest.java  |   39 +-
 .../query/groupby/MergeGroupByExecutorTest.java    |   40 +-
 .../query/groupby/RemoteGroupByExecutorTest.java   |   55 +-
 .../query/manage/ClusterQueryManagerTest.java      |  226 ++-
 .../cluster/query/manage/QueryCoordinatorTest.java |   75 +-
 .../query/reader/ClusterTimeGeneratorTest.java     |   27 +-
 .../cluster/query/reader/DatasourceInfoTest.java   |   34 +-
 .../reader/RemoteSeriesReaderByTimestampTest.java  |  146 +-
 .../query/reader/RemoteSimpleSeriesReaderTest.java |  108 +-
 .../caller/AppendGroupEntryHandlerTest.java        |   67 +-
 .../caller/AppendNodeEntryHandlerTest.java         |   24 +-
 .../handlers/caller/ElectionHandlerTest.java       |   86 +-
 .../server/handlers/caller/GenericHandlerTest.java |   13 +-
 .../handlers/caller/HeartbeatHandlerTest.java      |   40 +-
 .../handlers/caller/JoinClusterHandlerTest.java    |   13 +-
 .../handlers/caller/LogCatchUpHandlerTest.java     |   18 +-
 .../caller/PullMeasurementSchemaHandlerTest.java   |   61 +-
 .../handlers/caller/PullSnapshotHandlerTest.java   |   41 +-
 .../caller/SnapshotCatchUpHandlerTest.java         |   13 +-
 .../handlers/forwarder/ForwardPlanHandlerTest.java |   12 +-
 .../server/heartbeat/DataHeartbeatThreadTest.java  |   90 +-
 .../server/heartbeat/HeartbeatThreadTest.java      |  105 +-
 .../server/heartbeat/MetaHeartbeatThreadTest.java  |  204 +--
 .../cluster/server/member/DataGroupMemberTest.java |  513 ++++---
 .../iotdb/cluster/server/member/MemberTest.java    |  297 ++--
 .../cluster/server/member/MetaGroupMemberTest.java |  758 +++++-----
 .../iotdb/cluster/utils/SerializeUtilTest.java     |   34 +-
 code-coverage/pom.xml                              |    1 +
 compile-tools/thrift/pom.xml                       |    2 +
 cross-tests/pom.xml                                |   28 +
 .../tests/tools/importCsv/AbstractScript.java      |   33 +-
 .../tests/tools/importCsv/ExportCsvTestIT.java     |  110 +-
 .../tests/tools/importCsv/ImportCsvTestIT.java     |  143 +-
 docs/Development/ContributeGuide.md                |   15 +
 docs/UserGuide/Client/Programming - JDBC.md        |    2 +-
 docs/UserGuide/Client/Programming - Native API.md  |    2 +-
 docs/UserGuide/Comparison/TSDB-Comparison.md       |  107 +-
 .../Operation Manual/UDF User Defined Function.md  |    6 +-
 docs/UserGuide/Server/Download.md                  |    2 +-
 docs/zh/Development/ContributeGuide.md             |   13 +
 docs/zh/SystemDesign/DataQuery/AggregationQuery.md |    2 +-
 docs/zh/UserGuide/Client/Programming - JDBC.md     |    2 +-
 .../UserGuide/Client/Programming - Native API.md   |    2 +-
 .../Operation Manual/UDF User Defined Function.md  |    6 +-
 docs/zh/UserGuide/Server/Config Manual.md          |   30 +-
 docs/zh/UserGuide/Server/Download.md               |    2 +-
 .../org/apache/iotdb/flink/FlinkIoTDBSink.java     |  104 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSink.java   |  153 +-
 .../apache/iotdb/flink/FlinkTsFileBatchSource.java |   88 +-
 .../apache/iotdb/flink/FlinkTsFileStreamSink.java  |  155 +-
 .../iotdb/flink/FlinkTsFileStreamSource.java       |   90 +-
 .../java/org/apache/iotdb/flink/TsFileUtils.java   |   30 +-
 .../org/apache/iotdb/hadoop/tsfile/Constant.java   |    5 +-
 .../iotdb/hadoop/tsfile/TSFMRReadExample.java      |   30 +-
 .../iotdb/hadoop/tsfile/TSMRWriteExample.java      |   67 +-
 .../apache/iotdb/hadoop/tsfile/TsFileHelper.java   |   33 +-
 .../iotdb/hadoop/tsfile/TsFileWriteToHDFS.java     |   13 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    |   28 +-
 .../org/apache/iotdb/PrepareStatementDemo.java     |   17 +-
 .../main/java/org/apache/iotdb/kafka/Constant.java |   57 +-
 .../java/org/apache/iotdb/kafka/KafkaConsumer.java |   38 +-
 .../apache/iotdb/kafka/KafkaConsumerThread.java    |   37 +-
 .../java/org/apache/iotdb/kafka/KafkaProducer.java |    9 +-
 .../java/org/apache/iotdb/mqtt/MQTTClient.java     |   41 +-
 .../java/org/apache/iotdb/pulsar/Constant.java     |    4 +-
 .../org/apache/iotdb/pulsar/PulsarConsumer.java    |   57 +-
 .../apache/iotdb/pulsar/PulsarConsumerThread.java  |   26 +-
 .../org/apache/iotdb/pulsar/PulsarProducer.java    |   72 +-
 .../java/org/apache/iotdb/rocketmq/Constant.java   |   55 +-
 .../apache/iotdb/rocketmq/RocketMQConsumer.java    |   77 +-
 .../apache/iotdb/rocketmq/RocketMQProducer.java    |   42 +-
 .../main/java/org/apache/iotdb/rocketmq/Utils.java |    3 +-
 .../org/apache/iotdb/DataMigrationExample.java     |   45 +-
 .../main/java/org/apache/iotdb/SessionExample.java |   88 +-
 .../java/org/apache/iotdb/SessionPoolExample.java  |   86 +-
 .../java/org/apache/iotdb/tsfile/Constant.java     |    5 +-
 .../iotdb/tsfile/TsFileForceAppendWrite.java       |   27 +-
 .../java/org/apache/iotdb/tsfile/TsFileRead.java   |   29 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |   56 +-
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   20 +-
 .../apache/iotdb/tsfile/TsFileWriteWithTablet.java |   20 +-
 example/udf/pom.xml                                |   26 +
 .../java/org/apache/iotdb/udf/UDTFExample.java     |  113 +-
 .../iotdb/flink/DefaultIoTSerializationSchema.java |    3 +-
 .../main/java/org/apache/iotdb/flink/Event.java    |   13 +-
 .../java/org/apache/iotdb/flink/IoTDBOptions.java  |  210 +--
 .../java/org/apache/iotdb/flink/IoTDBSink.java     |   72 +-
 .../apache/iotdb/flink/IoTSerializationSchema.java |    7 +-
 .../flink/DefaultIoTSerializationSchemaTest.java   |   48 +-
 .../iotdb/flink/IoTDBSinkBatchInsertTest.java      |   26 +-
 .../iotdb/flink/IoTDBSinkBatchTimerTest.java       |   21 +-
 .../apache/iotdb/flink/IoTDBSinkInsertTest.java    |   19 +-
 .../apache/iotdb/flink/tsfile/RowRecordParser.java |   29 +-
 .../iotdb/flink/tsfile/RowRowRecordParser.java     |  168 +--
 .../iotdb/flink/tsfile/RowTSRecordConverter.java   |  234 +--
 .../iotdb/flink/tsfile/TSRecordConverter.java      |   55 +-
 .../iotdb/flink/tsfile/TSRecordOutputFormat.java   |  128 +-
 .../iotdb/flink/tsfile/TsFileInputFormat.java      |  250 ++--
 .../iotdb/flink/tsfile/TsFileOutputFormat.java     |  181 +--
 .../iotdb/flink/tsfile/util/TSFileConfigUtil.java  |   76 +-
 .../tsfile/RowTSRecordOutputFormatITCase.java      |   46 +-
 .../flink/tsfile/RowTSRecordOutputFormatTest.java  |   74 +-
 .../flink/tsfile/RowTsFileConnectorTestBase.java   |   86 +-
 .../flink/tsfile/RowTsFileInputFormatITCase.java   |  129 +-
 .../flink/tsfile/RowTsFileInputFormatTest.java     |   94 +-
 .../flink/tsfile/RowTsFileInputFormatTestBase.java |   43 +-
 .../tsfile/RowTsFileOutputFormatTestBase.java      |  139 +-
 .../util/TSFileConfigUtilCompletenessTest.java     |   90 +-
 .../apache/iotdb/flink/util/TsFileWriteUtil.java   |   25 +-
 grafana/pom.xml                                    |    1 +
 .../web/grafana/TsfileWebDemoApplication.java      |    2 +-
 .../apache/iotdb/web/grafana/bean/TimeValues.java  |    4 +-
 .../iotdb/web/grafana/conf/MyConfiguration.java    |   10 +-
 .../controller/DatabaseConnectController.java      |   45 +-
 .../org/apache/iotdb/web/grafana/dao/BasicDao.java |   10 +-
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   |   97 +-
 .../grafana/service/DatabaseConnectService.java    |    6 +-
 .../service/impl/DatabaseConnectServiceImpl.java   |   10 +-
 .../web/grafana/dao/impl/BasicDaoImplTest.java     |   41 +-
 .../iotdb/hadoop/fileSystem/HDFSConfUtil.java      |   41 +-
 .../apache/iotdb/hadoop/fileSystem/HDFSFile.java   |   32 +-
 .../apache/iotdb/hadoop/fileSystem/HDFSInput.java  |   14 +-
 .../apache/iotdb/hadoop/fileSystem/HDFSOutput.java |   12 +-
 .../org/apache/iotdb/hadoop/tsfile/IReaderSet.java |    4 +-
 .../iotdb/hadoop/tsfile/TSFHadoopException.java    |    6 +-
 .../apache/iotdb/hadoop/tsfile/TSFInputFormat.java |   78 +-
 .../apache/iotdb/hadoop/tsfile/TSFInputSplit.java  |    6 +-
 .../iotdb/hadoop/tsfile/TSFOutputFormat.java       |    9 +-
 .../iotdb/hadoop/tsfile/TSFRecordReader.java       |  112 +-
 .../iotdb/hadoop/tsfile/TSFRecordWriter.java       |   13 +-
 .../iotdb/hadoop/tsfile/record/HDFSTSRecord.java   |   21 +-
 .../apache/iotdb/hadoop/tsfile/TSFHadoopTest.java  |   23 +-
 .../iotdb/hadoop/tsfile/TSFInputSplitTest.java     |    6 +-
 .../iotdb/hadoop/tsfile/TsFileTestHelper.java      |   16 +-
 .../iotdb/hadoop/tsfile/constant/TestConstant.java |    5 +-
 .../org/apache/iotdb/hive/TSFHiveInputFormat.java  |   10 +-
 .../org/apache/iotdb/hive/TSFHiveOutputFormat.java |   34 +-
 .../org/apache/iotdb/hive/TSFHiveRecordReader.java |   59 +-
 .../org/apache/iotdb/hive/TSFHiveRecordWriter.java |   24 +-
 .../org/apache/iotdb/hive/TsFileDeserializer.java  |   84 +-
 .../java/org/apache/iotdb/hive/TsFileSerDe.java    |   51 +-
 .../apache/iotdb/hive/TSFHiveInputFormatTest.java  |   14 +-
 .../apache/iotdb/hive/TSFHiveRecordReaderTest.java |   88 +-
 .../apache/iotdb/hive/TsFileDeserializerTest.java  |   22 +-
 .../org/apache/iotdb/hive/TsFileSerDeTest.java     |   17 +-
 .../org/apache/iotdb/hive/TsFileTestHelper.java    |   25 +-
 .../apache/iotdb/hive/constant/TestConstant.java   |    5 +-
 jdbc/README.md                                     |    2 +-
 .../iotdb/jdbc/AbstractIoTDBJDBCResultSet.java     |   52 +-
 .../main/java/org/apache/iotdb/jdbc/Activator.java |    4 +-
 .../main/java/org/apache/iotdb/jdbc/Config.java    |   23 +-
 .../main/java/org/apache/iotdb/jdbc/Constant.java  |    2 +-
 .../org/apache/iotdb/jdbc/IoTDBConnection.java     |  102 +-
 .../org/apache/iotdb/jdbc/IoTDBDataSource.java     |   15 +-
 .../apache/iotdb/jdbc/IoTDBDataSourceFactory.java  |    4 +-
 .../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java   |   78 +-
 .../java/org/apache/iotdb/jdbc/IoTDBDriver.java    |   17 +-
 .../org/apache/iotdb/jdbc/IoTDBJDBCResultSet.java  |   37 +-
 .../iotdb/jdbc/IoTDBNonAlignJDBCResultSet.java     |   60 +-
 .../apache/iotdb/jdbc/IoTDBPreparedStatement.java  |   71 +-
 .../org/apache/iotdb/jdbc/IoTDBResultMetadata.java |   22 +-
 .../org/apache/iotdb/jdbc/IoTDBSQLException.java   |    4 +-
 .../java/org/apache/iotdb/jdbc/IoTDBStatement.java |  213 ++-
 .../src/main/java/org/apache/iotdb/jdbc/Utils.java |   15 +-
 .../test/java/org/apache/iotdb/jdbc/BatchTest.java |   97 +-
 .../org/apache/iotdb/jdbc/IoTDBConnectionTest.java |   45 +-
 .../apache/iotdb/jdbc/IoTDBJDBCResultSetTest.java  |  198 +--
 .../iotdb/jdbc/IoTDBPreparedStatementTest.java     |  182 +--
 .../apache/iotdb/jdbc/IoTDBResultMetadataTest.java |   37 +-
 .../org/apache/iotdb/jdbc/IoTDBStatementTest.java  |   27 +-
 .../test/java/org/apache/iotdb/jdbc/UtilsTest.java |   24 +-
 pom.xml                                            |   35 +-
 .../org/apache/iotdb/db/auth/AuthException.java    |    5 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |   22 +-
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |   84 +-
 .../iotdb/db/auth/authorizer/IAuthorizer.java      |   75 +-
 .../db/auth/authorizer/LocalFileAuthorizer.java    |    8 +-
 .../iotdb/db/auth/authorizer/OpenIdAuthorizer.java |  396 ++---
 .../apache/iotdb/db/auth/entity/PathPrivilege.java |   15 +-
 .../apache/iotdb/db/auth/entity/PrivilegeType.java |   30 +-
 .../java/org/apache/iotdb/db/auth/entity/Role.java |   18 +-
 .../java/org/apache/iotdb/db/auth/entity/User.java |   37 +-
 .../iotdb/db/auth/role/BasicRoleManager.java       |    9 +-
 .../apache/iotdb/db/auth/role/IRoleAccessor.java   |   21 +-
 .../apache/iotdb/db/auth/role/IRoleManager.java    |   42 +-
 .../iotdb/db/auth/role/LocalFileRoleAccessor.java  |   90 +-
 .../iotdb/db/auth/user/BasicUserManager.java       |   22 +-
 .../apache/iotdb/db/auth/user/IUserAccessor.java   |   21 +-
 .../apache/iotdb/db/auth/user/IUserManager.java    |   47 +-
 .../iotdb/db/auth/user/LocalFileUserAccessor.java  |  100 +-
 .../org/apache/iotdb/db/concurrent/HashLock.java   |    7 +-
 .../IoTDBDefaultThreadExceptionHandler.java        |    5 +-
 .../db/concurrent/IoTDBThreadPoolFactory.java      |   65 +-
 .../iotdb/db/concurrent/IoTThreadFactory.java      |    4 +-
 .../iotdb/db/concurrent/WrappedRunnable.java       |    3 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  624 +++-----
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  189 ++-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |   15 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 1027 ++++++++-----
 .../iotdb/db/conf/ServerConfigConsistent.java      |    7 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |   70 +-
 .../db/conf/directories/DirectoryManager.java      |   39 +-
 .../directories/strategy/DirectoryStrategy.java    |   15 +-
 .../strategy/MaxDiskUsableSpaceFirstStrategy.java  |    4 +-
 .../MinFolderOccupiedSpaceFirstStrategy.java       |    3 +-
 .../strategy/RandomOnDiskUsableSpaceStrategy.java  |   12 +-
 .../directories/strategy/SequenceStrategy.java     |    3 +-
 .../db/cost/statistic/ConcurrentCircularArray.java |    6 +-
 .../iotdb/db/cost/statistic/Measurement.java       |  117 +-
 .../iotdb/db/cost/statistic/MeasurementMBean.java  |   24 +-
 .../apache/iotdb/db/cost/statistic/Operation.java  |    1 -
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  297 ++--
 .../iotdb/db/engine/cache/AccountableString.java   |    3 +-
 .../db/engine/cache/CacheHitRatioMonitor.java      |    5 +-
 .../engine/cache/CacheHitRatioMonitorMXBean.java   |    3 -
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |   80 +-
 .../iotdb/db/engine/cache/ChunkMetadataCache.java  |  118 +-
 .../iotdb/db/engine/cache/LRULinkedHashMap.java    |   27 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |  153 +-
 .../compaction/CompactionMergeTaskPoolManager.java |   56 +-
 .../db/engine/compaction/TsFileManagement.java     |  165 +-
 .../level/LevelCompactionTsFileManagement.java     |  362 +++--
 .../no/NoCompactionTsFileManagement.java           |   35 +-
 .../compaction/utils/CompactionLogAnalyzer.java    |   14 +-
 .../engine/compaction/utils/CompactionLogger.java  |   12 +-
 .../engine/compaction/utils/CompactionUtils.java   |  248 ++--
 .../db/engine/fileSystem/SystemFileFactory.java    |   10 +-
 .../iotdb/db/engine/flush/FlushListener.java       |    3 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |   32 +-
 .../iotdb/db/engine/flush/MemTableFlushTask.java   |  328 ++--
 .../iotdb/db/engine/flush/NotifyFlushMemTable.java |    4 +-
 .../iotdb/db/engine/flush/TsFileFlushPolicy.java   |    4 +-
 .../db/engine/flush/pool/AbstractPoolManager.java  |   13 +-
 .../engine/flush/pool/FlushSubTaskPoolManager.java |   15 +-
 .../db/engine/flush/pool/FlushTaskPoolManager.java |    7 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |  107 +-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |   77 +-
 .../db/engine/memtable/IWritableMemChunk.java      |   31 +-
 .../db/engine/memtable/PrimitiveMemTable.java      |   11 +-
 .../iotdb/db/engine/memtable/WritableMemChunk.java |    6 +-
 .../iotdb/db/engine/merge/manage/MergeContext.java |   18 +-
 .../iotdb/db/engine/merge/manage/MergeFuture.java  |   10 +-
 .../iotdb/db/engine/merge/manage/MergeManager.java |  111 +-
 .../db/engine/merge/manage/MergeResource.java      |   60 +-
 .../db/engine/merge/manage/MergeThreadPool.java    |   16 +-
 .../apache/iotdb/db/engine/merge/package-info.java |    8 +-
 .../iotdb/db/engine/merge/recover/LogAnalyzer.java |  106 +-
 .../iotdb/db/engine/merge/recover/MergeLogger.java |   11 +-
 .../merge/selector/IFileQueryMemMeasurement.java   |    3 +-
 .../engine/merge/selector/IMergeFileSelector.java  |    7 +-
 .../engine/merge/selector/IMergePathSelector.java  |   11 +-
 .../merge/selector/MaxFileMergeFileSelector.java   |  109 +-
 .../merge/selector/MaxSeriesMergeFileSelector.java |   29 +-
 .../engine/merge/selector/NaivePathSelector.java   |    9 +-
 .../iotdb/db/engine/merge/task/MergeCallback.java  |   14 +-
 .../iotdb/db/engine/merge/task/MergeFileTask.java  |  107 +-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |  229 ++-
 .../iotdb/db/engine/merge/task/MergeTask.java      |   85 +-
 .../db/engine/merge/task/RecoverMergeTask.java     |  133 +-
 .../iotdb/db/engine/modification/Deletion.java     |   14 +-
 .../iotdb/db/engine/modification/Modification.java |   14 +-
 .../db/engine/modification/ModificationFile.java   |   30 +-
 .../io/LocalTextModificationAccessor.java          |   60 +-
 .../engine/modification/io/ModificationReader.java |   11 +-
 .../engine/modification/io/ModificationWriter.java |   16 +-
 .../iotdb/db/engine/modification/package-info.java |    6 +-
 .../db/engine/querycontext/QueryDataSource.java    |   19 +-
 .../db/engine/querycontext/ReadOnlyMemChunk.java   |   34 +-
 .../db/engine/storagegroup/StorageGroupInfo.java   |   34 +-
 .../engine/storagegroup/StorageGroupProcessor.java | 1491 +++++++++++--------
 .../iotdb/db/engine/storagegroup/TsFileLock.java   |   39 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |  565 ++++---
 .../engine/storagegroup/TsFileProcessorInfo.java   |   25 +-
 .../db/engine/storagegroup/TsFileResource.java     |  165 +-
 .../storagegroup/timeindex/DeviceTimeIndex.java    |   32 +-
 .../storagegroup/timeindex/FileTimeIndex.java      |   41 +-
 .../engine/storagegroup/timeindex/ITimeIndex.java  |   19 +-
 .../storagegroup/timeindex/TimeIndexLevel.java     |    3 +-
 .../virtualSg/HashVirtualPartitioner.java          |   10 +-
 .../storagegroup/virtualSg/VirtualPartitioner.java |    5 +-
 .../virtualSg/VirtualStorageGroupManager.java      |  204 ++-
 .../db/engine/upgrade/UpgradeCheckStatus.java      |    5 +-
 .../apache/iotdb/db/engine/upgrade/UpgradeLog.java |   19 +-
 .../iotdb/db/engine/upgrade/UpgradeTask.java       |   40 +-
 .../version/SimpleFileVersionController.java       |   30 +-
 .../engine/version/SysTimeVersionController.java   |    8 +-
 .../iotdb/db/engine/version/VersionController.java |   12 +-
 .../iotdb/db/exception/BatchProcessException.java  |    3 +-
 .../exception/DiskSpaceInsufficientException.java  |    6 +-
 .../apache/iotdb/db/exception/IoTDBException.java  |    4 +-
 .../db/exception/LoadConfigurationException.java   |    1 -
 .../iotdb/db/exception/LoadEmptyFileException.java |    2 -
 .../db/exception/QueryIdNotExsitException.java     |    1 -
 .../exception/QueryInBatchStatementException.java  |    3 +-
 .../iotdb/db/exception/ShutdownException.java      |    1 -
 .../iotdb/db/exception/StartupException.java       |    3 +-
 .../SyncDeviceOwnerConflictException.java          |   12 +-
 .../iotdb/db/exception/SystemCheckException.java   |    3 +-
 .../db/exception/UDFRegistrationException.java     |   68 +-
 .../iotdb/db/exception/WriteProcessException.java  |    1 -
 .../db/exception/WriteProcessRejectException.java  |    1 -
 .../exception/index/DistanceMetricException.java   |    1 -
 .../index/IllegalIndexParamException.java          |    1 -
 .../db/exception/index/IndexManagerException.java  |    1 -
 .../db/exception/index/QueryIndexException.java    |    1 -
 .../index/UnsupportedIndexTypeException.java       |    5 +-
 .../metadata/AliasAlreadyExistException.java       |    5 +-
 .../metadata/DataTypeMismatchException.java        |   14 +-
 .../exception/metadata/DeleteFailedException.java  |    5 +-
 .../metadata/PathAlreadyExistException.java        |    5 +-
 .../exception/metadata/PathNotExistException.java  |   23 +-
 .../metadata/StorageGroupAlreadySetException.java  |    3 +-
 .../exception/query/LogicalOperatorException.java  |    6 +-
 .../exception/query/LogicalOptimizeException.java  |   11 +-
 .../db/exception/query/OutOfTTLException.java      |   14 +-
 .../exception/query/PathNumOverLimitException.java |   14 +-
 .../query/QueryTimeoutRuntimeException.java        |    9 +-
 .../query/UnSupportedFillTypeException.java        |    3 +-
 .../db/exception/runtime/RPCServiceException.java  |    3 +-
 .../db/exception/runtime/SQLParserException.java   |    2 +
 .../iotdb/db/index/common/IndexConstant.java       |    5 +-
 .../apache/iotdb/db/index/common/IndexType.java    |  171 ++-
 .../apache/iotdb/db/index/common/IndexUtils.java   |    3 +-
 .../apache/iotdb/db/metadata/MLogTxtWriter.java    |   46 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |  622 ++++----
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  426 +++---
 .../apache/iotdb/db/metadata/MeasurementMeta.java  |   14 +-
 .../org/apache/iotdb/db/metadata/MetaUtils.java    |   24 +-
 .../org/apache/iotdb/db/metadata/Metadata.java     |   21 +-
 .../apache/iotdb/db/metadata/MetadataConstant.java |    7 +-
 .../iotdb/db/metadata/MetadataOperationType.java   |    4 +-
 .../org/apache/iotdb/db/metadata/PartialPath.java  |   36 +-
 .../org/apache/iotdb/db/metadata/TagLogFile.java   |   55 +-
 .../iotdb/db/metadata/logfile/MLogReader.java      |    1 +
 .../iotdb/db/metadata/logfile/MLogTxtReader.java   |    5 +-
 .../iotdb/db/metadata/logfile/MLogWriter.java      |   90 +-
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   68 +-
 .../iotdb/db/metadata/mnode/MeasurementMNode.java  |   67 +-
 .../iotdb/db/metadata/mnode/StorageGroupMNode.java |    6 +-
 .../apache/iotdb/db/metrics/server/JettyUtil.java  |  211 +--
 .../iotdb/db/metrics/server/MetricsSystem.java     |  163 +-
 .../iotdb/db/metrics/server/QueryServlet.java      |   14 +-
 .../iotdb/db/metrics/server/ServerArgument.java    |  645 ++++----
 .../iotdb/db/metrics/server/SqlArgument.java       |  166 ++-
 .../apache/iotdb/db/metrics/sink/ConsoleSink.java  |    8 +-
 .../iotdb/db/metrics/sink/MetricsServletSink.java  |  103 +-
 .../org/apache/iotdb/db/metrics/sink/Sink.java     |    1 -
 .../apache/iotdb/db/metrics/source/JvmSource.java  |  100 +-
 .../iotdb/db/metrics/source/MetricsSource.java     |  248 ++--
 .../org/apache/iotdb/db/metrics/source/Source.java |    1 -
 .../apache/iotdb/db/metrics/ui/MetricsPage.java    |  328 ++--
 .../apache/iotdb/db/metrics/ui/MetricsWebUI.java   |  134 +-
 .../org/apache/iotdb/db/monitor/IStatistic.java    |   13 +-
 .../apache/iotdb/db/monitor/MonitorConstants.java  |    8 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   86 +-
 .../apache/iotdb/db/monitor/StatMonitorMBean.java  |    1 -
 .../apache/iotdb/db/mqtt/BrokerAuthenticator.java  |   35 +-
 .../apache/iotdb/db/mqtt/JSONPayloadFormatter.java |   92 +-
 .../java/org/apache/iotdb/db/mqtt/Message.java     |   83 +-
 .../apache/iotdb/db/mqtt/PayloadFormatManager.java |   31 +-
 .../org/apache/iotdb/db/mqtt/PayloadFormatter.java |   29 +-
 .../org/apache/iotdb/db/mqtt/PublishHandler.java   |   30 +-
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |   68 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   16 +-
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |   19 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  311 ++--
 .../org/apache/iotdb/db/qp/logical/Operator.java   |  108 +-
 .../db/qp/logical/crud/BasicFunctionOperator.java  |   31 +-
 .../db/qp/logical/crud/BasicOperatorType.java      |   11 +-
 .../db/qp/logical/crud/DeleteDataOperator.java     |    4 +-
 .../iotdb/db/qp/logical/crud/FilterOperator.java   |   58 +-
 .../iotdb/db/qp/logical/crud/FromOperator.java     |   10 +-
 .../iotdb/db/qp/logical/crud/FunctionOperator.java |   11 +-
 .../iotdb/db/qp/logical/crud/InOperator.java       |   41 +-
 .../iotdb/db/qp/logical/crud/InsertOperator.java   |    5 +-
 .../iotdb/db/qp/logical/crud/QueryOperator.java    |    7 +-
 .../iotdb/db/qp/logical/crud/SFWOperator.java      |    7 +-
 .../iotdb/db/qp/logical/crud/SelectOperator.java   |   15 +-
 .../db/qp/logical/sys/AlterTimeSeriesOperator.java |    3 +-
 .../iotdb/db/qp/logical/sys/AuthorOperator.java    |   20 +-
 .../iotdb/db/qp/logical/sys/CountOperator.java     |   10 +-
 .../db/qp/logical/sys/CreateFunctionOperator.java  |  116 +-
 .../db/qp/logical/sys/CreateIndexOperator.java     |    7 +-
 .../qp/logical/sys/CreateTimeSeriesOperator.java   |   12 +-
 .../iotdb/db/qp/logical/sys/DataAuthOperator.java  |    4 +-
 .../db/qp/logical/sys/DeletePartitionOperator.java |    3 +-
 .../qp/logical/sys/DeleteStorageGroupOperator.java |    9 +-
 .../qp/logical/sys/DeleteTimeSeriesOperator.java   |   12 +-
 .../db/qp/logical/sys/DropFunctionOperator.java    |   80 +-
 .../iotdb/db/qp/logical/sys/DropIndexOperator.java |    5 +-
 .../iotdb/db/qp/logical/sys/FlushOperator.java     |    6 +-
 .../qp/logical/sys/LoadConfigurationOperator.java  |    5 +-
 .../iotdb/db/qp/logical/sys/LoadDataOperator.java  |    4 +-
 .../iotdb/db/qp/logical/sys/LoadFilesOperator.java |    4 +-
 .../iotdb/db/qp/logical/sys/MoveFileOperator.java  |    3 +-
 .../db/qp/logical/sys/RemoveFileOperator.java      |    3 +-
 .../db/qp/logical/sys/SetStorageGroupOperator.java |    7 +-
 .../iotdb/db/qp/logical/sys/SetTTLOperator.java    |    2 +-
 .../db/qp/logical/sys/ShowFunctionsOperator.java   |   74 +-
 .../qp/logical/sys/ShowStorageGroupOperator.java   |   72 +-
 .../iotdb/db/qp/logical/sys/ShowTTLOperator.java   |    5 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |   79 +-
 .../iotdb/db/qp/physical/crud/AggregationPlan.java |    3 +-
 .../db/qp/physical/crud/AlignByDevicePlan.java     |   34 +-
 .../db/qp/physical/crud/DeletePartitionPlan.java   |    7 +-
 .../iotdb/db/qp/physical/crud/DeletePlan.java      |   14 +-
 .../iotdb/db/qp/physical/crud/FillQueryPlan.java   |    3 +-
 .../db/qp/physical/crud/GroupByTimeFillPlan.java   |    3 +-
 .../iotdb/db/qp/physical/crud/GroupByTimePlan.java |    3 +-
 .../db/qp/physical/crud/InsertMultiTabletPlan.java |   98 +-
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |   19 +-
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |  110 +-
 .../physical/crud/InsertRowsOfOneDevicePlan.java   |   49 +-
 .../db/qp/physical/crud/InsertTabletPlan.java      |   89 +-
 .../iotdb/db/qp/physical/crud/QueryIndexPlan.java  |    5 +-
 .../iotdb/db/qp/physical/crud/QueryPlan.java       |    7 +-
 .../db/qp/physical/crud/RawDataQueryPlan.java      |   28 +-
 .../apache/iotdb/db/qp/physical/crud/UDFPlan.java  |   99 +-
 .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java |  265 ++--
 .../db/qp/physical/sys/AlterTimeSeriesPlan.java    |   46 +-
 .../iotdb/db/qp/physical/sys/AuthorPlan.java       |   83 +-
 .../iotdb/db/qp/physical/sys/ClearCachePlan.java   |    5 +-
 .../apache/iotdb/db/qp/physical/sys/CountPlan.java |    8 +-
 .../db/qp/physical/sys/CreateFunctionPlan.java     |  115 +-
 .../iotdb/db/qp/physical/sys/CreateIndexPlan.java  |   26 +-
 .../qp/physical/sys/CreateMultiTimeSeriesPlan.java |   31 +-
 .../db/qp/physical/sys/CreateSnapshotPlan.java     |    6 +-
 .../db/qp/physical/sys/CreateTimeSeriesPlan.java   |   43 +-
 .../iotdb/db/qp/physical/sys/DataAuthPlan.java     |    9 +-
 .../db/qp/physical/sys/DeleteStorageGroupPlan.java |   22 +-
 .../db/qp/physical/sys/DeleteTimeSeriesPlan.java   |    9 +-
 .../iotdb/db/qp/physical/sys/DropFunctionPlan.java |   91 +-
 .../iotdb/db/qp/physical/sys/DropIndexPlan.java    |   21 +-
 .../apache/iotdb/db/qp/physical/sys/FlushPlan.java |   56 +-
 .../iotdb/db/qp/physical/sys/KillQueryPlan.java    |    5 +-
 .../db/qp/physical/sys/LoadConfigurationPlan.java  |   16 +-
 .../iotdb/db/qp/physical/sys/LoadDataPlan.java     |   19 +-
 .../apache/iotdb/db/qp/physical/sys/MNodePlan.java |    3 +-
 .../db/qp/physical/sys/MeasurementMNodePlan.java   |   26 +-
 .../apache/iotdb/db/qp/physical/sys/MergePlan.java |    6 +-
 .../iotdb/db/qp/physical/sys/OperateFilePlan.java  |   29 +-
 .../db/qp/physical/sys/SetStorageGroupPlan.java    |   11 +-
 .../iotdb/db/qp/physical/sys/SetTTLPlan.java       |   11 +-
 .../iotdb/db/qp/physical/sys/ShowDevicesPlan.java  |    4 +-
 .../db/qp/physical/sys/ShowFunctionsPlan.java      |   68 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |   28 +-
 .../qp/physical/sys/ShowQueryProcesslistPlan.java  |    1 -
 .../db/qp/physical/sys/ShowStorageGroupPlan.java   |   73 +-
 .../iotdb/db/qp/physical/sys/ShowTTLPlan.java      |    5 +-
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |   17 +-
 .../db/qp/physical/sys/StorageGroupMNodePlan.java  |    4 +-
 .../iotdb/db/qp/physical/sys/TracingPlan.java      |    5 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |  348 +++--
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |   23 +-
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |  220 +--
 .../apache/iotdb/db/qp/strategy/SQLParseError.java |    8 +-
 .../qp/strategy/optimizer/ConcatPathOptimizer.java |  113 +-
 .../qp/strategy/optimizer/DnfFilterOptimizer.java  |   27 +-
 .../db/qp/strategy/optimizer/IFilterOptimizer.java |    4 +-
 .../qp/strategy/optimizer/ILogicalOptimizer.java   |    4 +-
 .../optimizer/MergeSingleFilterOptimizer.java      |   25 +-
 .../qp/strategy/optimizer/RemoveNotOptimizer.java  |   24 +-
 .../apache/iotdb/db/qp/utils/DatetimeUtils.java    |  610 ++++----
 .../db/query/aggregation/AggregateResult.java      |   30 +-
 .../db/query/aggregation/AggregationType.java      |   14 +-
 .../db/query/aggregation/impl/AvgAggrResult.java   |   21 +-
 .../db/query/aggregation/impl/CountAggrResult.java |   17 +-
 .../aggregation/impl/FirstValueAggrResult.java     |   11 +-
 .../aggregation/impl/FirstValueDescAggrResult.java |    7 +-
 .../aggregation/impl/LastValueAggrResult.java      |   13 +-
 .../aggregation/impl/LastValueDescAggrResult.java  |    7 +-
 .../query/aggregation/impl/MaxTimeAggrResult.java  |   19 +-
 .../aggregation/impl/MaxTimeDescAggrResult.java    |    7 +-
 .../query/aggregation/impl/MaxValueAggrResult.java |   19 +-
 .../query/aggregation/impl/MinTimeAggrResult.java  |   22 +-
 .../aggregation/impl/MinTimeDescAggrResult.java    |    9 +-
 .../query/aggregation/impl/MinValueAggrResult.java |   18 +-
 .../db/query/aggregation/impl/SumAggrResult.java   |   11 +-
 .../iotdb/db/query/context/QueryContext.java       |   47 +-
 .../iotdb/db/query/control/FileReaderManager.java  |   99 +-
 .../iotdb/db/query/control/QueryFileManager.java   |  249 ++--
 .../db/query/control/QueryResourceManager.java     |  451 +++---
 .../iotdb/db/query/control/QueryTimeManager.java   |   68 +-
 .../iotdb/db/query/control/TracingManager.java     |  132 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   32 +-
 .../db/query/dataset/DirectAlignByTimeDataSet.java |   67 +-
 .../db/query/dataset/DirectNonAlignDataSet.java    |   63 +-
 .../apache/iotdb/db/query/dataset/ListDataSet.java |    7 +-
 .../db/query/dataset/NonAlignEngineDataSet.java    |   50 +-
 .../dataset/RawQueryDataSetWithValueFilter.java    |   32 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |   86 +-
 .../apache/iotdb/db/query/dataset/ShowDataSet.java |    7 +-
 .../iotdb/db/query/dataset/ShowDevicesDataSet.java |   26 +-
 .../apache/iotdb/db/query/dataset/ShowResult.java  |    4 +-
 .../db/query/dataset/ShowTimeSeriesResult.java     |   35 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |   69 +-
 .../iotdb/db/query/dataset/SingleDataSet.java      |    7 +-
 .../iotdb/db/query/dataset/UDFInputDataSet.java    |    3 +-
 .../db/query/dataset/UDTFAlignByTimeDataSet.java   |  580 ++++----
 .../apache/iotdb/db/query/dataset/UDTFDataSet.java |  329 ++--
 .../db/query/dataset/UDTFNonAlignDataSet.java      |  407 ++---
 .../dataset/groupby/GroupByEngineDataSet.java      |   33 +-
 .../db/query/dataset/groupby/GroupByExecutor.java  |   19 +-
 .../query/dataset/groupby/GroupByFillDataSet.java  |   61 +-
 .../query/dataset/groupby/GroupByTimeDataSet.java  |   24 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |  112 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   86 +-
 .../dataset/groupby/LocalGroupByExecutor.java      |   71 +-
 .../db/query/executor/AggregationExecutor.java     |  217 +--
 .../iotdb/db/query/executor/FillQueryExecutor.java |   37 +-
 .../iotdb/db/query/executor/IQueryRouter.java      |   42 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   84 +-
 .../iotdb/db/query/executor/QueryRouter.java       |   88 +-
 .../db/query/executor/RawDataQueryExecutor.java    |  117 +-
 .../iotdb/db/query/executor/UDTFQueryExecutor.java |  195 +--
 .../apache/iotdb/db/query/executor/fill/IFill.java |   18 +-
 .../db/query/executor/fill/LastPointReader.java    |   59 +-
 .../iotdb/db/query/executor/fill/LinearFill.java   |   73 +-
 .../iotdb/db/query/executor/fill/PreviousFill.java |   26 +-
 .../db/query/externalsort/ExternalSortJob.java     |    7 +-
 .../query/externalsort/ExternalSortJobEngine.java  |   17 +-
 .../db/query/externalsort/ExternalSortJobPart.java |    6 +-
 .../externalsort/ExternalSortJobScheduler.java     |   19 +-
 .../iotdb/db/query/externalsort/LineMerger.java    |   11 +-
 .../MultiSourceExternalSortJobPart.java            |    8 +-
 .../externalsort/SimpleExternalSortEngine.java     |   55 +-
 .../SingleSourceExternalSortJobPart.java           |   20 +-
 .../adapter/ByTimestampReaderAdapter.java          |    7 +-
 .../serialize/IExternalSortFileDeserializer.java   |    3 +-
 .../serialize/IExternalSortFileSerializer.java     |    3 +-
 .../FixLengthIExternalSortFileDeserializer.java    |   56 +-
 .../impl/FixLengthTimeValuePairSerializer.java     |   31 +-
 .../db/query/factory/AggregateResultFactory.java   |   31 +-
 .../iotdb/db/query/pool/QueryTaskPoolManager.java  |    8 +-
 .../db/query/reader/chunk/ChunkDataIterator.java   |   13 +-
 .../db/query/reader/chunk/ChunkReaderWrap.java     |   25 +-
 .../db/query/reader/chunk/DiskChunkLoader.java     |    7 +-
 .../reader/chunk/DiskChunkReaderByTimestamp.java   |    6 +-
 .../db/query/reader/chunk/MemChunkLoader.java      |   11 +-
 .../db/query/reader/chunk/MemChunkReader.java      |   23 +-
 .../iotdb/db/query/reader/chunk/MemPageReader.java |   16 +-
 .../chunk/metadata/DiskChunkMetadataLoader.java    |   31 +-
 .../chunk/metadata/MemChunkMetadataLoader.java     |   17 +-
 .../resource/CachedUnseqResourceMergeReader.java   |    5 +-
 .../db/query/reader/series/IAggregateReader.java   |   11 +-
 .../db/query/reader/series/IReaderByTimestamp.java |   19 +-
 .../query/reader/series/SeriesAggregateReader.java |   39 +-
 .../reader/series/SeriesRawDataBatchReader.java    |   64 +-
 .../reader/series/SeriesRawDataPointReader.java    |   16 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |  447 +++---
 .../reader/series/SeriesReaderByTimestamp.java     |   29 +-
 .../universal/CachedPriorityMergeReader.java       |    4 +-
 .../reader/universal/DescPriorityMergeReader.java  |   18 +-
 .../reader/universal/PriorityMergeReader.java      |   39 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   42 +-
 .../org/apache/iotdb/db/query/udf/api/UDF.java     |   84 +-
 .../org/apache/iotdb/db/query/udf/api/UDTF.java    |  241 ++-
 .../apache/iotdb/db/query/udf/api/access/Row.java  |  240 +--
 .../iotdb/db/query/udf/api/access/RowIterator.java |   96 +-
 .../iotdb/db/query/udf/api/access/RowWindow.java   |  123 +-
 .../db/query/udf/api/collector/PointCollector.java |  275 ++--
 .../api/customizer/config/UDFConfigurations.java   |   76 +-
 .../api/customizer/config/UDTFConfigurations.java  |  211 +--
 .../parameter/UDFParameterValidator.java           |   58 +-
 .../api/customizer/parameter/UDFParameters.java    |  304 ++--
 .../api/customizer/strategy/AccessStrategy.java    |  122 +-
 .../strategy/RowByRowAccessStrategy.java           |  122 +-
 .../strategy/SlidingSizeWindowAccessStrategy.java  |  247 +--
 .../strategy/SlidingTimeWindowAccessStrategy.java  |  510 +++----
 .../UDFInputSeriesDataTypeNotValidException.java   |   25 +-
 .../UDFInputSeriesIndexNotValidException.java      |    5 +-
 .../UDFInputSeriesNumberNotValidException.java     |   16 +-
 .../db/query/udf/builtin/BuiltinFunction.java      |    5 +-
 .../apache/iotdb/db/query/udf/builtin/UDTFAbs.java |   11 +-
 .../iotdb/db/query/udf/builtin/UDTFBottomK.java    |   23 +-
 .../db/query/udf/builtin/UDTFCommonDerivative.java |    7 +-
 .../udf/builtin/UDTFCommonValueDifference.java     |    7 +-
 .../iotdb/db/query/udf/builtin/UDTFDerivative.java |    3 +-
 .../iotdb/db/query/udf/builtin/UDTFMatches.java    |    3 +-
 .../iotdb/db/query/udf/builtin/UDTFMath.java       |   11 +-
 .../udf/builtin/UDTFNonNegativeDerivative.java     |    7 +-
 .../builtin/UDTFNonNegativeValueDifference.java    |    7 +-
 .../iotdb/db/query/udf/builtin/UDTFSelectK.java    |   78 +-
 .../db/query/udf/builtin/UDTFTimeDifference.java   |    3 +-
 .../iotdb/db/query/udf/builtin/UDTFTopK.java       |   15 +-
 .../db/query/udf/builtin/UDTFValueDifference.java  |    7 +-
 .../iotdb/db/query/udf/builtin/UDTFValueTrend.java |   11 +-
 .../iotdb/db/query/udf/core/access/RowImpl.java    |  184 +--
 .../db/query/udf/core/access/RowIteratorImpl.java  |  120 +-
 .../db/query/udf/core/access/RowWindowImpl.java    |  155 +-
 .../db/query/udf/core/context/UDFContext.java      |  276 ++--
 .../db/query/udf/core/executor/UDTFExecutor.java   |  232 +--
 .../iotdb/db/query/udf/core/input/InputLayer.java  | 1126 +++++++-------
 .../iotdb/db/query/udf/core/input/SafetyLine.java  |  155 +-
 .../db/query/udf/core/reader/LayerPointReader.java |   97 +-
 .../db/query/udf/core/reader/LayerRowReader.java   |   77 +-
 .../udf/core/reader/LayerRowWindowReader.java      |   73 +-
 .../core/transformer/RawQueryPointTransformer.java |  145 +-
 .../db/query/udf/core/transformer/Transformer.java |  187 +--
 .../core/transformer/UDFQueryRowTransformer.java   |   91 +-
 .../transformer/UDFQueryRowWindowTransformer.java  |   93 +-
 .../udf/core/transformer/UDFQueryTransformer.java  |  203 +--
 .../iotdb/db/query/udf/datastructure/Cache.java    |    7 +-
 .../query/udf/datastructure/SerializableList.java  |  331 +++--
 .../primitive/ElasticSerializableIntList.java      |  197 +--
 .../query/udf/datastructure/primitive/IntList.java |   66 +-
 .../primitive/SerializableIntList.java             |  264 ++--
 .../datastructure/primitive/WrappedIntArray.java   |  102 +-
 .../row/ElasticSerializableRowRecordList.java      |  495 +++---
 .../row/SerializableRowRecordList.java             |  470 +++---
 .../tv/ElasticSerializableBinaryTVList.java        |  253 ++--
 .../tv/ElasticSerializableTVList.java              |  629 ++++----
 .../datastructure/tv/SerializableBinaryTVList.java |  161 +-
 .../tv/SerializableBooleanTVList.java              |  141 +-
 .../datastructure/tv/SerializableDoubleTVList.java |  141 +-
 .../datastructure/tv/SerializableFloatTVList.java  |  141 +-
 .../datastructure/tv/SerializableIntTVList.java    |  141 +-
 .../datastructure/tv/SerializableLongTVList.java   |  141 +-
 .../udf/datastructure/tv/SerializableTVList.java   |  199 +--
 .../udf/service/TemporaryQueryDataFileService.java |  277 ++--
 .../iotdb/db/query/udf/service/UDFClassLoader.java |  168 +--
 .../query/udf/service/UDFClassLoaderManager.java   |  252 ++--
 .../iotdb/db/query/udf/service/UDFLogWriter.java   |  139 +-
 .../udf/service/UDFRegistrationInformation.java    |  160 +-
 .../query/udf/service/UDFRegistrationService.java  |  831 ++++++-----
 .../apache/iotdb/db/rescon/CachedStringPool.java   |    3 +-
 .../apache/iotdb/db/rescon/MemTableManager.java    |   24 +-
 .../iotdb/db/rescon/PrimitiveArrayManager.java     |   76 +-
 .../org/apache/iotdb/db/rescon/SystemInfo.java     |   70 +-
 .../apache/iotdb/db/rescon/TVListAllocator.java    |   24 +-
 .../iotdb/db/rescon/TVListAllocatorMBean.java      |    1 -
 .../org/apache/iotdb/db/rescon/package-info.java   |    2 +-
 .../java/org/apache/iotdb/db/service/IService.java |   17 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   20 +-
 .../apache/iotdb/db/service/IoTDBShutdownHook.java |    9 +-
 .../org/apache/iotdb/db/service/JMXService.java    |   34 +-
 .../org/apache/iotdb/db/service/MQTTService.java   |  161 +-
 .../apache/iotdb/db/service/MetricsService.java    |   58 +-
 .../iotdb/db/service/MetricsServiceMBean.java      |    1 -
 .../org/apache/iotdb/db/service/RPCService.java    |   35 +-
 .../iotdb/db/service/RPCServiceThriftHandler.java  |    6 +-
 .../apache/iotdb/db/service/RegisterManager.java   |   24 +-
 .../org/apache/iotdb/db/service/ServiceType.java   |   10 +-
 .../org/apache/iotdb/db/service/StartupCheck.java  |    4 +-
 .../org/apache/iotdb/db/service/StartupChecks.java |   56 +-
 .../org/apache/iotdb/db/service/StaticResps.java   |   35 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  554 ++++---
 .../org/apache/iotdb/db/service/UpgradeSevice.java |   18 +-
 .../iotdb/db/service/thrift/ThriftService.java     |   60 +-
 .../db/service/thrift/ThriftServiceThread.java     |   54 +-
 .../apache/iotdb/db/sync/conf/SyncConstant.java    |    8 +-
 .../iotdb/db/sync/conf/SyncSenderConfig.java       |   19 +-
 .../iotdb/db/sync/conf/SyncSenderDescriptor.java   |   37 +-
 .../org/apache/iotdb/db/sync/package-info.java     |   11 +-
 .../iotdb/db/sync/receiver/SyncServerManager.java  |   31 +-
 .../db/sync/receiver/SyncServerThriftHandler.java  |    8 +-
 .../iotdb/db/sync/receiver/load/FileLoader.java    |   68 +-
 .../db/sync/receiver/load/FileLoaderManager.java   |   40 +-
 .../iotdb/db/sync/receiver/load/IFileLoader.java   |   26 +-
 .../iotdb/db/sync/receiver/load/ILoadLogger.java   |    9 +-
 .../iotdb/db/sync/receiver/load/LoadLogger.java    |    2 +-
 .../iotdb/db/sync/receiver/load/LoadType.java      |    4 +-
 .../receiver/recover/ISyncReceiverLogAnalyzer.java |    4 +-
 .../sync/receiver/recover/ISyncReceiverLogger.java |    8 +-
 .../receiver/recover/SyncReceiverLogAnalyzer.java  |   34 +-
 .../sync/receiver/recover/SyncReceiverLogger.java  |    2 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |  125 +-
 .../db/sync/sender/manage/ISyncFileManager.java    |   15 +-
 .../db/sync/sender/manage/SyncFileManager.java     |  204 ++-
 .../sender/recover/ISyncSenderLogAnalyzer.java     |   13 +-
 .../db/sync/sender/recover/ISyncSenderLogger.java  |    6 +-
 .../sync/sender/recover/SyncSenderLogAnalyzer.java |   20 +-
 .../db/sync/sender/recover/SyncSenderLogger.java   |    2 +-
 .../iotdb/db/sync/sender/transfer/ISyncClient.java |   47 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |  314 ++--
 .../apache/iotdb/db/tools/IoTDBDataDirViewer.java  |   48 +-
 .../iotdb/db/tools/TsFileResourcePrinter.java      |   28 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |  194 ++-
 .../java/org/apache/iotdb/db/tools/WalChecker.java |   39 +-
 .../org/apache/iotdb/db/tools/mlog/MLogParser.java |   71 +-
 .../db/tools/upgrade/TsFileOnlineUpgradeTool.java  |  221 +--
 .../db/tools/virtualsg/DeviceMappingViewer.java    |   22 +-
 .../watermark/GroupedLSBWatermarkEncoder.java      |   14 +-
 .../db/tools/watermark/WatermarkDetector.java      |   86 +-
 .../java/org/apache/iotdb/db/utils/AuthUtils.java  |   58 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |   54 +-
 .../iotdb/db/utils/CopyOnReadLinkedList.java       |    1 -
 .../iotdb/db/utils/EncodingInferenceUtils.java     |    7 +-
 .../org/apache/iotdb/db/utils/FileLoaderUtils.java |   70 +-
 .../org/apache/iotdb/db/utils/FilePathUtils.java   |   64 +-
 .../java/org/apache/iotdb/db/utils/FileUtils.java  |   10 +-
 .../java/org/apache/iotdb/db/utils/IOUtils.java    |   82 +-
 .../java/org/apache/iotdb/db/utils/MathUtils.java  |   26 +-
 .../java/org/apache/iotdb/db/utils/MemUtils.java   |   53 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |   72 +-
 .../java/org/apache/iotdb/db/utils/MmapUtil.java   |    5 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   33 +-
 .../apache/iotdb/db/utils/QueryDataSetUtils.java   |   50 +-
 .../java/org/apache/iotdb/db/utils/QueryUtils.java |   45 +-
 .../apache/iotdb/db/utils/RandomDeleteCache.java   |    5 +-
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |   71 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |  134 +-
 .../java/org/apache/iotdb/db/utils/SyncUtils.java  |   43 +-
 .../java/org/apache/iotdb/db/utils/TestOnly.java   |    7 +-
 .../apache/iotdb/db/utils/TimeValuePairUtils.java  |   17 +-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |   31 +-
 .../org/apache/iotdb/db/utils/UpgradeUtils.java    |   93 +-
 .../iotdb/db/utils/datastructure/BinaryTVList.java |   28 +-
 .../db/utils/datastructure/BooleanTVList.java      |   33 +-
 .../iotdb/db/utils/datastructure/DoubleTVList.java |   31 +-
 .../iotdb/db/utils/datastructure/FloatTVList.java  |   30 +-
 .../iotdb/db/utils/datastructure/IntTVList.java    |   26 +-
 .../iotdb/db/utils/datastructure/LongTVList.java   |   25 +-
 .../iotdb/db/utils/datastructure/TVList.java       |   43 +-
 .../iotdb/db/utils/datastructure/TimeSelector.java |    8 +-
 .../apache/iotdb/db/writelog/WALFlushListener.java |    3 +-
 .../iotdb/db/writelog/io/BatchLogReader.java       |   13 +-
 .../apache/iotdb/db/writelog/io/ILogReader.java    |    9 +-
 .../apache/iotdb/db/writelog/io/ILogWriter.java    |   15 +-
 .../org/apache/iotdb/db/writelog/io/LogWriter.java |    9 +-
 .../iotdb/db/writelog/io/MultiFileLogReader.java   |    3 +-
 .../iotdb/db/writelog/io/SingleFileLogReader.java  |   25 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |   32 +-
 .../db/writelog/manager/WriteLogNodeManager.java   |   13 +-
 .../db/writelog/node/ExclusiveWriteLogNode.java    |   41 +-
 .../iotdb/db/writelog/node/WriteLogNode.java       |   37 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |   73 +-
 .../writelog/recover/TsFileRecoverPerformer.java   |   95 +-
 .../apache/iotdb/db/auth/AuthorityCheckerTest.java |  207 ++-
 .../auth/authorizer/LocalFileAuthorizerTest.java   |   29 +-
 .../db/auth/authorizer/OpenIdAuthorizerTest.java   |   42 +-
 .../iotdb/db/auth/entity/PathPrivilegeTest.java    |    5 +-
 .../org/apache/iotdb/db/auth/entity/RoleTest.java  |   13 +-
 .../org/apache/iotdb/db/auth/entity/UserTest.java  |    5 +-
 .../db/auth/role/LocalFileRoleAccessorTest.java    |   21 +-
 .../db/auth/role/LocalFileRoleManagerTest.java     |   18 +-
 .../db/auth/user/LocalFileUserAccessorTest.java    |   23 +-
 .../db/auth/user/LocalFileUserManagerTest.java     |   18 +-
 .../IoTDBDefaultThreadExceptionHandlerTest.java    |    7 +-
 .../db/concurrent/IoTDBThreadPoolFactoryTest.java  |   35 +-
 .../apache/iotdb/db/conf/IoTDBDescriptorTest.java  |    1 -
 .../db/conf/adapter/CompressionRatioTest.java      |   92 +-
 .../strategy/DirectoryStrategyTest.java            |   56 +-
 .../org/apache/iotdb/db/constant/TestConstant.java |  118 +-
 .../db/cost/statistic/PerformanceStatTest.java     |    8 +-
 .../iotdb/db/engine/MetadataManagerHelper.java     |  139 +-
 .../db/engine/cache/ChunkMetadataCacheTest.java    |   42 +-
 .../db/engine/compaction/CompactionChunkTest.java  |  107 +-
 .../engine/compaction/LevelCompactionLogTest.java  |   34 +-
 .../compaction/LevelCompactionMergeTest.java       |   89 +-
 .../engine/compaction/LevelCompactionModsTest.java |   34 +-
 .../compaction/LevelCompactionRecoverTest.java     |  542 ++++---
 .../compaction/LevelCompactionSelectorTest.java    |   33 +-
 .../db/engine/compaction/LevelCompactionTest.java  |   88 +-
 .../LevelCompactionTsFileManagementTest.java       |  106 +-
 .../NoCompactionTsFileManagementTest.java          |  110 +-
 .../db/engine/memtable/MemTableFlushTaskTest.java  |   55 +-
 .../db/engine/memtable/MemTableTestUtils.java      |   25 +-
 .../db/engine/memtable/MemtableBenchmark.java      |   20 +-
 .../db/engine/memtable/PrimitiveMemTableTest.java  |  111 +-
 .../engine/merge/MaxFileMergeFileSelectorTest.java |   12 +-
 .../merge/MaxSeriesMergeFileSelectorTest.java      |   33 +-
 .../apache/iotdb/db/engine/merge/MergeLogTest.java |   39 +-
 .../iotdb/db/engine/merge/MergeManagerTest.java    |   24 +-
 .../iotdb/db/engine/merge/MergeOverLapTest.java    |  117 +-
 .../iotdb/db/engine/merge/MergePerfTest.java       |   63 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |  280 +++-
 .../apache/iotdb/db/engine/merge/MergeTest.java    |   96 +-
 .../iotdb/db/engine/merge/MergeUpgradeTest.java    |   86 +-
 .../engine/modification/DeletionFileNodeTest.java  |  128 +-
 .../db/engine/modification/DeletionQueryTest.java  |   31 +-
 .../engine/modification/ModificationFileTest.java  |   39 +-
 .../io/LocalTextModificationAccessorTest.java      |   30 +-
 .../storagegroup/FileNodeManagerBenchmark.java     |   21 +-
 .../storagegroup/StorageGroupProcessorTest.java    |  173 ++-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |  144 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |  171 ++-
 .../virtualSg/HashVirtualPartitionerTest.java      |   13 +-
 .../version/SimpleFileVersionControllerTest.java   |   21 +-
 .../version/SysTimeVersionControllerTest.java      |    4 +-
 .../iotdb/db/integration/IOTDBGroupByIT.java       | 1057 +++++++------
 .../integration/IOTDBGroupByInnerIntervalIT.java   |  332 +++--
 .../apache/iotdb/db/integration/IOTDBInsertIT.java |   23 +-
 .../iotdb/db/integration/IoTDBAddSubDeviceIT.java  |   82 +-
 .../apache/iotdb/db/integration/IoTDBAliasIT.java  |  174 +--
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java | 1147 ++++++++------
 .../org/apache/iotdb/db/integration/IoTDBAsIT.java |  291 ++--
 .../db/integration/IoTDBAutoCreateSchemaIT.java    |   56 +-
 .../iotdb/db/integration/IoTDBCheckConfigIT.java   |   37 +-
 .../iotdb/db/integration/IoTDBClearCacheIT.java    |  176 +--
 .../apache/iotdb/db/integration/IoTDBCloseIT.java  |   99 +-
 .../iotdb/db/integration/IoTDBCompleteIT.java      |  625 ++++----
 .../iotdb/db/integration/IoTDBCompressTypeIT.java  |   26 +-
 .../db/integration/IoTDBCreateSnapshotIT.java      |  101 +-
 .../apache/iotdb/db/integration/IoTDBDaemonIT.java |  338 +++--
 .../db/integration/IoTDBDeleteStorageGroupIT.java  |   64 +-
 .../db/integration/IoTDBDeleteTimeseriesIT.java    |   53 +-
 .../iotdb/db/integration/IoTDBDeletionIT.java      |  184 ++-
 .../iotdb/db/integration/IoTDBDisableAlignIT.java  |  370 ++---
 .../iotdb/db/integration/IoTDBEncodingIT.java      |  107 +-
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |  144 +-
 .../iotdb/db/integration/IoTDBFilePathUtilsIT.java |   27 +-
 .../apache/iotdb/db/integration/IoTDBFillIT.java   |  755 ++++++----
 .../db/integration/IoTDBFloatPrecisionIT.java      |   93 +-
 .../db/integration/IoTDBFlushQueryMergeIT.java     |  106 +-
 .../iotdb/db/integration/IoTDBGroupByFillIT.java   |  711 ++++-----
 .../integration/IoTDBGroupByFillWithRangeIT.java   |  137 +-
 .../iotdb/db/integration/IoTDBInsertNaNIT.java     |  126 +-
 .../db/integration/IoTDBInsertWithQueryIT.java     |  353 +++--
 .../iotdb/db/integration/IoTDBKillQueryTest.java   |   29 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |  745 +++++-----
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |  386 ++---
 .../db/integration/IoTDBLevelCompactionIT.java     |  659 ++++----
 .../iotdb/db/integration/IoTDBLimitSlimitIT.java   |  166 ++-
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |  659 +++++---
 .../iotdb/db/integration/IoTDBMergeTest.java       |  173 ++-
 .../iotdb/db/integration/IoTDBMetadataFetchIT.java |  258 ++--
 .../iotdb/db/integration/IoTDBMultiDeviceIT.java   |  175 +--
 .../IoTDBMultiOverlappedChunkInUnseqIT.java        |   54 +-
 .../db/integration/IoTDBMultiOverlappedPageIT.java |  105 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |  981 ++++++------
 .../db/integration/IoTDBMultiStatementsIT.java     |  106 +-
 .../db/integration/IoTDBNewTsFileCompactionIT.java |  464 +++---
 .../iotdb/db/integration/IoTDBNumberPathIT.java    |  641 ++++----
 .../db/integration/IoTDBOverlappedPageIT.java      |   72 +-
 .../iotdb/db/integration/IoTDBQueryDemoIT.java     |  425 +++---
 .../db/integration/IoTDBQueryMemoryControlIT.java  |  588 ++++----
 .../db/integration/IoTDBQueryTimeoutTest.java      |   44 +-
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |   68 +-
 .../iotdb/db/integration/IoTDBRecoverIT.java       |  299 ++--
 .../db/integration/IoTDBRecoverUnclosedIT.java     |  200 +--
 .../db/integration/IoTDBRemovePartitionIT.java     |  126 +-
 .../iotdb/db/integration/IoTDBRestartIT.java       |  168 +--
 .../iotdb/db/integration/IoTDBResultSetIT.java     |   32 +-
 .../db/integration/IoTDBRpcCompressionIT.java      |  133 +-
 .../IoTDBSameMeasurementsDifferentTypesIT.java     |  100 +-
 .../iotdb/db/integration/IoTDBSensorUpdateIT.java  |   23 +-
 .../db/integration/IoTDBSequenceDataQueryIT.java   |  142 +-
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |  273 ++--
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   |  460 +++---
 .../integration/IoTDBSortedShowTimeseriesIT.java   |  366 ++---
 .../iotdb/db/integration/IoTDBTagAlterIT.java      |  501 ++++---
 .../apache/iotdb/db/integration/IoTDBTagIT.java    | 1029 +++++++------
 .../iotdb/db/integration/IoTDBTimeZoneIT.java      |   84 +-
 .../iotdb/db/integration/IoTDBTracingTest.java     |   19 +-
 .../apache/iotdb/db/integration/IoTDBTtlIT.java    |   74 +-
 .../iotdb/db/integration/IoTDBUDFManagementIT.java |  885 +++++------
 .../db/integration/IoTDBUDFWindowQueryIT.java      | 1070 ++++++-------
 .../integration/IoTDBUDTFAlignByTimeQueryIT.java   | 1568 +++++++++++---------
 .../db/integration/IoTDBUDTFBuiltinFunctionIT.java |  155 +-
 .../db/integration/IoTDBUDTFHybridQueryIT.java     |  343 +++--
 .../db/integration/IoTDBUDTFNonAlignQueryIT.java   |  705 ++++-----
 .../iotdb/db/integration/IoTDBVersionIT.java       |   33 +-
 .../aggregation/IoTDBAggregationByLevelIT.java     |  198 ++-
 .../aggregation/IoTDBAggregationDeleteIT.java      |   29 +-
 .../aggregation/IoTDBAggregationIT.java            |  775 ++++++----
 .../aggregation/IoTDBAggregationLargeDataIT.java   |  802 ++++++----
 .../aggregation/IoTDBAggregationSmallDataIT.java   |  604 ++++----
 .../db/integration/auth/IoTDBAuthorizationIT.java  |  313 ++--
 .../iotdb/db/metadata/MManagerAdvancedTest.java    |  162 +-
 .../iotdb/db/metadata/MManagerBasicTest.java       |  404 +++--
 .../iotdb/db/metadata/MManagerImproveTest.java     |   27 +-
 .../org/apache/iotdb/db/metadata/MTreeTest.java    |  437 ++++--
 .../apache/iotdb/db/metadata/MetaUtilsTest.java    |   32 +-
 .../apache/iotdb/db/metadata/PartialPathTest.java  |   14 +-
 .../iotdb/db/monitor/IoTDBStatMonitorTest.java     |   59 +-
 .../iotdb/db/mqtt/BrokerAuthenticatorTest.java     |   39 +-
 .../iotdb/db/mqtt/JSONPayloadFormatTest.java       |   66 +-
 .../iotdb/db/mqtt/PayloadFormatManagerTest.java    |   18 +-
 .../apache/iotdb/db/mqtt/PublishHandlerTest.java   |   55 +-
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |  152 +-
 .../iotdb/db/qp/bench/QueryParseBenchmark.java     |    3 +-
 .../iotdb/db/qp/logical/IndexLogicalPlanTest.java  |   75 +-
 .../iotdb/db/qp/logical/LogicalPlanSmallTest.java  |  130 +-
 .../iotdb/db/qp/other/TSPlanContextAuthorTest.java |   60 +-
 .../iotdb/db/qp/physical/ConcatOptimizerTest.java  |   86 +-
 .../physical/IndexSubMatchingPhysicalPlanTest.java |   56 +-
 .../IndexWholeMatchingPhysicalPlanTest.java        |   61 +-
 .../db/qp/physical/InsertTabletMultiPlanTest.java  |   22 +-
 .../iotdb/db/qp/physical/InsertTabletPlanTest.java |   22 +-
 .../db/qp/physical/PhysicalPlanSerializeTest.java  |  237 ++-
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |  434 +++---
 .../iotdb/db/qp/physical/SerializationTest.java    |   69 +-
 .../iotdb/db/qp/sql/IoTDBsqlVisitorTest.java       |   28 +-
 .../db/qp/utils/DatetimeQueryDataSetUtilsTest.java |   79 +-
 .../db/query/aggregation/AggregateResultTest.java  |   93 +-
 .../query/aggregation/DescAggregateResultTest.java |   29 +-
 .../db/query/control/FileReaderManagerTest.java    |   99 +-
 .../db/query/control/QueryResourceManagerTest.java |   58 +-
 .../iotdb/db/query/control/TracingManagerTest.java |   50 +-
 .../dataset/EngineDataSetWithValueFilterTest.java  |  112 +-
 .../iotdb/db/query/dataset/ListDataSetTest.java    |   82 +-
 .../db/query/dataset/ShowTimeSeriesResultTest.java |   29 +-
 .../iotdb/db/query/dataset/SingleDataSetTest.java  |   69 +-
 .../query/dataset/UDTFAlignByTimeDataSetTest.java  | 1270 ++++++++--------
 .../dataset/groupby/GroupByEngineDataSetTest.java  |  200 +--
 .../dataset/groupby/GroupByFillDataSetTest.java    |  102 +-
 .../dataset/groupby/GroupByLevelDataSetTest.java   |   39 +-
 .../dataset/groupby/GroupByTimeDataSetTest.java    |  154 +-
 .../query/externalsort/ExternalSortEngineTest.java |   16 +-
 .../db/query/externalsort/FakeChunkReaderWrap.java |   12 +-
 ...ExternalSortFileSerializerDeserializerTest.java |   57 +-
 .../reader/series/SeriesAggregateReaderTest.java   |   20 +-
 .../reader/series/SeriesReaderByTimestampTest.java |   21 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   69 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |  135 +-
 .../query/reader/universal/FakedSeriesReader.java  |   17 +-
 .../reader/universal/PriorityMergeReaderTest.java  |   51 +-
 .../reader/universal/PriorityMergeReaderTest2.java |    4 +-
 .../ElasticSerializableRowRecordListTest.java      |  456 +++---
 .../ElasticSerializableTVListTest.java             |  521 +++----
 .../SerializableBinaryTVListTest.java              |  167 ++-
 .../SerializableBooleanTVListTest.java             |  167 ++-
 .../SerializableDoubleTVListTest.java              |  165 +-
 .../datastructure/SerializableFloatTVListTest.java |  163 +-
 .../datastructure/SerializableIntTVListTest.java   |  163 +-
 .../udf/datastructure/SerializableListTest.java    |   85 +-
 .../datastructure/SerializableLongTVListTest.java  |  163 +-
 .../SerializableRowRecordListTest.java             |  357 ++---
 .../udf/datastructure/SerializableTVListTest.java  |   76 +-
 .../iotdb/db/query/udf/example/Accumulator.java    |  189 +--
 .../apache/iotdb/db/query/udf/example/Adder.java   |  187 +--
 .../apache/iotdb/db/query/udf/example/Counter.java |  163 +-
 .../org/apache/iotdb/db/query/udf/example/Max.java |    8 +-
 .../iotdb/db/query/udf/example/Multiplier.java     |  131 +-
 .../SlidingSizeWindowConstructorTester0.java       |  117 +-
 .../SlidingSizeWindowConstructorTester1.java       |  133 +-
 .../SlidingTimeWindowConstructionTester.java       |  148 +-
 .../db/query/udf/example/TerminateTester.java      |    1 +
 .../org/apache/iotdb/db/script/EnvScriptIT.java    |   53 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |  165 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   90 +-
 .../receiver/recover/SyncReceiverLoggerTest.java   |   57 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |  197 ++-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |   86 +-
 .../sync/sender/recover/SyncSenderLoggerTest.java  |   49 +-
 .../db/sync/sender/transfer/SyncClientTest.java    |   77 +-
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |  132 +-
 .../org/apache/iotdb/db/tools/MLogParserTest.java  |   48 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |   54 +-
 .../iotdb/db/utils/CopyOnReadLinkedListTest.java   |    6 +-
 .../iotdb/db/utils/EncodingInferenceUtilsTest.java |   21 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   72 +-
 .../apache/iotdb/db/utils/FilePathUtilsTest.java   |   30 +-
 .../iotdb/db/utils/MathQueryDataSetUtilsTest.java  |   44 +-
 .../org/apache/iotdb/db/utils/MemUtilsTest.java    |   11 +-
 .../apache/iotdb/db/utils/OpenFileNumUtilTest.java |   32 +-
 .../java/org/apache/iotdb/db/utils/RandomNum.java  |   11 +-
 .../org/apache/iotdb/db/utils/SchemaUtilsTest.java |   23 +-
 .../apache/iotdb/db/utils/SerializeUtilsTest.java  |   52 +-
 .../iotdb/db/utils/TypeInferenceUtilsTest.java     |   63 +-
 .../db/utils/datastructure/BinaryTVListTest.java   |   16 +-
 .../db/utils/datastructure/BooleanTVListTest.java  |   14 +-
 .../db/utils/datastructure/DoubleTVListTest.java   |   16 +-
 .../db/utils/datastructure/FloatTVListTest.java    |   16 +-
 .../db/utils/datastructure/IntTVListTest.java      |   18 +-
 .../db/utils/datastructure/LongTVListTest.java     |   37 +-
 .../db/utils/datastructure/PrecisionTest.java      |   67 +-
 .../db/utils/datastructure/TimeSelectorTest.java   |    7 +-
 .../iotdb/db/writelog/IoTDBLogFileSizeTest.java    |  195 +--
 .../apache/iotdb/db/writelog/PerformanceTest.java  |  118 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |  149 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |  167 ++-
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |   43 +-
 .../db/writelog/io/MultiFileLogReaderTest.java     |   29 +-
 .../db/writelog/recover/DeviceStringTest.java      |   41 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |  158 +-
 .../recover/RecoverResourceFromReaderTest.java     |  193 ++-
 .../db/writelog/recover/SeqTsFileRecoverTest.java  |  166 ++-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |  167 ++-
 .../org/apache/iotdb/rpc/AutoResizingBuffer.java   |   15 +-
 .../iotdb/rpc/AutoScalingBufferReadTransport.java  |    2 -
 .../iotdb/rpc/AutoScalingBufferWriteTransport.java |    5 +-
 .../apache/iotdb/rpc/BatchExecutionException.java  |    4 +-
 .../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java |   47 +-
 .../org/apache/iotdb/rpc/NonOpenTransport.java     |    8 +-
 .../org/apache/iotdb/rpc/RedirectException.java    |    7 +-
 .../org/apache/iotdb/rpc/RpcTransportFactory.java  |    8 +-
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |   74 +-
 .../org/apache/iotdb/rpc/SynchronizedHandler.java  |    9 +-
 .../rpc/TCompressedElasticFramedTransport.java     |   23 +-
 .../apache/iotdb/rpc/TElasticFramedTransport.java  |   22 +-
 .../java/org/apache/iotdb/rpc/TSStatusCode.java    |    5 +-
 .../iotdb/rpc/TSnappyElasticFramedTransport.java   |   13 +-
 .../rpc/TimeoutChangeableTFastFramedTransport.java |    6 +-
 .../TimeoutChangeableTSnappyFramedTransport.java   |    6 +-
 .../iotdb/rpc/TimeoutChangeableTransport.java      |    3 -
 .../main/java/org/apache/iotdb/session/Config.java |    8 +-
 .../java/org/apache/iotdb/session/Session.java     |  574 ++++---
 .../apache/iotdb/session/SessionConnection.java    |   88 +-
 .../org/apache/iotdb/session/SessionDataSet.java   |   82 +-
 .../iotdb/session/pool/SessionDataSetWrapper.java  |   36 +-
 .../org/apache/iotdb/session/pool/SessionPool.java |  381 +++--
 .../iotdb/session/IoTDBSessionComplexIT.java       |  182 ++-
 .../iotdb/session/IoTDBSessionIteratorIT.java      |  233 +--
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |  262 +++-
 .../apache/iotdb/session/SessionCacheLeaderUT.java |  191 ++-
 .../java/org/apache/iotdb/session/SessionUT.java   |   52 +-
 .../apache/iotdb/session/pool/SessionPoolTest.java |  170 ++-
 .../org/apache/iotdb/spark/db/SQLConstant.java     |    6 +-
 .../iotdb/spark/tsfile/io/TsFileOutputFormat.java  |    9 +-
 .../iotdb/spark/tsfile/io/TsFileRecordWriter.java  |   22 +-
 .../org/apache/iotdb/spark/tsfile/qp/Executor.java |   15 +-
 .../iotdb/spark/tsfile/qp/QueryProcessor.java      |   34 +-
 .../spark/tsfile/qp/common/BasicOperator.java      |    7 +-
 .../spark/tsfile/qp/common/FilterOperator.java     |   10 +-
 .../iotdb/spark/tsfile/qp/common/Operator.java     |    5 +-
 .../iotdb/spark/tsfile/qp/common/SQLConstant.java  |    7 +-
 .../iotdb/spark/tsfile/qp/common/SingleQuery.java  |   20 +-
 .../iotdb/spark/tsfile/qp/common/TSQueryPlan.java  |    5 +-
 .../qp/exception/BasicOperatorException.java       |    7 +-
 .../tsfile/qp/exception/DNFOptimizeException.java  |    7 +-
 .../qp/exception/LogicalOptimizeException.java     |    6 +-
 .../tsfile/qp/exception/MergeFilterException.java  |    2 -
 .../qp/exception/QueryOperatorException.java       |    1 -
 .../qp/exception/QueryProcessorException.java      |    6 +-
 .../tsfile/qp/exception/RemoveNotException.java    |    7 +-
 .../tsfile/qp/optimizer/DNFFilterOptimizer.java    |   29 +-
 .../tsfile/qp/optimizer/IFilterOptimizer.java      |    5 +-
 .../qp/optimizer/MergeSingleFilterOptimizer.java   |    7 +-
 .../tsfile/qp/optimizer/PhysicalOptimizer.java     |   51 +-
 .../tsfile/qp/optimizer/RemoveNotOptimizer.java    |   31 +-
 .../apache/iotdb/tsfile/common/cache/Cache.java    |    4 +-
 .../apache/iotdb/tsfile/common/cache/LRUCache.java |   17 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |  895 ++++++-----
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |  324 ++--
 .../tsfile/common/constant/JsonFormatConstant.java |   90 +-
 .../tsfile/common/constant/QueryConstant.java      |    3 +-
 .../tsfile/common/constant/TsFileConstant.java     |   68 +-
 .../apache/iotdb/tsfile/compress/ICompressor.java  |   27 +-
 .../iotdb/tsfile/compress/IUnCompressor.java       |   41 +-
 .../tsfile/encoding/bitpacking/IntPacker.java      |   59 +-
 .../tsfile/encoding/bitpacking/LongPacker.java     |   61 +-
 .../tsfile/encoding/decoder/BitmapDecoder.java     |   69 +-
 .../iotdb/tsfile/encoding/decoder/Decoder.java     |    7 +-
 .../encoding/decoder/DeltaBinaryDecoder.java       |   35 +-
 .../encoding/decoder/DoublePrecisionDecoderV1.java |   19 +-
 .../encoding/decoder/DoublePrecisionDecoderV2.java |  104 +-
 .../tsfile/encoding/decoder/FloatDecoder.java      |   29 +-
 .../tsfile/encoding/decoder/GorillaDecoderV1.java  |   13 +-
 .../tsfile/encoding/decoder/GorillaDecoderV2.java  |  243 +--
 .../tsfile/encoding/decoder/IntGorillaDecoder.java |  178 +--
 .../tsfile/encoding/decoder/IntRleDecoder.java     |  250 ++--
 .../encoding/decoder/LongGorillaDecoder.java       |  176 +--
 .../tsfile/encoding/decoder/LongRleDecoder.java    |  240 +--
 .../tsfile/encoding/decoder/PlainDecoder.java      |    8 +-
 .../encoding/decoder/RegularDataDecoder.java       |   36 +-
 .../iotdb/tsfile/encoding/decoder/RleDecoder.java  |  470 +++---
 .../encoding/decoder/SinglePrecisionDecoderV1.java |   19 +-
 .../encoding/decoder/SinglePrecisionDecoderV2.java |  104 +-
 .../tsfile/encoding/encoder/BitmapEncoder.java     |   46 +-
 .../encoding/encoder/DeltaBinaryEncoder.java       |   59 +-
 .../encoding/encoder/DoublePrecisionEncoderV1.java |   21 +-
 .../encoding/encoder/DoublePrecisionEncoderV2.java |  108 +-
 .../iotdb/tsfile/encoding/encoder/Encoder.java     |   19 +-
 .../tsfile/encoding/encoder/FloatEncoder.java      |   36 +-
 .../tsfile/encoding/encoder/GorillaEncoderV1.java  |    4 +-
 .../tsfile/encoding/encoder/GorillaEncoderV2.java  |  211 ++-
 .../tsfile/encoding/encoder/IntGorillaEncoder.java |  310 ++--
 .../tsfile/encoding/encoder/IntRleEncoder.java     |  263 ++--
 .../encoding/encoder/LongGorillaEncoder.java       |  310 ++--
 .../tsfile/encoding/encoder/LongRleEncoder.java    |  249 ++--
 .../tsfile/encoding/encoder/PlainEncoder.java      |   41 +-
 .../encoding/encoder/RegularDataEncoder.java       |   49 +-
 .../iotdb/tsfile/encoding/encoder/RleEncoder.java  |  674 +++++----
 .../iotdb/tsfile/encoding/encoder/SDTEncoder.java  |   66 +-
 .../encoding/encoder/SinglePrecisionEncoderV1.java |   24 +-
 .../encoding/encoder/SinglePrecisionEncoderV2.java |  108 +-
 .../tsfile/encoding/encoder/TSEncodingBuilder.java |   67 +-
 .../iotdb/tsfile/exception/NullFieldException.java |    1 -
 .../tsfile/exception/cache/CacheException.java     |    3 +-
 .../CompressionTypeNotSupportedException.java      |    4 +-
 .../exception/filter/StatisticsClassException.java |    1 -
 .../filter/UnSupportFilterDataTypeException.java   |    4 +-
 .../exception/write/NoMeasurementException.java    |    5 +-
 .../tsfile/exception/write/PageException.java      |    4 +-
 .../write/TsFileNotCompleteException.java          |    3 +-
 .../exception/write/WriteProcessException.java     |    4 +-
 .../org/apache/iotdb/tsfile/file/MetaMarker.java   |   27 +-
 .../iotdb/tsfile/file/header/ChunkGroupHeader.java |   24 +-
 .../iotdb/tsfile/file/header/ChunkHeader.java      |   91 +-
 .../iotdb/tsfile/file/header/PageHeader.java       |   31 +-
 .../tsfile/file/metadata/ChunkGroupMetadata.java   |    4 +-
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |   84 +-
 .../file/metadata/MetadataIndexConstructor.java    |   55 +-
 .../tsfile/file/metadata/MetadataIndexEntry.java   |    3 +-
 .../tsfile/file/metadata/MetadataIndexNode.java    |   23 +-
 .../tsfile/file/metadata/TimeseriesMetadata.java   |   33 +-
 .../iotdb/tsfile/file/metadata/TsFileMetadata.java |   28 +-
 .../file/metadata/enums/CompressionType.java       |   37 +-
 .../file/metadata/enums/MetadataIndexNodeType.java |   25 +-
 .../tsfile/file/metadata/enums/TSDataType.java     |  232 ++-
 .../tsfile/file/metadata/enums/TSEncoding.java     |  142 +-
 .../file/metadata/statistics/BinaryStatistics.java |   21 +-
 .../metadata/statistics/BooleanStatistics.java     |   29 +-
 .../file/metadata/statistics/DoubleStatistics.java |   58 +-
 .../file/metadata/statistics/FloatStatistics.java  |   55 +-
 .../metadata/statistics/IntegerStatistics.java     |   56 +-
 .../file/metadata/statistics/LongStatistics.java   |   54 +-
 .../file/metadata/statistics/Statistics.java       |   29 +-
 .../org/apache/iotdb/tsfile/fileSystem/FSType.java |    3 +-
 .../fileInputFactory/FileInputFactory.java         |    1 -
 .../fileInputFactory/HDFSInputFactory.java         |    6 +-
 .../fileInputFactory/LocalFSInputFactory.java      |    8 +-
 .../fileOutputFactory/FileOutputFactory.java       |    1 -
 .../fileOutputFactory/HDFSOutputFactory.java       |    9 +-
 .../fileOutputFactory/LocalFSOutputFactory.java    |   10 +-
 .../tsfile/fileSystem/fsFactory/FSFactory.java     |   14 +-
 .../tsfile/fileSystem/fsFactory/HDFSFactory.java   |   84 +-
 .../fileSystem/fsFactory/LocalFSFactory.java       |   17 +-
 .../apache/iotdb/tsfile/read/ReadOnlyTsFile.java   |   14 +-
 .../apache/iotdb/tsfile/read/TimeValuePair.java    |    4 +-
 .../iotdb/tsfile/read/TsFileCheckStatus.java       |    1 -
 .../iotdb/tsfile/read/TsFileRestorableReader.java  |   12 +-
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  418 +++---
 .../iotdb/tsfile/read/UnClosedTsFileReader.java    |   16 +-
 .../apache/iotdb/tsfile/read/common/BatchData.java |   23 +-
 .../iotdb/tsfile/read/common/BatchDataFactory.java |    4 +-
 .../org/apache/iotdb/tsfile/read/common/Chunk.java |   39 +-
 .../tsfile/read/common/DescReadBatchData.java      |   12 +-
 .../tsfile/read/common/DescReadWriteBatchData.java |   45 +-
 .../org/apache/iotdb/tsfile/read/common/Field.java |    5 +-
 .../org/apache/iotdb/tsfile/read/common/Path.java  |   29 +-
 .../apache/iotdb/tsfile/read/common/RowRecord.java |    3 +-
 .../iotdb/tsfile/read/common/SignalBatchData.java  |    6 +-
 .../apache/iotdb/tsfile/read/common/TimeRange.java |   55 +-
 .../read/controller/CachedChunkLoaderImpl.java     |   25 +-
 .../iotdb/tsfile/read/controller/IChunkLoader.java |    8 +-
 .../read/controller/IChunkMetadataLoader.java      |    8 +-
 .../tsfile/read/controller/IMetadataQuerier.java   |   19 +-
 .../read/controller/MetadataQuerierByFileImpl.java |   86 +-
 .../tsfile/read/expression/ExpressionType.java     |   24 +-
 .../tsfile/read/expression/IBinaryExpression.java  |    1 -
 .../tsfile/read/expression/QueryExpression.java    |   18 +-
 .../read/expression/impl/BinaryExpression.java     |    4 +-
 .../read/expression/impl/GlobalTimeExpression.java |    6 +-
 .../expression/impl/SingleSeriesExpression.java    |    4 +-
 .../read/expression/util/ExpressionOptimizer.java  |   79 +-
 .../iotdb/tsfile/read/filter/GroupByFilter.java    |   32 +-
 .../iotdb/tsfile/read/filter/TimeFilter.java       |    9 +-
 .../iotdb/tsfile/read/filter/ValueFilter.java      |    8 +-
 .../tsfile/read/filter/basic/BinaryFilter.java     |   13 +-
 .../iotdb/tsfile/read/filter/basic/Filter.java     |   25 +-
 .../tsfile/read/filter/basic/UnaryFilter.java      |   11 +-
 .../tsfile/read/filter/factory/FilterFactory.java  |    4 +-
 .../read/filter/factory/FilterSerializeId.java     |   12 +-
 .../tsfile/read/filter/factory/FilterType.java     |    5 +-
 .../tsfile/read/filter/operator/AndFilter.java     |   15 +-
 .../iotdb/tsfile/read/filter/operator/Eq.java      |    7 +-
 .../iotdb/tsfile/read/filter/operator/Gt.java      |    3 +-
 .../iotdb/tsfile/read/filter/operator/GtEq.java    |    4 +-
 .../iotdb/tsfile/read/filter/operator/In.java      |   14 +-
 .../iotdb/tsfile/read/filter/operator/Lt.java      |    3 +-
 .../iotdb/tsfile/read/filter/operator/LtEq.java    |    4 +-
 .../iotdb/tsfile/read/filter/operator/NotEq.java   |    6 +-
 .../tsfile/read/filter/operator/NotFilter.java     |   16 +-
 .../tsfile/read/filter/operator/OrFilter.java      |   18 +-
 .../query/dataset/DataSetWithTimeGenerator.java    |   12 +-
 .../query/dataset/DataSetWithoutTimeGenerator.java |   35 +-
 .../tsfile/read/query/dataset/EmptyDataSet.java    |    3 +-
 .../tsfile/read/query/dataset/QueryDataSet.java    |   15 +-
 .../query/executor/ExecutorWithTimeGenerator.java  |   16 +-
 .../tsfile/read/query/executor/QueryExecutor.java  |    3 +-
 .../tsfile/read/query/executor/TsFileExecutor.java |   56 +-
 .../read/query/timegenerator/TimeGenerator.java    |    5 +-
 .../query/timegenerator/TsFileTimeGenerator.java   |   14 +-
 .../read/query/timegenerator/node/AndNode.java     |    2 +-
 .../read/query/timegenerator/node/LeafNode.java    |    8 +-
 .../read/query/timegenerator/node/NodeType.java    |    8 +-
 .../read/query/timegenerator/node/OrNode.java      |    8 +-
 .../tsfile/read/reader/BatchDataIterator.java      |    3 +-
 .../iotdb/tsfile/read/reader/IBatchReader.java     |    3 +-
 .../iotdb/tsfile/read/reader/IPageReader.java      |    3 +-
 .../iotdb/tsfile/read/reader/LocalTsFileInput.java |    8 +-
 .../iotdb/tsfile/read/reader/TsFileInput.java      |   95 +-
 .../tsfile/read/reader/chunk/ChunkReader.java      |   96 +-
 .../read/reader/chunk/ChunkReaderByTimestamp.java  |    1 -
 .../iotdb/tsfile/read/reader/page/PageReader.java  |   45 +-
 .../reader/series/AbstractFileSeriesReader.java    |   17 +-
 .../read/reader/series/EmptyFileSeriesReader.java  |    6 +-
 .../read/reader/series/FileSeriesReader.java       |   14 +-
 .../reader/series/FileSeriesReaderByTimestamp.java |   19 +-
 .../java/org/apache/iotdb/tsfile/utils/Binary.java |    8 +-
 .../org/apache/iotdb/tsfile/utils/BloomFilter.java |   12 +-
 .../org/apache/iotdb/tsfile/utils/BytesUtils.java  |   80 +-
 .../java/org/apache/iotdb/tsfile/utils/Loader.java |   11 +-
 .../apache/iotdb/tsfile/utils/Murmur128Hash.java   |   31 +-
 .../java/org/apache/iotdb/tsfile/utils/Pair.java   |    4 +-
 .../org/apache/iotdb/tsfile/utils/PublicBAOS.java  |   40 +-
 .../iotdb/tsfile/utils/RamUsageEstimator.java      |  337 ++---
 .../tsfile/utils/ReadWriteForEncodingUtils.java    |   65 +-
 .../iotdb/tsfile/utils/ReadWriteIOUtils.java       |  233 +--
 .../apache/iotdb/tsfile/utils/StringContainer.java |   66 +-
 .../apache/iotdb/tsfile/utils/TsPrimitiveType.java |   12 +-
 .../tsfile/v2/file/footer/ChunkGroupFooterV2.java  |   11 +-
 .../iotdb/tsfile/v2/file/header/ChunkHeaderV2.java |   31 +-
 .../iotdb/tsfile/v2/file/header/PageHeaderV2.java  |   12 +-
 .../tsfile/v2/file/metadata/ChunkMetadataV2.java   |    9 +-
 .../v2/file/metadata/MetadataIndexEntryV2.java     |    7 +-
 .../v2/file/metadata/MetadataIndexNodeV2.java      |   16 +-
 .../v2/file/metadata/TimeseriesMetadataV2.java     |   13 +-
 .../tsfile/v2/file/metadata/TsFileMetadataV2.java  |   16 +-
 .../v2/file/metadata/statistics/StatisticsV2.java  |   18 +-
 .../tsfile/v2/read/TsFileSequenceReaderForV2.java  |  232 +--
 .../tsfile/v2/read/reader/page/PageReaderV2.java   |   33 +-
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |   57 +-
 .../tsfile/write/chunk/ChunkGroupWriterImpl.java   |   54 +-
 .../iotdb/tsfile/write/chunk/ChunkWriterImpl.java  |  135 +-
 .../tsfile/write/chunk/IChunkGroupWriter.java      |   54 +-
 .../iotdb/tsfile/write/chunk/IChunkWriter.java     |   80 +-
 .../apache/iotdb/tsfile/write/page/PageWriter.java |  111 +-
 .../apache/iotdb/tsfile/write/record/TSRecord.java |   30 +-
 .../apache/iotdb/tsfile/write/record/Tablet.java   |  139 +-
 .../write/record/datapoint/BooleanDataPoint.java   |   16 +-
 .../tsfile/write/record/datapoint/DataPoint.java   |   17 +-
 .../write/record/datapoint/DoubleDataPoint.java    |   16 +-
 .../write/record/datapoint/FloatDataPoint.java     |   15 +-
 .../write/record/datapoint/IntDataPoint.java       |   15 +-
 .../write/record/datapoint/LongDataPoint.java      |   17 +-
 .../write/record/datapoint/StringDataPoint.java    |   17 +-
 .../tsfile/write/schema/MeasurementSchema.java     |  115 +-
 .../apache/iotdb/tsfile/write/schema/Schema.java   |   13 +-
 .../tsfile/write/schema/TimeseriesSchema.java      |   92 +-
 .../write/writer/ForceAppendTsFileWriter.java      |   15 +-
 .../iotdb/tsfile/write/writer/IDataWriter.java     |    4 +-
 .../tsfile/write/writer/LocalTsFileOutput.java     |    6 +-
 .../write/writer/RestorableTsFileIOWriter.java     |   71 +-
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |  137 +-
 .../iotdb/tsfile/write/writer/TsFileOutput.java    |   18 +-
 .../apache/iotdb/tsfile/common/LRUCacheTest.java   |   18 +-
 .../apache/iotdb/tsfile/compress/CompressTest.java |   24 +-
 .../org/apache/iotdb/tsfile/compress/GZIPTest.java |   17 +-
 .../org/apache/iotdb/tsfile/compress/LZ4Test.java  |   15 +-
 .../apache/iotdb/tsfile/compress/SnappyTest.java   |   25 +-
 .../apache/iotdb/tsfile/constant/TestConstant.java |    1 -
 .../iotdb/tsfile/encoding/SDTEncoderTest.java      |   25 +-
 .../tsfile/encoding/bitpacking/IntPackerTest.java  |    9 +-
 .../tsfile/encoding/bitpacking/LongPackerTest.java |   11 +-
 .../tsfile/encoding/decoder/BitmapDecoderTest.java |   19 +-
 .../tsfile/encoding/decoder/FloatDecoderTest.java  |   40 +-
 .../encoding/decoder/GorillaDecoderV1Test.java     |   25 +-
 .../encoding/decoder/GorillaDecoderV2Test.java     | 1186 +++++++--------
 .../tsfile/encoding/decoder/IntRleDecoderTest.java |  436 +++---
 .../encoding/decoder/LongRleDecoderTest.java       |  442 +++---
 .../delta/DeltaBinaryEncoderIntegerTest.java       |   21 +-
 .../decoder/delta/DeltaBinaryEncoderLongTest.java  |   28 +-
 .../regular/RegularDataEncoderIntegerTest.java     |   12 +-
 .../regular/RegularDataEncoderLongTest.java        |   70 +-
 .../iotdb/tsfile/file/header/PageHeaderTest.java   |   23 +-
 .../file/metadata/MetadataIndexNodeTest.java       |   10 +-
 .../file/metadata/TimeSeriesMetadataTest.java      |   19 +-
 .../tsfile/file/metadata/TsFileMetadataTest.java   |   17 +-
 .../metadata/statistics/DoubleStatisticsTest.java  |    6 +-
 .../metadata/statistics/FloatStatisticsTest.java   |    6 +-
 .../metadata/statistics/IntegerStatisticsTest.java |    4 +-
 .../metadata/statistics/LongStatisticsTest.java    |    8 +-
 .../metadata/statistics/StringStatisticsTest.java  |    2 +-
 .../tsfile/file/metadata/utils/TestHelper.java     |    7 +-
 .../iotdb/tsfile/file/metadata/utils/Utils.java    |   40 +-
 .../apache/iotdb/tsfile/read/ExpressionTest.java   |    5 +-
 .../iotdb/tsfile/read/GetAllDevicesTest.java       |   17 +-
 .../iotdb/tsfile/read/ReadInPartitionTest.java     |   92 +-
 .../iotdb/tsfile/read/ReadOnlyTsFileTest.java      |   50 +-
 .../org/apache/iotdb/tsfile/read/ReadTest.java     |   91 +-
 .../iotdb/tsfile/read/TimePlainEncodeReadTest.java |  106 +-
 .../tsfile/read/TimeSeriesMetadataReadTest.java    |   14 +-
 .../tsfile/read/TsFileRestorableReaderTest.java    |   20 +-
 .../tsfile/read/TsFileSequenceReaderTest.java      |   31 +-
 .../iotdb/tsfile/read/common/BatchDataTest.java    |    6 +-
 .../apache/iotdb/tsfile/read/common/FieldTest.java |    2 +-
 .../apache/iotdb/tsfile/read/common/PathTest.java  |    2 +-
 .../iotdb/tsfile/read/common/TimeRangeTest.java    |   13 +-
 .../tsfile/read/controller/ChunkLoaderTest.java    |   19 +-
 .../controller/IMetadataQuerierByFileImplTest.java |   60 +-
 .../tsfile/read/filter/FilterSerializeTest.java    |   65 +-
 .../tsfile/read/filter/GroupByFilterTest.java      |   12 +-
 .../read/filter/IExpressionOptimizerTest.java      |  129 +-
 .../read/filter/MinTimeMaxTimeFilterTest.java      |    5 +-
 .../iotdb/tsfile/read/filter/OperatorTest.java     |   17 +-
 .../tsfile/read/filter/StatisticsFilterTest.java   |   10 +-
 .../read/query/executor/QueryExecutorTest.java     |   46 +-
 .../tsfile/read/query/timegenerator/NodeTest.java  |   43 +-
 .../read/query/timegenerator/ReadWriteTest.java    |   37 +-
 .../query/timegenerator/ReaderByTimestampTest.java |   31 +-
 .../timegenerator/TimeGeneratorReadEmptyTest.java  |   31 +-
 .../timegenerator/TimeGeneratorReadWriteTest.java  |   38 +-
 .../query/timegenerator/TimeGeneratorTest.java     |   24 +-
 .../TsFileGeneratorForSeriesReaderByTimestamp.java |  109 +-
 .../iotdb/tsfile/read/reader/FakedBatchReader.java |    8 +-
 .../tsfile/read/reader/FakedMultiBatchReader.java  |    7 +-
 .../tsfile/read/reader/FakedTimeGenerator.java     |   22 +-
 .../iotdb/tsfile/read/reader/PageReaderTest.java   |  196 ++-
 .../iotdb/tsfile/read/reader/ReaderTest.java       |   31 +-
 .../apache/iotdb/tsfile/utils/BloomFilterTest.java |    9 +-
 .../apache/iotdb/tsfile/utils/BytesUtilsTest.java  |   12 +-
 .../apache/iotdb/tsfile/utils/FileGenerator.java   |  112 +-
 .../org/apache/iotdb/tsfile/utils/FileUtils.java   |   24 +-
 .../apache/iotdb/tsfile/utils/FileUtilsTest.java   |   11 +-
 .../org/apache/iotdb/tsfile/utils/PairTest.java    |   11 +-
 .../utils/ReadWriteForEncodingUtilsTest.java       |    7 +-
 .../iotdb/tsfile/utils/ReadWriteIOUtilsTest.java   |   16 +-
 .../tsfile/utils/ReadWriteStreamUtilsTest.java     |   49 +-
 .../tsfile/utils/ReadWriteToBytesUtilsTest.java    |   13 +-
 .../org/apache/iotdb/tsfile/utils/RecordUtils.java |   13 +-
 .../apache/iotdb/tsfile/utils/RecordUtilsTest.java |   39 +-
 .../iotdb/tsfile/utils/StringContainerTest.java    |   10 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |  111 +-
 .../iotdb/tsfile/utils/TsPrimitiveTypeTest.java    |    2 +-
 .../tsfile/write/DefaultDeviceTemplateTest.java    |   21 +-
 .../org/apache/iotdb/tsfile/write/PerfTest.java    |  101 +-
 .../iotdb/tsfile/write/ReadPageInMemTest.java      |   49 +-
 ...SameMeasurementsWithDifferentDataTypesTest.java |   36 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   15 +-
 .../iotdb/tsfile/write/TsFileReadWriteTest.java    |   85 +-
 .../iotdb/tsfile/write/TsFileWriterTest.java       |  113 +-
 .../org/apache/iotdb/tsfile/write/WriteTest.java   |   99 +-
 .../write/schema/converter/SchemaBuilderTest.java  |   83 +-
 .../write/writer/ForceAppendTsFileWriterTest.java  |   54 +-
 .../writer/MeasurementSchemaSerializeTest.java     |  112 +-
 .../iotdb/tsfile/write/writer/PageWriterTest.java  |   14 +-
 .../write/writer/RestorableTsFileIOWriterTest.java |  288 ++--
 .../apache/zeppelin/iotdb/IoTDBInterpreter.java    |  115 +-
 .../zeppelin/iotdb/IoTDBInterpreterTest.java       |  268 ++--
 1603 files changed, 72616 insertions(+), 60268 deletions(-)

diff --cc cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
index ad4c00c,cabdd8c..6e56fdb
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
@@@ -207,7 -203,7 +203,7 @@@ public class ClientMain 
          queryPorts = parseIntArray(commandLine.getOptionValue(PARAM_QUERY_PORTS));
        }
        if (queryPorts == null) {
-         queryPorts = new int[]{port, port + 1, port + 2};
 -        queryPorts = new int[] {55560, 55561, 55562};
++        queryPorts = new int[] {port, port + 2, port + 4};
        }
        for (int queryPort : queryPorts) {
          System.out.println("Test port: " + queryPort);
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
index 5fc806c,bd46ae5..d0fa7cc
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
@@@ -55,6 -43,12 +45,10 @@@ import org.apache.thrift.transport.TTra
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
+ import java.io.IOException;
 -import java.util.Arrays;
+ import java.util.HashSet;
 -import java.util.List;
+ import java.util.Set;
+ 
  public class ClusterMain {
  
    private static final Logger logger = LoggerFactory.getLogger(ClusterMain.class);
@@@ -71,37 -66,30 +65,36 @@@
  
    public static void main(String[] args) {
      if (args.length < 1) {
-       logger.error("Usage: <-s|-a|-r> "
+       logger.error(
 -          "Usage: <-s|-a|-r> [-internal_meta_port <internal meta port>] "
 -              + "[-internal_data_port <internal data port>] "
 -              + "[-cluster_rpc_port <cluster rpc port>] "
 -              + "[-seed_nodes <node1:meta_port:data_port:cluster_rpc_port,"
 -              + "node2:meta_port:data_port:cluster_rpc_port,"
 -              + "...,noden:meta_port:data_port:cluster_rpc_port>] "
 -              + "[-sc] "
 -              + "[-rpc_port <rpc port>]");
++          "Usage: <-s|-a|-r> "
 +              + "[-D{} <cluster module configure file>] "
 +              + "[-D{} <server module configure file>] "
 +              + "-s: start the node as a seed\n"
 +              + "-a: start the node as a new node\n"
 +              + "-r: remove the node out of the cluster\n",
 +          ClusterConstant.CLUSTER_CONF,
-           IoTDBConstant.IOTDB_CONF
-       );
++          IoTDBConstant.IOTDB_CONF);
 +
        return;
      }
 -    String mode = args[0];
 -    if (args.length > 1) {
 -      String[] params = Arrays.copyOfRange(args, 1, args.length);
 -      replaceDefaultPrams(params);
 -    }
 +
 +    // init server's configuration first, because the cluster configuration may read settings from
 +    // the server's configuration.
 +    IoTDBDescriptor.getInstance().getConfig().setEnableRPCService(false);
 +    IoTDBDescriptor.getInstance().getConfig().setSyncEnable(false);
-     //auto create schema is took over by cluster module, so we disable it in the server module.
++    // auto create schema is took over by cluster module, so we disable it in the server module.
 +    IoTDBDescriptor.getInstance().getConfig().setAutoCreateSchemaEnabled(false);
  
      // params check
 -    if (!checkConfig()) {
 +    try {
 +      ClusterDescriptor.getInstance().replaceHostnameWithIp();
 +    } catch (Exception e) {
 +      logger.error("replace hostname with ip failed, {}", e.getMessage());
-       return ;
+       return;
      }
  
 -    IoTDBDescriptor.getInstance().getConfig().setSyncEnable(false);
 -    IoTDBDescriptor.getInstance().getConfig().setAutoCreateSchemaEnabled(false);
 +    String mode = args[0];
 +
- 
      logger.info("Running mode {}", mode);
      if (MODE_START.equals(mode)) {
        try {
@@@ -179,19 -178,78 +183,20 @@@
  
      // assert this node is in seed nodes list
      Node localNode = new Node();
-     localNode.setIp(IoTDBDescriptor.getInstance().getConfig().getRpcAddress()).setMetaPort(config.getInternalMetaPort())
-         .setDataPort(config.getInternalDataPort()).setClientPort(config.getClusterRpcPort());
+     localNode
 -        .setIp(config.getClusterRpcIp())
++        .setIp(IoTDBDescriptor.getInstance().getConfig().getRpcAddress())
+         .setMetaPort(config.getInternalMetaPort())
+         .setDataPort(config.getInternalDataPort())
+         .setClientPort(config.getClusterRpcPort());
      if (!seedNodes.contains(localNode)) {
-       String message = String.format(
-           "SeedNodes must contains local node in start-server mode. LocalNode: %s ,SeedNodes: %s",
-           localNode.toString(), config.getSeedNodeUrls());
+       String message =
+           String.format(
+               "SeedNodes must contains local node in start-server mode. LocalNode: %s ,SeedNodes: %s",
+               localNode.toString(), config.getSeedNodeUrls());
        throw new StartupException(metaServer.getMember().getName(), message);
      }
    }
  
 -  private static void replaceDefaultPrams(String[] args) {
 -    int index;
 -    String[] clusterParams;
 -    String[] serverParams = null;
 -    for (index = 0; index < args.length; index++) {
 -      // find where -sc is
 -      if (SERVER_CONF_SEPARATOR.equals(args[index])) {
 -        break;
 -      }
 -    }
 -    // parameters from 0 to "-sc" are for clusters
 -    clusterParams = Arrays.copyOfRange(args, 0, index);
 -
 -    if (index < args.length) {
 -      serverParams = Arrays.copyOfRange(args, index + 1, args.length);
 -    }
 -
 -    if (clusterParams.length > 0) {
 -      // replace the cluster default conf params
 -      ClusterDescriptor.getInstance().replaceProps(clusterParams);
 -    }
 -
 -    if (serverParams != null && serverParams.length > 0) {
 -      // replace the server default conf params
 -      IoTDBDescriptor.getInstance().replaceProps(serverParams);
 -    }
 -  }
--
 -  /** check the configuration is legal or not */
 -  private static boolean checkConfig() {
 -    // 0. first replace all hostname with ip
 -    try {
 -      ClusterDescriptor.getInstance().replaceHostnameWithIp();
 -    } catch (Exception e) {
 -      logger.error("replace hostname with ip failed, {}", e.getMessage());
 -      return false;
 -    }
--
 -    // 1. check the cluster_rpc_ip and seed_nodes consistent or not
 -    // when clusterRpcIp is 127.0.0.1, the entire cluster must be start locally
 -    ClusterConfig config = ClusterDescriptor.getInstance().getConfig();
 -    String localhostIp = "127.0.0.1";
 -    String configClusterRpcIp = config.getClusterRpcIp();
 -    List<String> seedNodes = config.getSeedNodeUrls();
 -    boolean isLocalCluster = localhostIp.equals(configClusterRpcIp);
 -    for (String seedNodeIP : seedNodes) {
 -      if ((isLocalCluster && !seedNodeIP.contains(localhostIp))
 -          || (!isLocalCluster && seedNodeIP.contains(localhostIp))) {
 -        logger.error(
 -            "cluster_rpc_ip={} and seed_nodes={} should be consistent, both use local ip or real ip please",
 -            configClusterRpcIp,
 -            seedNodes);
 -        return false;
 -      }
 -    }
 -    return true;
 -  }
--
    private static void doRemoveNode(String[] args) throws IOException {
      if (args.length != 3) {
        logger.error("Usage: -r <ip> <metaPort>");
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
index c89c55b,efbe4cf..38175a5
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
@@@ -28,29 -28,24 +28,24 @@@ public class ClusterConfig 
  
    static final String CONFIG_NAME = "iotdb-cluster.properties";
  
 -  private String clusterRpcIp = "127.0.0.1";
 +  private String internalIp = "127.0.0.1";
    private int internalMetaPort = 9003;
    private int internalDataPort = 40010;
 -  private int clusterRpcPort = 55560;
 +  private int clusterRpcPort = 6667;
  
-   /**
-    * each one is a "<IP | domain name>:<meta port>:<data port>:<client port></>" string tuple
-    */
-   private List<String> seedNodeUrls = Arrays
-       .asList(String.format("127.0.0.1:%d:%d:%d", internalMetaPort, internalDataPort, clusterRpcPort));
+   /** each one is a "<IP | domain name>:<meta port>:<data port>:<client port></>" string tuple */
+   private List<String> seedNodeUrls =
+       Arrays.asList(
 -          "127.0.0.1:9003:40010:55560", "127.0.0.1:9005:40012:55561", "127.0.0.1:9007:40014:55562");
++          String.format("127.0.0.1:%d:%d:%d", internalMetaPort, internalDataPort, clusterRpcPort));
  
-   @ClusterConsistent
-   private boolean isRpcThriftCompressionEnabled = false;
+   @ClusterConsistent private boolean isRpcThriftCompressionEnabled = false;
    private int maxConcurrentClientNum = 10000;
  
-   @ClusterConsistent
-   private int replicationNum = 2;
+   @ClusterConsistent private int replicationNum = 2;
  
-   @ClusterConsistent
-   private String clusterName = "default";
+   @ClusterConsistent private String clusterName = "default";
  
-   @ClusterConsistent
-   private boolean useAsyncServer = true;
+   @ClusterConsistent private boolean useAsyncServer = true;
  
    private boolean useAsyncApplier = true;
  
@@@ -186,7 -170,15 +170,7 @@@
    public void setUseBatchInLogCatchUp(boolean useBatchInLogCatchUp) {
      this.useBatchInLogCatchUp = useBatchInLogCatchUp;
    }
-   
+ 
 -  public String getClusterRpcIp() {
 -    return clusterRpcIp;
 -  }
 -
 -  void setClusterRpcIp(String clusterRpcIp) {
 -    this.clusterRpcIp = clusterRpcIp;
 -  }
 -
    public int getInternalMetaPort() {
      return internalMetaPort;
    }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
index 927a5d2,f301f1f..35f0f42
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
@@@ -19,7 -19,20 +19,15 @@@
  
  package org.apache.iotdb.cluster.config;
  
+ import org.apache.iotdb.cluster.exception.BadSeedUrlFormatException;
+ import org.apache.iotdb.db.conf.IoTDBConstant;
++import org.apache.iotdb.db.conf.IoTDBDescriptor;
+ import org.apache.iotdb.db.exception.query.QueryProcessException;
+ 
  import com.google.common.net.InetAddresses;
 -import org.apache.commons.cli.CommandLine;
 -import org.apache.commons.cli.CommandLineParser;
 -import org.apache.commons.cli.DefaultParser;
 -import org.apache.commons.cli.Option;
 -import org.apache.commons.cli.Options;
 -import org.apache.commons.cli.ParseException;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.IOException;
@@@ -102,15 -175,24 +104,14 @@@ public class ClusterDescriptor 
        }
      }
      config.setSeedNodeUrls(newSeedUrls);
-     logger.debug("after replace, the rpcIP={}, internalIP={} seedUrls={}",
+     logger.debug(
 -        "after replace, the clusterRpcIP={}, seedUrls={}",
 -        config.getClusterRpcIp(),
++        "after replace, the rpcIP={}, internalIP={} seedUrls={}",
 +        IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
 +        config.getInternalIp(),
          config.getSeedNodeUrls());
    }
  
-   /**
-    * load an property file and set TsfileDBConfig variables.
-    */
 -  private static 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);
 -      return false;
 -    }
 -    return true;
 -  }
 -
+   /** load an property file and set TsfileDBConfig variables. */
    private void loadProps() {
  
      String url = getPropsUrl();
@@@ -123,22 -205,32 +124,31 @@@
          logger.warn("Fail to find config file {}", url, e);
        }
      }
 -    config.setClusterRpcIp(properties.getProperty("cluster_rpc_ip", config.getClusterRpcIp()));
 +    config.setInternalIp(properties.getProperty("internal_ip", config.getInternalIp()));
  
-     config.setInternalMetaPort(Integer.parseInt(properties.getProperty("internal_meta_port",
-         String.valueOf(config.getInternalMetaPort()))));
+     config.setInternalMetaPort(
+         Integer.parseInt(
+             properties.getProperty(
 -                OPTION_INTERVAL_META_PORT, String.valueOf(config.getInternalMetaPort()))));
++                "internal_meta_port", String.valueOf(config.getInternalMetaPort()))));
  
-     config.setInternalDataPort(Integer.parseInt(properties.getProperty("internal_data_port",
-         Integer.toString(config.getInternalDataPort()))));
+     config.setInternalDataPort(
+         Integer.parseInt(
+             properties.getProperty(
 -                OPTION_INTERVAL_DATA_PORT, Integer.toString(config.getInternalDataPort()))));
++                "internal_data_port", Integer.toString(config.getInternalDataPort()))));
  
-     config.setClusterRpcPort(Integer.parseInt(properties.getProperty("rpc_port",
-         Integer.toString(config.getClusterRpcPort()))));
+     config.setClusterRpcPort(
+         Integer.parseInt(
 -            properties.getProperty(
 -                OPTION_CLUSTER_RPC_PORT, Integer.toString(config.getClusterRpcPort()))));
++            properties.getProperty("rpc_port", Integer.toString(config.getClusterRpcPort()))));
  
-     config.setMaxConcurrentClientNum(Integer.parseInt(properties.getProperty(
-         "max_concurrent_client_num", String.valueOf(config.getMaxConcurrentClientNum()))));
+     config.setMaxConcurrentClientNum(
+         Integer.parseInt(
+             properties.getProperty(
+                 "max_concurrent_client_num", String.valueOf(config.getMaxConcurrentClientNum()))));
  
-     config.setReplicationNum(Integer.parseInt(properties.getProperty(
-         "default_replica_num", String.valueOf(config.getReplicationNum()))));
+     config.setReplicationNum(
+         Integer.parseInt(
+             properties.getProperty(
+                 "default_replica_num", String.valueOf(config.getReplicationNum()))));
  
      config.setClusterName(properties.getProperty("cluster_name", config.getClusterName()));
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/ClientServer.java
index 8b66630,df5b30e..ae662bc
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/ClientServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/ClientServer.java
@@@ -145,25 -143,32 +143,34 @@@ public class ClientServer extends TSSer
      } else {
        protocolFactory = new TBinaryProtocol.Factory();
      }
-     serverTransport = new TServerSocket(new InetSocketAddress(IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
-         config.getClusterRpcPort()));
+     serverTransport =
+         new TServerSocket(
 -            new InetSocketAddress(config.getClusterRpcIp(), config.getClusterRpcPort()));
++            new InetSocketAddress(
++                IoTDBDescriptor.getInstance().getConfig().getRpcAddress(),
++                config.getClusterRpcPort()));
      // async service also requires nonblocking server, and HsHaServer is basically more efficient a
      // nonblocking server
-     int maxConcurrentClientNum = Math.max(CommonUtils.getCpuCores(),
-         config.getMaxConcurrentClientNum());
+     int maxConcurrentClientNum =
+         Math.max(CommonUtils.getCpuCores(), config.getMaxConcurrentClientNum());
      TThreadPoolServer.Args poolArgs =
-         new TThreadPoolServer.Args(serverTransport).maxWorkerThreads(maxConcurrentClientNum)
+         new TThreadPoolServer.Args(serverTransport)
+             .maxWorkerThreads(maxConcurrentClientNum)
              .minWorkerThreads(CommonUtils.getCpuCores());
-     poolArgs.executorService(new ThreadPoolExecutor(poolArgs.minWorkerThreads,
-         poolArgs.maxWorkerThreads, poolArgs.stopTimeoutVal, poolArgs.stopTimeoutUnit,
-         new SynchronousQueue<>(), new ThreadFactory() {
-       private AtomicLong threadIndex = new AtomicLong(0);
+     poolArgs.executorService(
+         new ThreadPoolExecutor(
+             poolArgs.minWorkerThreads,
+             poolArgs.maxWorkerThreads,
+             poolArgs.stopTimeoutVal,
+             poolArgs.stopTimeoutUnit,
+             new SynchronousQueue<>(),
+             new ThreadFactory() {
+               private AtomicLong threadIndex = new AtomicLong(0);
  
-       @Override
-       public Thread newThread(Runnable r) {
-         return new Thread(r, "ClusterClient" + threadIndex.incrementAndGet());
-       }
-     }));
+               @Override
+               public Thread newThread(Runnable r) {
+                 return new Thread(r, "ClusterClient" + threadIndex.incrementAndGet());
+               }
+             }));
      // ClientServer will do the following processing when the HsHaServer has parsed a request
      poolArgs.processor(new Processor<>(this));
      poolArgs.protocolFactory(protocolFactory);
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
index ba3b281,630fb8e..c102b2d
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/DataClusterServer.java
@@@ -38,30 -29,30 +29,12 @@@ import org.apache.iotdb.cluster.partiti
  import org.apache.iotdb.cluster.partition.PartitionGroup;
  import org.apache.iotdb.cluster.partition.PartitionTable;
  import org.apache.iotdb.cluster.partition.slot.SlotPartitionTable;
--import org.apache.iotdb.cluster.rpc.thrift.AppendEntriesRequest;
--import org.apache.iotdb.cluster.rpc.thrift.AppendEntryRequest;
--import org.apache.iotdb.cluster.rpc.thrift.ElectionRequest;
--import org.apache.iotdb.cluster.rpc.thrift.ExecutNonQueryReq;
--import org.apache.iotdb.cluster.rpc.thrift.GetAggrResultRequest;
--import org.apache.iotdb.cluster.rpc.thrift.GetAllPathsResult;
--import org.apache.iotdb.cluster.rpc.thrift.GroupByRequest;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatRequest;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
--import org.apache.iotdb.cluster.rpc.thrift.LastQueryRequest;
--import org.apache.iotdb.cluster.rpc.thrift.Node;
--import org.apache.iotdb.cluster.rpc.thrift.PreviousFillRequest;
--import org.apache.iotdb.cluster.rpc.thrift.PullSchemaRequest;
--import org.apache.iotdb.cluster.rpc.thrift.PullSchemaResp;
--import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotRequest;
--import org.apache.iotdb.cluster.rpc.thrift.PullSnapshotResp;
--import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
--import org.apache.iotdb.cluster.rpc.thrift.SingleSeriesQueryRequest;
--import org.apache.iotdb.cluster.rpc.thrift.TSDataService;
++import org.apache.iotdb.cluster.rpc.thrift.*;
  import org.apache.iotdb.cluster.rpc.thrift.TSDataService.AsyncProcessor;
  import org.apache.iotdb.cluster.rpc.thrift.TSDataService.Processor;
- import org.apache.iotdb.cluster.server.monitor.NodeReport.DataMemberReport;
  import org.apache.iotdb.cluster.server.member.DataGroupMember;
  import org.apache.iotdb.cluster.server.member.MetaGroupMember;
+ import org.apache.iotdb.cluster.server.monitor.NodeReport.DataMemberReport;
  import org.apache.iotdb.cluster.server.service.DataAsyncService;
  import org.apache.iotdb.cluster.server.service.DataSyncService;
  import org.apache.iotdb.service.rpc.thrift.TSStatus;
@@@ -75,8 -67,18 +49,14 @@@ import org.apache.thrift.transport.TTra
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
- public class DataClusterServer extends RaftServer implements TSDataService.AsyncIface,
-     TSDataService.Iface {
+ import java.net.InetSocketAddress;
+ import java.nio.ByteBuffer;
 -import java.util.ArrayList;
 -import java.util.Iterator;
 -import java.util.List;
 -import java.util.Map;
++import java.util.*;
+ import java.util.Map.Entry;
 -import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ 
+ public class DataClusterServer extends RaftServer
+     implements TSDataService.AsyncIface, TSDataService.Iface {
  
    private static final Logger logger = LoggerFactory.getLogger(DataClusterServer.class);
  
@@@ -460,14 -484,13 +462,18 @@@
  
    @Override
    TServerTransport getServerSocket() throws TTransportException {
-     logger.info("[{}] Cluster node will listen {}:{}", getServerClientName(), config.getInternalIp(),
++    logger.info(
++        "[{}] Cluster node will listen {}:{}",
++        getServerClientName(),
++        config.getInternalIp(),
 +        config.getInternalDataPort());
      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
-       return new TNonblockingServerSocket(new InetSocketAddress(config.getInternalIp(),
-           thisNode.getDataPort()), getConnectionTimeoutInMS());
+       return new TNonblockingServerSocket(
 -          new InetSocketAddress(config.getClusterRpcIp(), thisNode.getDataPort()),
++          new InetSocketAddress(config.getInternalIp(), thisNode.getDataPort()),
+           getConnectionTimeoutInMS());
      } else {
-       return new TServerSocket(new InetSocketAddress(config.getInternalIp(),
-           thisNode.getDataPort()));
+       return new TServerSocket(
 -          new InetSocketAddress(config.getClusterRpcIp(), thisNode.getDataPort()));
++          new InetSocketAddress(config.getInternalIp(), thisNode.getDataPort()));
      }
    }
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
index f5941c0,d047498..48cac64
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/MetaClusterServer.java
@@@ -26,19 -24,19 +24,7 @@@ import org.apache.iotdb.cluster.excepti
  import org.apache.iotdb.cluster.exception.StartUpCheckFailureException;
  import org.apache.iotdb.cluster.metadata.CMManager;
  import org.apache.iotdb.cluster.metadata.MetaPuller;
--import org.apache.iotdb.cluster.rpc.thrift.AddNodeResponse;
--import org.apache.iotdb.cluster.rpc.thrift.AppendEntriesRequest;
--import org.apache.iotdb.cluster.rpc.thrift.AppendEntryRequest;
--import org.apache.iotdb.cluster.rpc.thrift.CheckStatusResponse;
--import org.apache.iotdb.cluster.rpc.thrift.ElectionRequest;
--import org.apache.iotdb.cluster.rpc.thrift.ExecutNonQueryReq;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatRequest;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
--import org.apache.iotdb.cluster.rpc.thrift.Node;
--import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
--import org.apache.iotdb.cluster.rpc.thrift.StartUpStatus;
--import org.apache.iotdb.cluster.rpc.thrift.TNodeStatus;
--import org.apache.iotdb.cluster.rpc.thrift.TSMetaService;
++import org.apache.iotdb.cluster.rpc.thrift.*;
  import org.apache.iotdb.cluster.rpc.thrift.TSMetaService.AsyncProcessor;
  import org.apache.iotdb.cluster.rpc.thrift.TSMetaService.Processor;
  import org.apache.iotdb.cluster.server.heartbeat.MetaHeartbeatServer;
@@@ -59,17 -57,17 +45,20 @@@ import org.apache.thrift.transport.TNon
  import org.apache.thrift.transport.TServerSocket;
  import org.apache.thrift.transport.TServerTransport;
  import org.apache.thrift.transport.TTransportException;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
+ import java.net.InetSocketAddress;
+ import java.nio.ByteBuffer;
+ 
  /**
   * MetaCluster manages the whole cluster's metadata, such as what nodes are in the cluster and the
   * data partition. Each node has one MetaClusterServer instance, the single-node IoTDB instance is
   * started-up at the same time.
   */
- public class MetaClusterServer extends RaftServer implements TSMetaService.AsyncIface,
-     TSMetaService.Iface {
+ public class MetaClusterServer extends RaftServer
+     implements TSMetaService.AsyncIface, TSMetaService.Iface {
 +  private static Logger logger = LoggerFactory.getLogger(MetaClusterServer.class);
  
    // each node only contains one MetaGroupMember
    private MetaGroupMember member;
@@@ -153,14 -147,13 +138,18 @@@
     */
    @Override
    TServerTransport getServerSocket() throws TTransportException {
-     logger.info("[{}] Cluster node will listen {}:{}", getServerClientName(), config.getInternalIp(),
++    logger.info(
++        "[{}] Cluster node will listen {}:{}",
++        getServerClientName(),
++        config.getInternalIp(),
 +        config.getInternalMetaPort());
      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
-       return new TNonblockingServerSocket(new InetSocketAddress(config.getInternalIp(),
-           config.getInternalMetaPort()), getConnectionTimeoutInMS());
+       return new TNonblockingServerSocket(
 -          new InetSocketAddress(config.getClusterRpcIp(), config.getInternalMetaPort()),
++          new InetSocketAddress(config.getInternalIp(), config.getInternalMetaPort()),
+           getConnectionTimeoutInMS());
      } else {
-       return new TServerSocket(new InetSocketAddress(config.getInternalIp(),
-           config.getInternalMetaPort()));
+       return new TServerSocket(
 -          new InetSocketAddress(config.getClusterRpcIp(), config.getInternalMetaPort()));
++          new InetSocketAddress(config.getInternalIp(), config.getInternalMetaPort()));
      }
    }
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/RaftServer.java
index 438f1e0,7243c1b..e36264f
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/RaftServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/RaftServer.java
@@@ -220,8 -229,7 +229,11 @@@ public abstract class RaftServer implem
    }
  
    private void establishServer() throws TTransportException {
-     logger.info("[{}] Cluster node {} begins to set up with {} mode", getServerClientName(), thisNode,
-         ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()? "Async" : "Sync");
 -    logger.info("Cluster node {} begins to set up", thisNode);
++    logger.info(
++        "[{}] Cluster node {} begins to set up with {} mode",
++        getServerClientName(),
++        thisNode,
++        ClusterDescriptor.getInstance().getConfig().isUseAsyncServer() ? "Async" : "Sync");
  
      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
        poolServer = createAsyncServer();
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatServer.java
index 477c4b3,89fcd15..d38670f
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatServer.java
@@@ -61,12 -58,16 +58,16 @@@ public class DataHeartbeatServer extend
    @Override
    TServerTransport getHeartbeatServerSocket() throws TTransportException {
      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
-       return new TNonblockingServerSocket(new InetSocketAddress(config.getInternalIp(),
-           thisNode.getDataPort() + ClusterUtils.DATA_HEARTBEAT_PORT_OFFSET),
+       return new TNonblockingServerSocket(
+           new InetSocketAddress(
 -              config.getClusterRpcIp(),
++              config.getInternalIp(),
+               thisNode.getDataPort() + ClusterUtils.DATA_HEARTBEAT_PORT_OFFSET),
            getConnectionTimeoutInMS());
      } else {
-       return new TServerSocket(new InetSocketAddress(config.getInternalIp(),
-           thisNode.getDataPort() + ClusterUtils.DATA_HEARTBEAT_PORT_OFFSET));
+       return new TServerSocket(
+           new InetSocketAddress(
 -              config.getClusterRpcIp(),
++              config.getInternalIp(),
+               thisNode.getDataPort() + ClusterUtils.DATA_HEARTBEAT_PORT_OFFSET));
      }
    }
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatServer.java
index 3341bef,5b61cf1..a140b84
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/HeartbeatServer.java
@@@ -203,10 -201,10 +201,10 @@@ public abstract class HeartbeatServer 
        heartbeatPoolServer = getSyncHeartbeatServer();
      }
  
-     heartbeatClientService = Executors
-         .newSingleThreadExecutor(r -> new Thread(r, getServerClientName()));
+     heartbeatClientService =
+         Executors.newSingleThreadExecutor(r -> new Thread(r, getServerClientName()));
      heartbeatClientService.submit(() -> heartbeatPoolServer.serve());
  
 -    logger.info("Cluster node's heartbeat {} is up", thisNode);
 +    logger.info("[{}] Cluster node's heartbeat {} is up", getServerClientName(), thisNode);
    }
  }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatServer.java
index 1c3aace,08a1c37..ed99c3d
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/MetaHeartbeatServer.java
@@@ -32,11 -31,10 +31,13 @@@ import org.apache.thrift.transport.TNon
  import org.apache.thrift.transport.TServerSocket;
  import org.apache.thrift.transport.TServerTransport;
  import org.apache.thrift.transport.TTransportException;
 +import org.slf4j.Logger;
 +import org.slf4j.LoggerFactory;
  
+ import java.net.InetSocketAddress;
+ 
  public class MetaHeartbeatServer extends HeartbeatServer {
 +  private static Logger logger = LoggerFactory.getLogger(MetaHeartbeatServer.class);
  
    private MetaClusterServer metaClusterServer;
  
@@@ -64,15 -57,17 +60,22 @@@
  
    @Override
    TServerTransport getHeartbeatServerSocket() throws TTransportException {
-     logger.info("[{}] Cluster node will listen {}:{}", getServerClientName(), config.getInternalIp(),
++    logger.info(
++        "[{}] Cluster node will listen {}:{}",
++        getServerClientName(),
++        config.getInternalIp(),
 +        config.getInternalMetaPort() + ClusterUtils.META_HEARTBEAT_PORT_OFFSET);
      if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
-       return new TNonblockingServerSocket(new InetSocketAddress(config.getInternalIp(),
-           config.getInternalMetaPort() + ClusterUtils.META_HEARTBEAT_PORT_OFFSET),
+       return new TNonblockingServerSocket(
+           new InetSocketAddress(
 -              config.getClusterRpcIp(),
++              config.getInternalIp(),
+               config.getInternalMetaPort() + ClusterUtils.META_HEARTBEAT_PORT_OFFSET),
            getConnectionTimeoutInMS());
      } else {
-       return new TServerSocket(new InetSocketAddress(config.getInternalIp(),
-           config.getInternalMetaPort() + ClusterUtils.META_HEARTBEAT_PORT_OFFSET));
+       return new TServerSocket(
+           new InetSocketAddress(
 -              config.getClusterRpcIp(),
++              config.getInternalIp(),
+               config.getInternalMetaPort() + ClusterUtils.META_HEARTBEAT_PORT_OFFSET));
      }
    }
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index aa7ba59,ae42ffa..194ba4c
--- 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
@@@ -30,13 -30,13 +30,7 @@@ import org.apache.iotdb.cluster.client.
  import org.apache.iotdb.cluster.config.ClusterConstant;
  import org.apache.iotdb.cluster.config.ClusterDescriptor;
  import org.apache.iotdb.cluster.coordinator.Coordinator;
--import org.apache.iotdb.cluster.exception.AddSelfException;
--import org.apache.iotdb.cluster.exception.ConfigInconsistentException;
--import org.apache.iotdb.cluster.exception.EmptyIntervalException;
--import org.apache.iotdb.cluster.exception.LogExecutionException;
--import org.apache.iotdb.cluster.exception.PartitionTableUnavailableException;
--import org.apache.iotdb.cluster.exception.SnapshotInstallationException;
--import org.apache.iotdb.cluster.exception.StartUpCheckFailureException;
++import org.apache.iotdb.cluster.exception.*;
  import org.apache.iotdb.cluster.log.Log;
  import org.apache.iotdb.cluster.log.LogApplier;
  import org.apache.iotdb.cluster.log.applier.MetaLogApplier;
@@@ -50,22 -50,22 +44,9 @@@ import org.apache.iotdb.cluster.partiti
  import org.apache.iotdb.cluster.partition.PartitionTable;
  import org.apache.iotdb.cluster.partition.slot.SlotPartitionTable;
  import org.apache.iotdb.cluster.query.ClusterPlanRouter;
--import org.apache.iotdb.cluster.rpc.thrift.AddNodeResponse;
--import org.apache.iotdb.cluster.rpc.thrift.AppendEntryRequest;
--import org.apache.iotdb.cluster.rpc.thrift.CheckStatusResponse;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatRequest;
--import org.apache.iotdb.cluster.rpc.thrift.HeartBeatResponse;
--import org.apache.iotdb.cluster.rpc.thrift.Node;
--import org.apache.iotdb.cluster.rpc.thrift.SendSnapshotRequest;
--import org.apache.iotdb.cluster.rpc.thrift.StartUpStatus;
--import org.apache.iotdb.cluster.rpc.thrift.TSMetaService;
++import org.apache.iotdb.cluster.rpc.thrift.*;
  import org.apache.iotdb.cluster.rpc.thrift.TSMetaService.AsyncClient;
--import org.apache.iotdb.cluster.server.ClientServer;
--import org.apache.iotdb.cluster.server.DataClusterServer;
--import org.apache.iotdb.cluster.server.HardLinkCleaner;
--import org.apache.iotdb.cluster.server.NodeCharacter;
--import org.apache.iotdb.cluster.server.RaftServer;
--import org.apache.iotdb.cluster.server.Response;
++import org.apache.iotdb.cluster.server.*;
  import org.apache.iotdb.cluster.server.handlers.caller.AppendGroupEntryHandler;
  import org.apache.iotdb.cluster.server.handlers.caller.GenericHandler;
  import org.apache.iotdb.cluster.server.handlers.caller.NodeStatusHandler;
@@@ -101,35 -102,35 +83,12 @@@ import org.apache.thrift.transport.TTra
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
--import java.io.BufferedInputStream;
--import java.io.BufferedOutputStream;
--import java.io.BufferedReader;
--import java.io.BufferedWriter;
--import java.io.DataInputStream;
--import java.io.DataOutputStream;
--import java.io.File;
--import java.io.FileInputStream;
--import java.io.FileOutputStream;
--import java.io.FileReader;
--import java.io.FileWriter;
--import java.io.IOException;
++import java.io.*;
  import java.nio.ByteBuffer;
  import java.nio.file.Files;
  import java.nio.file.Paths;
--import java.util.ArrayList;
--import java.util.Arrays;
--import java.util.Collection;
--import java.util.HashMap;
--import java.util.HashSet;
--import java.util.List;
--import java.util.Map;
--import java.util.Objects;
--import java.util.Set;
--import java.util.concurrent.ExecutorService;
--import java.util.concurrent.Executors;
--import java.util.concurrent.ScheduledExecutorService;
--import java.util.concurrent.ScheduledThreadPoolExecutor;
--import java.util.concurrent.TimeUnit;
++import java.util.*;
++import java.util.concurrent.*;
  import java.util.concurrent.atomic.AtomicBoolean;
  import java.util.concurrent.atomic.AtomicInteger;
  import java.util.concurrent.atomic.AtomicLong;
@@@ -166,10 -161,8 +119,9 @@@ public class MetaGroupMember extends Ra
     * every "REPORT_INTERVAL_SEC" seconds, a reporter thread will print the status of all raft
     * members in this node
     */
-   private static final int REPORT_INTERVAL_SEC = 100;
-   /**
-    * how many times is a data record replicated, also the number of nodes in a data group
-    */
+   private static final int REPORT_INTERVAL_SEC = 10;
++
+   /** how many times is a data record replicated, also the number of nodes in a data group */
    private static final int REPLICATION_NUM =
        ClusterDescriptor.getInstance().getConfig().getReplicationNum();
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberMBean.java
index d032525,1e1d916..5f4cc4d
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberMBean.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberMBean.java
@@@ -17,8 -17,32 +17,6 @@@
   * under the License.
   */
  
 -package org.apache.iotdb.cluster.log;
 +package org.apache.iotdb.cluster.server.member;
  
- public interface MetaGroupMemberMBean {
 -import org.apache.iotdb.cluster.rpc.thrift.Node;
 -
 -import org.junit.Test;
 -
 -import java.nio.ByteBuffer;
 -
 -import static org.junit.Assert.assertEquals;
 -
 -public class HardStateTest {
 -
 -  @Test
 -  public void testHardState() {
 -    // Not NULL
 -    HardState state = new HardState();
 -    state.setCurrentTerm(2);
 -    state.setVoteFor(new Node("127.0.0.1", 30000, 0, 40000, 55560));
 -    ByteBuffer buffer = state.serialize();
 -    HardState newState = HardState.deserialize(buffer);
 -    assertEquals(state, newState);
--
 -    // NULL
 -    state.setVoteFor(null);
 -    buffer = state.serialize();
 -    newState = HardState.deserialize(buffer);
 -    assertEquals(state, newState);
 -  }
--}
++public interface MetaGroupMemberMBean {}
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMemberMBean.java
index 48af171,1e1d916..f59428a
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMemberMBean.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMemberMBean.java
@@@ -17,46 -17,32 +17,43 @@@
   * under the License.
   */
  
 -package org.apache.iotdb.cluster.log;
 +package org.apache.iotdb.cluster.server.member;
  
- import java.util.List;
- import java.util.Map;
  import org.apache.iotdb.cluster.rpc.thrift.Node;
 +import org.apache.iotdb.cluster.server.NodeCharacter;
 +import org.apache.iotdb.cluster.server.monitor.Peer;
  
- /**
-  * interfaces that the mbean of RaftMember will use
-  */
 -import org.junit.Test;
++import java.util.List;
++import java.util.Map;
+ 
 -import java.nio.ByteBuffer;
++/** interfaces that the mbean of RaftMember will use */
 +public interface RaftMemberMBean {
  
 -import static org.junit.Assert.assertEquals;
 +  List<Node> getAllNodes();
  
 -public class HardStateTest {
 +  String getName();
  
 -  @Test
 -  public void testHardState() {
 -    // Not NULL
 -    HardState state = new HardState();
 -    state.setCurrentTerm(2);
 -    state.setVoteFor(new Node("127.0.0.1", 30000, 0, 40000, 55560));
 -    ByteBuffer buffer = state.serialize();
 -    HardState newState = HardState.deserialize(buffer);
 -    assertEquals(state, newState);
 +  Map<Node, Peer> getPeerMap();
  
 -    // NULL
 -    state.setVoteFor(null);
 -    buffer = state.serialize();
 -    newState = HardState.deserialize(buffer);
 -    assertEquals(state, newState);
 -  }
 +  int getTerm();
 +
 +  NodeCharacter getCharacter();
 +
 +  Node getLeader();
 +
 +  Node getVoteFor();
 +
 +  long getLastHeartbeatReceivedTime();
 +
 +  boolean isReadOnly();
 +
 +  void stopHeartBeatService();
 +
 +  void restartHeartBeatService();
 +
 +  long getLastReportedLogIndex();
 +
 +  boolean isCatchUpServiceWorking();
 +
 +  Map<Node, Long> getLastCatchUpResponseTime();
- 
- 
  }
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java
index 8479dd7,ee1021f..313333f
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java
@@@ -121,26 -144,49 +144,49 @@@ public class NodeReport 
        String transportCompressionReport = "";
        if (RpcTransportFactory.isUseSnappy()) {
          transportCompressionReport =
-             ", readBytes=" + readBytes + "/" + readCompressedBytes + "(" + readCompressionRatio +
-                 ")" +
-                 ", writeBytes=" + writeBytes + "/" + writeCompressedBytes + "(" + writeCompressionRatio +
-                 ")";
+             ", readBytes="
+                 + readBytes
+                 + "/"
+                 + readCompressedBytes
+                 + "("
+                 + readCompressionRatio
+                 + ")"
+                 + ", writeBytes="
+                 + writeBytes
+                 + "/"
+                 + writeCompressedBytes
+                 + "("
+                 + writeCompressionRatio
+                 + ")";
        }
-       return "MetaMemberReport {\n" +
-           "character=" + character +
-           ", Leader=" + leader +
-           ", term=" + term +
-           ", lastLogTerm=" + lastLogTerm +
-           ", lastLogIndex=" + lastLogIndex +
-           ", commitIndex=" + commitIndex +
-           ", commitTerm=" + commitTerm +
-           ", appliedLogIndex=" + maxAppliedLogIndex +
-           ", readOnly=" + isReadOnly +
-           ", lastHeartbeat=" + (System.currentTimeMillis() - lastHeartbeatReceivedTime) + "ms ago" +
-           ", logIncrement=" + (lastLogIndex - prevLastLogIndex) +
-           transportCompressionReport +
-           ", \n timer: "+ Timer.getReport() +
-           '}';
 -      return "MetaMemberReport{"
++      return "MetaMemberReport {\n"
+           + "character="
+           + character
+           + ", Leader="
+           + leader
+           + ", term="
+           + term
+           + ", lastLogTerm="
+           + lastLogTerm
+           + ", lastLogIndex="
+           + lastLogIndex
+           + ", commitIndex="
+           + commitIndex
+           + ", commitTerm="
+           + commitTerm
+           + ", appliedLogIndex="
+           + maxAppliedLogIndex
+           + ", readOnly="
+           + isReadOnly
+           + ", lastHeartbeat="
+           + (System.currentTimeMillis() - lastHeartbeatReceivedTime)
+           + "ms ago"
+           + ", logIncrement="
+           + (lastLogIndex - prevLastLogIndex)
+           + transportCompressionReport
+           + ", \n timer: "
+           + Timer.getReport()
+           + '}';
      }
    }
  
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterNode.java
index 1e5b15b,b3cc733..2284a93
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterNode.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterNode.java
@@@ -28,12 -29,10 +29,11 @@@ import java.util.Objects
   */
  public class ClusterNode extends Node {
  
-   //TODO hxd: maintain the client IP and Port
-   public ClusterNode() {
-   }
++  // TODO hxd: maintain the client IP and Port
+   public ClusterNode() {}
  
 -  public ClusterNode(String ip, int metaPort, int nodeIdentifier, int dataPort, int clientPort) {
 -    super(ip, metaPort, nodeIdentifier, dataPort, clientPort);
 +  public ClusterNode(String ip, int metaPort, int nodeIdentifier, int dataPort) {
 +    super(ip, metaPort, nodeIdentifier, dataPort);
    }
  
    public ClusterNode(Node other) {
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
index f9207af,c8d5133..315e730
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
@@@ -283,8 -311,7 +311,8 @@@ public class ClusterUtils 
      int id = Integer.parseInt(str.substring(idFirstPos, idLastPos));
      int dataPort = Integer.parseInt(str.substring(dataPortFirstPos, dataPortLastPos));
      int clientPort = Integer.parseInt(str.substring(clientPortFirstPos, clientPortLastPos));
-     //TODO hxd: we do not set values to all fields of a Node.
 -    return new Node(ip, metaPort, id, dataPort, clientPort);
++    // TODO hxd: we do not set values to all fields of a Node.
 +    return new Node(ip, metaPort, id, dataPort).setClientPort(clientPort);
    }
  
    public static Node parseNode(String nodeUrl) {
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/common/TestPartitionedLogManager.java
index 7eb331b,9d4887a..d026819
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestPartitionedLogManager.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestPartitionedLogManager.java
@@@ -29,19 -28,24 +29,28 @@@ import org.apache.iotdb.cluster.utils.C
  public class TestPartitionedLogManager extends PartitionedSnapshotLogManager {
  
    public TestPartitionedLogManager() {
-     super(new TestLogApplier(), null,
-         new Node("localhost", 30001, 1, 40001).setClientIp("localhost")
-             .setClientPort(Constants.RPC_PORT), null, null,
+     super(
+         new TestLogApplier(),
+         null,
 -        new Node("localhost", 30001, 1, 40001, 55560),
++        new Node("localhost", 30001, 1, 40001)
++            .setClientIp("localhost")
++            .setClientPort(Constants.RPC_PORT),
+         null,
+         null,
          null);
    }
  
-   public TestPartitionedLogManager(LogApplier logApplier,
-       PartitionTable partitionTable,
-       Node header,
-       SnapshotFactory factory) {
-     super(logApplier, partitionTable, header,
-         new Node("localhost", 30001, 1, 40001).setClientIp("localhost")
-             .setClientPort(Constants.RPC_PORT), factory, null);
+   public TestPartitionedLogManager(
+       LogApplier logApplier, PartitionTable partitionTable, Node header, SnapshotFactory factory) {
+     super(
+         logApplier,
+         partitionTable,
+         header,
 -        new Node("localhost", 30001, 1, 40001, 55560),
++        new Node("localhost", 30001, 1, 40001)
++            .setClientIp("localhost")
++            .setClientPort(Constants.RPC_PORT),
+         factory,
+         null);
    }
  
    @Override
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
index 55dbfd6,bdc9897..70fbb66
--- a/cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/integration/BaseSingleNodeTest.java
@@@ -19,14 -19,12 +19,13 @@@
  
  package org.apache.iotdb.cluster.integration;
  
- import java.util.Collections;
- import java.util.List;
- 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.db.utils.EnvironmentUtils;
  import org.apache.iotdb.rpc.IoTDBConnectionException;
  import org.apache.iotdb.session.Session;
+ 
  import org.junit.After;
  import org.junit.Before;
  
@@@ -60,8 -61,9 +62,11 @@@ public abstract class BaseSingleNodeTes
      replicaNum = ClusterDescriptor.getInstance().getConfig().getReplicationNum();
      autoCreateSchema = ClusterDescriptor.getInstance().getConfig().isEnableAutoCreateSchema();
      ClusterDescriptor.getInstance().getConfig().setUseAsyncServer(true);
-     ClusterDescriptor.getInstance().getConfig().setSeedNodeUrls(Collections.singletonList(
-         String.format("127.0.0.1:9003:40011:%d", Constants.RPC_PORT)));
+     ClusterDescriptor.getInstance()
+         .getConfig()
 -        .setSeedNodeUrls(Collections.singletonList("127.0.0.1:9003:40011:55560"));
++        .setSeedNodeUrls(
++            Collections.singletonList(
++                String.format("127.0.0.1:9003:40011:%d", Constants.RPC_PORT)));
      ClusterDescriptor.getInstance().getConfig().setReplicationNum(1);
      ClusterDescriptor.getInstance().getConfig().setEnableAutoCreateSchema(true);
    }
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/log/HardStateTest.java
index 46e8ce7,1e1d916..598d0df
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/HardStateTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/HardStateTest.java
@@@ -19,13 -19,14 +19,15 @@@
  
  package org.apache.iotdb.cluster.log;
  
- import static org.junit.Assert.assertEquals;
- 
- import java.nio.ByteBuffer;
  import org.apache.iotdb.cluster.rpc.thrift.Node;
 +import org.apache.iotdb.cluster.utils.Constants;
+ 
  import org.junit.Test;
  
+ import java.nio.ByteBuffer;
+ 
+ import static org.junit.Assert.assertEquals;
+ 
  public class HardStateTest {
  
    @Test
@@@ -33,8 -34,7 +35,10 @@@
      // Not NULL
      HardState state = new HardState();
      state.setCurrentTerm(2);
-     state.setVoteFor(new Node("127.0.0.1", 30000, 0, 40000)
-                       .setClientIp("127.0.0.1").setClientPort(Constants.RPC_PORT));
 -    state.setVoteFor(new Node("127.0.0.1", 30000, 0, 40000, 55560));
++    state.setVoteFor(
++        new Node("127.0.0.1", 30000, 0, 40000)
++            .setClientIp("127.0.0.1")
++            .setClientPort(Constants.RPC_PORT));
      ByteBuffer buffer = state.serialize();
      HardState newState = HardState.deserialize(buffer);
      assertEquals(state, newState);
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/log/applier/MetaLogApplierTest.java
index 1437d6f,f5df311..b4a3949
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/MetaLogApplierTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/MetaLogApplierTest.java
@@@ -79,10 -81,8 +82,10 @@@ public class MetaLogApplierTest extend
    public void testApplyAddNode()
        throws QueryProcessException, StorageGroupNotSetException, StorageEngineException {
      nodes.clear();
-     //TODO hxd:
 -
 -    Node node = new Node("localhost", 1111, 0, 2222, 55560);
++    // TODO hxd:
 +    Node node = new Node("localhost", 1111, 0, 2222);
 +    node.setClientIp("localhost");
 +    node.setClientPort(Constants.RPC_PORT);
      AddNodeLog log = new AddNodeLog();
      log.setNewNode(node);
      applier.apply(log);
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/log/logtypes/SerializeLogTest.java
index a3d7cde,9557130..963a3ae
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/logtypes/SerializeLogTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/logtypes/SerializeLogTest.java
@@@ -89,8 -102,7 +103,10 @@@ public class SerializeLogTest 
      AddNodeLog log = new AddNodeLog();
      log.setCurrLogIndex(2);
      log.setCurrLogTerm(2);
-     log.setNewNode(new Node("apache.iotdb.com", 1234, 1, 4321).setClientIp("apache.iotdb.com")
-         .setClientPort(Constants.RPC_PORT));
 -    log.setNewNode(new Node("apache.iotdb.com", 1234, 1, 4321, 55560));
++    log.setNewNode(
++        new Node("apache.iotdb.com", 1234, 1, 4321)
++            .setClientIp("apache.iotdb.com")
++            .setClientPort(Constants.RPC_PORT));
      ByteBuffer byteBuffer = log.serialize();
      Log logPrime = LogParser.getINSTANCE().parse(byteBuffer);
      assertEquals(log, logPrime);
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/partition/SlotPartitionTableTest.java
index 6b770a1,eb48a2b..8cc3f23
--- a/cluster/src/test/java/org/apache/iotdb/cluster/partition/SlotPartitionTableTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/partition/SlotPartitionTableTest.java
@@@ -60,31 -39,53 +40,29 @@@ import org.apache.iotdb.db.qp.physical.
  import org.apache.iotdb.db.qp.physical.crud.DeletePlan;
  import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
  import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
--import org.apache.iotdb.db.qp.physical.sys.AuthorPlan;
--import org.apache.iotdb.db.qp.physical.sys.CountPlan;
--import org.apache.iotdb.db.qp.physical.sys.CreateTimeSeriesPlan;
--import org.apache.iotdb.db.qp.physical.sys.DataAuthPlan;
--import org.apache.iotdb.db.qp.physical.sys.DeleteStorageGroupPlan;
--import org.apache.iotdb.db.qp.physical.sys.LoadConfigurationPlan;
++import org.apache.iotdb.db.qp.physical.sys.*;
  import org.apache.iotdb.db.qp.physical.sys.LoadConfigurationPlan.LoadConfigurationPlanType;
--import org.apache.iotdb.db.qp.physical.sys.OperateFilePlan;
--import org.apache.iotdb.db.qp.physical.sys.SetStorageGroupPlan;
--import org.apache.iotdb.db.qp.physical.sys.SetTTLPlan;
--import org.apache.iotdb.db.qp.physical.sys.ShowChildPathsPlan;
  import org.apache.iotdb.db.qp.physical.sys.ShowPlan.ShowContentType;
  import org.apache.iotdb.db.service.IoTDB;
+ import org.apache.iotdb.db.utils.EnvironmentUtils;
  import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
  import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
  import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
- import org.junit.After;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Ignore;
- import org.junit.Test;
+ 
 -import org.junit.After;
 -import org.junit.Assert;
 -import org.junit.Before;
 -import org.junit.Ignore;
 -import org.junit.Test;
++import org.junit.*;
  import org.mockito.internal.util.reflection.Whitebox;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
+ import java.io.File;
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.nio.file.Files;
 -import java.util.ArrayList;
 -import java.util.Arrays;
 -import java.util.Collections;
 -import java.util.List;
 -import java.util.Map;
 -import java.util.Properties;
 -import java.util.Random;
++import java.util.*;
+ import java.util.stream.IntStream;
+ 
 -import static org.junit.Assert.assertEquals;
 -import static org.junit.Assert.assertFalse;
 -import static org.junit.Assert.assertNotEquals;
 -import static org.junit.Assert.assertNull;
 -import static org.junit.Assert.assertTrue;
 -import static org.junit.Assert.fail;
++import static org.junit.Assert.*;
+ 
  @Ignore // need maintenance
  @SuppressWarnings({"java:S2699"})
  public class SlotPartitionTableTest {
@@@ -196,15 -202,16 +179,23 @@@
    }
  
    private void assertGetHeaderGroup(int start, int last) {
-     PartitionGroup group = localTable
-         .getHeaderGroup(new Node("localhost", 30000 + start, start, 40000 + start)
-             .setClientIp("localhost").setClientPort(Constants.RPC_PORT + start));
+     PartitionGroup group =
+         localTable.getHeaderGroup(
 -            new Node("localhost", 30000 + start, start, 40000 + start, 55560 + start));
++            new Node("localhost", 30000 + start, start, 40000 + start)
++                .setClientIp("localhost")
++                .setClientPort(Constants.RPC_PORT + start));
      assertEquals(replica_size, group.size());
-     assertEquals(new Node("localhost", 30000 + start, start, 40000 + start)
-         .setClientIp("localhost").setClientPort(Constants.RPC_PORT + start),  group.getHeader());
+     assertEquals(
 -        new Node("localhost", 30000 + start, start, 40000 + start, 55560 + start),
++        new Node("localhost", 30000 + start, start, 40000 + start)
++            .setClientIp("localhost")
++            .setClientPort(Constants.RPC_PORT + start),
+         group.getHeader());
++
      assertEquals(
 -        new Node("localhost", 30000 + last, last, 40000 + last, 55560 + start),
 +        new Node("localhost", 30000 + last, last, 40000 + last)
-             .setClientIp("localhost").setClientPort(Constants.RPC_PORT + start), group.get(replica_size - 1));
++            .setClientIp("localhost")
++            .setClientPort(Constants.RPC_PORT + start),
+         group.get(replica_size - 1));
    }
  
    private void assertPartitionGroup(PartitionGroup group, int... nodeIds) {
@@@ -493,8 -535,7 +519,9 @@@
    }
  
    private Node getNode(int i) {
 -    return new Node("localhost", 30000 + i, i, 40000 + i, 55560 + i);
 +    return new Node("localhost", 30000 + i, i, 40000 + i)
-         .setClientIp("localhost").setClientPort(Constants.RPC_PORT + i);
++        .setClientIp("localhost")
++        .setClientPort(Constants.RPC_PORT + i);
    }
  
    @Test
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandlerTest.java
index d5bfea8,bca1a25..b2290d4
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandlerTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/handlers/caller/HeartbeatHandlerTest.java
@@@ -33,11 -27,18 +27,17 @@@ import org.apache.iotdb.cluster.rpc.thr
  import org.apache.iotdb.cluster.rpc.thrift.Node;
  import org.apache.iotdb.cluster.server.Response;
  import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 +import org.apache.iotdb.cluster.utils.Constants;
+ import org.apache.iotdb.db.utils.EnvironmentUtils;
+ 
  import org.junit.After;
  import org.junit.Before;
  import org.junit.Test;
  
+ import java.io.IOException;
+ 
 -import static junit.framework.TestCase.assertEquals;
 -import static junit.framework.TestCase.assertFalse;
 -import static junit.framework.TestCase.assertTrue;
++import static junit.framework.TestCase.*;
+ 
  public class HeartbeatHandlerTest {
  
    private MetaGroupMember metaGroupMember;
@@@ -73,8 -74,7 +73,10 @@@
      HeartBeatResponse response = new HeartBeatResponse();
      response.setTerm(Response.RESPONSE_AGREE);
      response.setLastLogTerm(-2);
-     response.setFollower(new Node("192.168.0.6", 9003, 6, 40010).setClientIp("192.168.0.6")
-         .setClientPort(Constants.RPC_PORT));
 -    response.setFollower(new Node("192.168.0.6", 9003, 6, 40010, 55560));
++    response.setFollower(
++        new Node("192.168.0.6", 9003, 6, 40010)
++            .setClientIp("192.168.0.6")
++            .setClientPort(Constants.RPC_PORT));
      catchUpFlag = false;
      for (int i = 0; i < looseInconsistentNum; i++) {
        handler.onComplete(response);
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
index 38d466e,53fb40e..cea12ba
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
@@@ -324,10 -330,8 +331,14 @@@ public class DataGroupMemberTest extend
      testMetaMember.getTerm().set(10);
      List<Log> metaLogs = TestUtils.prepareTestLogs(6);
      metaLogManager.append(metaLogs);
-     Node voteFor = new Node("127.0.0.1", 30000, 0, 40000).setClientIp("127.0.0.1")
-         .setClientPort(Constants.RPC_PORT);
-     Node elector = new Node("127.0.0.1", 30001, 1, 40001).setClientIp("127.0.0.1")
-         .setClientPort(Constants.RPC_PORT + 1);
 -    Node voteFor = new Node("127.0.0.1", 30000, 0, 40000, 55560);
 -    Node elector = new Node("127.0.0.1", 30001, 1, 40001, 55561);
++    Node voteFor =
++        new Node("127.0.0.1", 30000, 0, 40000)
++            .setClientIp("127.0.0.1")
++            .setClientPort(Constants.RPC_PORT);
++    Node elector =
++        new Node("127.0.0.1", 30001, 1, 40001)
++            .setClientIp("127.0.0.1")
++            .setClientPort(Constants.RPC_PORT + 1);
  
      // a request with smaller term
      ElectionRequest electionRequest = new ElectionRequest();
diff --cc cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
index fdc19ed,3a2cc81..8600233
--- 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
@@@ -975,8 -1038,7 +1039,10 @@@ public class MetaGroupMemberTest extend
      request.setLeaderCommit(0);
      request.setPrevLogIndex(-1);
      request.setPrevLogTerm(-1);
-     request.setLeader(new Node("127.0.0.1", 30000, 0, 40000).setClientIp("127.0.0.1")
-         .setClientPort(Constants.RPC_PORT));
 -    request.setLeader(new Node("127.0.0.1", 30000, 0, 40000, 55560));
++    request.setLeader(
++        new Node("127.0.0.1", 30000, 0, 40000)
++            .setClientIp("127.0.0.1")
++            .setClientPort(Constants.RPC_PORT));
      AtomicReference<Long> result = new AtomicReference<>();
      GenericHandler<Long> handler = new GenericHandler<>(TestUtils.getNode(0), result);
      new MetaAsyncService(testMetaMember).appendEntry(request, handler);
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index b1c1c95,0c98992..c8406e3
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@@ -823,45 -615,25 +615,31 @@@ public class IoTDBConfig 
    // time in nanosecond precision when starting up
    private long startUpNanosecond = System.nanoTime();
  
-   /**
-    * thrift max frame size, the default is 15MB, we change it to 64MB
-    */
+   /** thrift max frame size, the default is 15MB, we change it to 64MB */
    private int thriftMaxFrameSize = 67108864;
  
-   /**
-    * thrift init buffer size, the default is 1KB.
-    */
+   /** thrift init buffer size, the default is 1KB. */
    private int thriftInitBufferSize = 1024;
  
-   /**
-    * time interval in minute for calculating query frequency
-    */
+   /** time interval in minute for calculating query frequency */
    private int frequencyIntervalInMinute = 1;
  
-   /**
-    * time cost(ms) threshold for slow query
-    */
+   /** time cost(ms) threshold for slow query */
    private long slowQueryThreshold = 5000;
  
-   /**
-    * if the debug_state is true, we will print more details about the process of query
-    */
+   /** if the debug_state is true, we will print more details about the process of query */
    private boolean debugState = false;
  
 +  /**
-    * whether enable the rpc service. This parameter has no a corresponding field
-    * in the iotdb-engine.properties
++   * 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
-    */
+   /** the size of ioTaskQueue */
    private int ioTaskQueueSizeForFlushing = 10;
  
-   /**
-    * the number of virtual storage groups per user-defined storage group
-    */
+   /** the number of virtual storage groups per user-defined storage group */
    private int virtualStorageGroupNum = 1;
  
    public IoTDBConfig() {
@@@ -2284,15 -2051,6 +2057,14 @@@
      this.mlogBufferSize = mlogBufferSize;
    }
  
- 
 +  public boolean isEnableRPCService() {
 +    return enableRPCService;
 +  }
 +
 +  public void setEnableRPCService(boolean enableRPCService) {
 +    this.enableRPCService = enableRPCService;
 +  }
 +
    public int getIoTaskQueueSizeForFlushing() {
      return ioTaskQueueSizeForFlushing;
    }
diff --cc server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 0abb3f7,a1a4e58..4cde34d
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@@ -36,9 -26,24 +26,21 @@@ import org.apache.iotdb.tsfile.common.c
  import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
  import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
  import org.apache.iotdb.tsfile.fileSystem.FSType;
+ 
 -import org.apache.commons.cli.CommandLine;
 -import org.apache.commons.cli.CommandLineParser;
 -import org.apache.commons.cli.DefaultParser;
 -import org.apache.commons.cli.Option;
 -import org.apache.commons.cli.Options;
 -import org.apache.commons.cli.ParseException;
++import com.google.common.net.InetAddresses;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
+ import java.io.File;
+ import java.io.FileNotFoundException;
+ import java.io.IOException;
+ import java.io.InputStream;
++import java.net.InetAddress;
+ import java.net.MalformedURLException;
+ import java.net.URL;
++import java.net.UnknownHostException;
+ import java.util.Properties;
+ 
  public class IoTDBDescriptor {
  
    private static final Logger logger = LoggerFactory.getLogger(IoTDBDescriptor.class);
@@@ -58,8 -62,38 +59,9 @@@
      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() {
@@@ -120,62 -152,83 +120,84 @@@
        logger.info("Start to read config file {}", url);
        Properties properties = new Properties();
        properties.load(inputStream);
-       conf.setEnableStatMonitor(Boolean
-           .parseBoolean(properties.getProperty("enable_stat_monitor",
-               Boolean.toString(conf.isEnableStatMonitor()))));
- 
-       conf.setEnableMonitorSeriesWrite(Boolean
-           .parseBoolean(properties.getProperty("enable_monitor_series_write",
-               Boolean.toString(conf.isEnableStatMonitor()))));
- 
-       conf.setEnableMetricService(Boolean.parseBoolean(properties
-           .getProperty("enable_metric_service", Boolean.toString(conf.isEnableMetricService()))));
- 
-       conf.setMetricsPort(Integer.parseInt(properties.getProperty("metrics_port",
-           Integer.toString(conf.getMetricsPort()))));
- 
-       conf.setQueryCacheSizeInMetric(Integer
-           .parseInt(properties.getProperty("query_cache_size_in_metric",
-               Integer.toString(conf.getQueryCacheSizeInMetric()))
-           ));
+       conf.setEnableStatMonitor(
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "enable_stat_monitor", Boolean.toString(conf.isEnableStatMonitor()))));
+ 
+       conf.setEnableMonitorSeriesWrite(
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "enable_monitor_series_write", Boolean.toString(conf.isEnableStatMonitor()))));
+ 
+       conf.setEnableMetricService(
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "enable_metric_service", Boolean.toString(conf.isEnableMetricService()))));
+ 
+       conf.setMetricsPort(
+           Integer.parseInt(
+               properties.getProperty("metrics_port", Integer.toString(conf.getMetricsPort()))));
+ 
+       conf.setQueryCacheSizeInMetric(
+           Integer.parseInt(
+               properties.getProperty(
+                   "query_cache_size_in_metric",
+                   Integer.toString(conf.getQueryCacheSizeInMetric()))));
  
        conf.setRpcAddress(properties.getProperty("rpc_address", conf.getRpcAddress()));
 +      replaceHostnameWithIP();
  
        conf.setRpcThriftCompressionEnable(
-           Boolean.parseBoolean(properties.getProperty("rpc_thrift_compression_enable",
-               Boolean.toString(conf.isRpcThriftCompressionEnable()))));
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "rpc_thrift_compression_enable",
+                   Boolean.toString(conf.isRpcThriftCompressionEnable()))));
  
        conf.setRpcAdvancedCompressionEnable(
-           Boolean.parseBoolean(properties.getProperty("rpc_advanced_compression_enable",
-               Boolean.toString(conf.isRpcAdvancedCompressionEnable()))));
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "rpc_advanced_compression_enable",
+                   Boolean.toString(conf.isRpcAdvancedCompressionEnable()))));
  
-       conf.setRpcPort(Integer.parseInt(properties.getProperty("rpc_port",
-           Integer.toString(conf.getRpcPort()))));
+       conf.setRpcPort(
+           Integer.parseInt(
+               properties.getProperty("rpc_port", Integer.toString(conf.getRpcPort()))));
  
-       conf.setTimestampPrecision(properties.getProperty("timestamp_precision",
-           conf.getTimestampPrecision()));
+       conf.setTimestampPrecision(
+           properties.getProperty("timestamp_precision", conf.getTimestampPrecision()));
  
        conf.setBufferedArraysMemoryProportion(
-           Double.parseDouble(properties.getProperty("buffered_arrays_memory_proportion",
-               Double.toString(conf.getBufferedArraysMemoryProportion()))));
+           Double.parseDouble(
+               properties.getProperty(
+                   "buffered_arrays_memory_proportion",
+                   Double.toString(conf.getBufferedArraysMemoryProportion()))));
  
-       conf.setFlushProportion(Double.parseDouble(properties.getProperty("flush_proportion",
-           Double.toString(conf.getFlushProportion()))));
+       conf.setFlushProportion(
+           Double.parseDouble(
+               properties.getProperty(
+                   "flush_proportion", Double.toString(conf.getFlushProportion()))));
  
-       conf.setRejectProportion(Double.parseDouble(properties.getProperty("reject_proportion",
-           Double.toString(conf.getRejectProportion()))));
+       conf.setRejectProportion(
+           Double.parseDouble(
+               properties.getProperty(
+                   "reject_proportion", Double.toString(conf.getRejectProportion()))));
  
        conf.setStorageGroupSizeReportThreshold(
-           Long.parseLong(properties.getProperty("storage_group_report_threshold",
-               Long.toString(conf.getStorageGroupSizeReportThreshold()))));
+           Long.parseLong(
+               properties.getProperty(
+                   "storage_group_report_threshold",
+                   Long.toString(conf.getStorageGroupSizeReportThreshold()))));
  
        conf.setMetaDataCacheEnable(
-           Boolean.parseBoolean(properties.getProperty("meta_data_cache_enable",
-               Boolean.toString(conf.isMetaDataCacheEnable()))));
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "meta_data_cache_enable", Boolean.toString(conf.isMetaDataCacheEnable()))));
  
-       conf.setEnableLastCache(Boolean.parseBoolean(properties.getProperty("enable_last_cache",
-           Boolean.toString(conf.isLastCacheEnabled()))));
+       conf.setEnableLastCache(
+           Boolean.parseBoolean(
+               properties.getProperty(
+                   "enable_last_cache", Boolean.toString(conf.isLastCacheEnabled()))));
  
        initMemoryAllocate(properties);
  
@@@ -603,34 -799,26 +768,36 @@@
      }
    }
  
 +  // to keep consistent with the cluster module.
 +  private void replaceHostnameWithIP() throws UnknownHostException {
 +    boolean isInvalidRpcIp = InetAddresses.isInetAddress(conf.getRpcAddress());
 +    if (!isInvalidRpcIp) {
 +      InetAddress address = InetAddress.getByName(getConfig().getRpcAddress());
 +      getConfig().setRpcAddress(address.getHostAddress());
 +    }
 +    logger.debug("after replace, the rpc_address={},", conf.getRpcAddress());
 +  }
 +
- 
- 
    private void loadWALProps(Properties properties) {
-     conf.setEnableWal(Boolean.parseBoolean(properties.getProperty("enable_wal",
-         Boolean.toString(conf.isEnableWal()))));
- 
-     conf.setFlushWalThreshold(Integer
-         .parseInt(properties.getProperty("flush_wal_threshold",
-             Integer.toString(conf.getFlushWalThreshold()))));
- 
-     conf.setForceWalPeriodInMs(Long
-         .parseLong(properties.getProperty("force_wal_period_in_ms",
-             Long.toString(conf.getForceWalPeriodInMs()))));
- 
-     conf.setEnableDiscardOutOfOrderData(Boolean.parseBoolean(
-         properties.getProperty("enable_discard_out_of_order_data",
-             Boolean.toString(conf.isEnableDiscardOutOfOrderData()))));
- 
+     conf.setEnableWal(
+         Boolean.parseBoolean(
+             properties.getProperty("enable_wal", Boolean.toString(conf.isEnableWal()))));
+ 
+     conf.setFlushWalThreshold(
+         Integer.parseInt(
+             properties.getProperty(
+                 "flush_wal_threshold", Integer.toString(conf.getFlushWalThreshold()))));
+ 
+     conf.setForceWalPeriodInMs(
+         Long.parseLong(
+             properties.getProperty(
+                 "force_wal_period_in_ms", Long.toString(conf.getForceWalPeriodInMs()))));
+ 
+     conf.setEnableDiscardOutOfOrderData(
+         Boolean.parseBoolean(
+             properties.getProperty(
+                 "enable_discard_out_of_order_data",
+                 Boolean.toString(conf.isEnableDiscardOutOfOrderData()))));
    }
  
    private void loadAutoCreateSchemaProps(Properties properties) {
diff --cc server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index 2357dbb,c2368c4..2ce9ce2
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@@ -112,11 -117,7 +114,11 @@@ public class IoTDB implements IoTDBMBea
      registerManager.register(UDFClassLoaderManager.getInstance());
      registerManager.register(UDFRegistrationService.getInstance());
  
-     //in cluster mode, RPC service is not enabled.
 -    registerManager.register(RPCService.getInstance());
++    // in cluster mode, RPC service is not enabled.
 +    if (IoTDBDescriptor.getInstance().getConfig().isEnableRPCService()) {
 +      registerManager.register(RPCService.getInstance());
 +    }
 +
      if (IoTDBDescriptor.getInstance().getConfig().isEnableMetricService()) {
        registerManager.register(MetricsService.getInstance());
      }
diff --cc server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java
index 92963c0,d975743..7bfb266
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java
@@@ -43,11 -45,6 +45,11 @@@ public abstract class ThriftService imp
  
    private CountDownLatch stopLatch;
  
-   //whether enable the service. By default it is true.
-   //If we just want to create an IoTDB instance without RPC service, set this false before call
-   //IoTDB.active()
++  // whether enable the service. By default it is true.
++  // If we just want to create an IoTDB instance without RPC service, set this false before call
++  // IoTDB.active()
 +  private boolean enable = true;
 +
    public String getRPCServiceStatus() {
      if (thriftServiceThread == null) {
        logger.debug("Start latch is null when getting status");
@@@ -96,13 -95,10 +100,14 @@@
  
    @SuppressWarnings("squid:S2276")
    public void startService() throws StartupException {
 +    if (!enable) {
-       logger.info("{}: {} is disabled", IoTDBConstant.GLOBAL_DB_NAME,
-           this.getID().getName());
-       return ;
++      logger.info("{}: {} is disabled", IoTDBConstant.GLOBAL_DB_NAME, this.getID().getName());
++      return;
 +    }
      if (STATUS_UP.equals(getRPCServiceStatus())) {
-       logger.info("{}: {} has been already running now", IoTDBConstant.GLOBAL_DB_NAME,
+       logger.info(
+           "{}: {} has been already running now",
+           IoTDBConstant.GLOBAL_DB_NAME,
            this.getID().getName());
        return;
      }