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/01/31 06:48:39 UTC

[iotdb] branch change_rpc_port updated (db3e595 -> a7345e3)

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

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


    from db3e595  Merge remote-tracking branch 'origin/master' into change_rpc_port
     add 6d25ba5  refactor node management
     add d99432a  remove a done todo
     add 31c4d43  Merge branch 'master' into cluster_node_management
     add 44a6155  fix tests
     add 0255b85  fix test
     add e7b1421  fix no waiting after time_out
     add 6f3d021  Merge branch 'master' into cluster_node_management
     add 90cc875  fix import
     add 08400ad  Merge pull request #2359 from apache/cluster_node_management
     add 662a1b7  fix metaGroupMember bug when follower foward non-query plan to leader
     add 1c3c2e9  remove unused import
     add d509f6e  Merge pull request #2404 from mychaow/fix_metaGroupMember_bug
     add 22740d3  Fix the condition of logger with the right level globally (#2407)
     add 85d4a00  [IOTDB-1068] Fix Time series metadata cache bug (#2316)
     add acf33e2  fix merge bug for #2404
     add 8ed7071  Merge pull request #2415 from mychaow/fix_merge_bug_2404
     add 9da7b72  split condition for waitPrevLog into multiple conditions
     add 7d43cbd  Merge branch 'master' into cluster_split_condition
     add 5913109  fix tests and code smells
     add bc9ae25  Merge pull request #2394 from apache/cluster_split_condition
     add d9fb310  [IOTDB-1077] add insertOneDeviceRecords API in java session (#2397)
     add b686e94  make serialization pool in LogDispatcher static to reduece the number of pools
     add 0fa6736  Merge pull request #2421 from apache/reduce_serialization_pool
     add 6d15e3c  add the udf contribution guide (#2429)
     add cdfbf40  expose enablePartition parameter into iotdb-engines.properpties (#2433)
     add 805d3ab  [IOTDB-1103] Fix frame size larger than max length error (#2431)
     add 44a055c  [IOTDB-1076] Create interface of TimeIndex (#2340)
     add de8493f  Fix compaction recover path bug (#2422)
     add b0083ea  [IOTDB-1073] Built-in UDTFs (#2417)
     add e2014e3  [ISSUE-2351] fix the case that column length is not right in CLI when the value contains Chinese characters (#2427)
     add 90b6360  fix the analyse startup check bug
     add 3a7f97b  make the check logic more understandable
     add cf9c31a  Merge pull request #2432 from neuyilan/apache_master_0106_fix_check_start_bug
     add 7e2f27c  Switch Zeppelin connector from Session to JDBC (#2414)
     add f24f469  fix delete timeseries bug (#2441)
     add d5f1849  Improve dropping non-existent tag/attribute code (#2418)
     add 5b67483  Bump commons-collections4 from 4.0 to 4.4 to avoid a security bug (#2331)
     add 4b58c28  add debug log for IOTDB-1101 (#2424)
     add 682e9b8  Remove EnvironmentUtil in the cluster module and optimize UT (#2423)
     add 0270c03  Fix bugs on query statements that ignore timestamps, namely, the result's first column is not time when using Zeppelin. (#2447)
     add 38eb730  Execute compaction after sync and load is called (#2439)
     add 1a302f5  Fix a bug of sync last query not right (#2403)
     add 5a05c1c  Revert "Fix a bug of sync last query not right (#2403)" (#2453)
     add ca31fef  Revert "Execute compaction after sync and load is called (#2439)"
     add 6add2e0  e2e: add a simple E2E case and set up the workflow (#2166)
     add de17d23  [IOTDB-1104] Refactor the error handling process of query exceptions (#2436)
     add 95de08d  Fix compaction recover list bug (#2451)
     add 270ffdb  fix copyright declaim in NOTICE; remove 'incubating' out of README_ZH.md; simplify pull_request_template.md (#2465)
     add dfcf80d  fix metrics page nullpoint bug (#2459)
     add 09e21ed  Add monitor and qp tests (#2283)
     add bdb5d3e  Optimize synchronizing scope in MLogWriter.java (#2448)
     add 0a722ba  fix the test in RaftLogManagerTest
     add ee293e6  Merge pull request #2461 from neuyilan/apache_master_0110_applier_bug_fix
     add f2218dd  allow compress buffer to oversize maxLength during compression
     add 488511d  rename maxSoftLength to softMaxLength
     add d7b466c  Merge pull request #2322 from apache/change_transport_resize_policy
     add 5b3b423  add thrift readme
     add ab2b3db  minor fixes
     add 72ba8b9  add options of using maven parameter
     add c427797  Merge pull request #2227 from apache/add_thrift_readme
     add 70b228a  show devices limit (#2389)
     add 347958c  fix: print user not logged in info when the user has logged in (#2472)
     add 680bb1a  enable TsFile insertTablet with only a template (#2474)
     add 06b576e  Revert inplace merge (#2398)
     add cf44a1d  remove duplicate paramas in server script (#2463)
     add 7a67bc5  add docker file for 0.11.1 and 0.11.2; fix invalid urls in preivous d… (#2467)
     add 74cbf19  [ISSUE-2479] Remove redundant logic in session.genTSInsertRecordsOfOneDeviceReq() (#2480)
     add 4acc515  [IOTDB-1094] Improve some code writing and name typo (#2382)
     add a707012  [ISSUE-2476] fix the case that isNumber method returns true when the input is "NaN" (#2477)
     add 0e88973  fix import csv which can't import time format str (#2409)
     add 663d910  [ISSUE-2419] Server test logs contains lots of useless content (#2420)
     add 344c954  [IOTDB-1108] Add error log to print file name while error happened (#2450)
     add 652be96  [IOTDB-965] Add timeout in query (#2352)
     add a7de988  fix the apply bug in raftLogManager
     add 32317b7  fix the test in RaftLogManager
     add ab49f82  remove debug message
     add e09b377  Merge pull request #2489 from neuyilan/apache_master_0113_fix_apply_bug
     add 2ced0e1  [IOTDB-1110] the assembly descriptor of the cluster module contains / (#2496)
     add ede19b5  Remove versionInfo in Tsfile and get rid of versions in memtable (#2445)
     add f87c296  extract common variables to rpcutils
     add a490361  use AutoScalingBufferWrite/ReadTransport to replace the TByteBuffer in
     add c1c2088  add overrive keyword
     add 3413d5a  add limit() and position() method in AutoScalingBufferReadTransport
     add 0c831fe  supplly the comment in d
     add a1a383f  Merge pull request #2486 from neuyilan/apache_master_0113_adjust_max_frame_size
     add f657f8e  add username and password when use nodetool
     add 508f659  aupply the doc of node tools
     add ef710b2  add default jmx user and password config
     add 524cce3  revert the password config
     add 8b7b997  set the default hashmap size to 1
     add a521499  remend the doc of the NodeTool
     add dd6d42c  Merge branch 'apache_master' into apache_master_0113_fix_node_tools
     add 711b3d8  Merge pull request #2483 from neuyilan/apache_master_0113_fix_node_tools
     add 6d3ae90  [IOTDB-965] Add user doc for query timeout (#2494)
     add f81d2fb  [ISSUE-2416] Sql statement with unsupported mark doesn't be handled correctly (#2499)
     add 7975dbd  [ISSUE-2470] Add size limitation for all logs (#2492)
     add 3c52267  support only left bracket (#2491)
     add 0e1629f  IOTDB-1107 Doc have a little problem (#2504)
     add 3016cb9  remove duplicate codes (waitForThreadPool) in the ClusterPlanExecutor and remove duplicate params of script (#2502)
     add c343d5a  optime inserttablets
     add 1edfa05  revert the change in sessionexample
     add 8fcab59  resolve the sonar issue
     add 318afac  optime inserttablets
     add adb0765  revert the change in sessionexample
     add 245506b  add insert InsertTabletMultiPlan test
     add e7d28e3  add lincese header
     add 5348e42  fix the serialize and unseralize method
     add 4c5e1cb  remove useless debug log
     add f6a935a  fix apply InsertMultiTabletPlan
     add 8a8c094  fix some typo
     add 0b51d8b  fix some typo&remove insertTabletsInternalV1
     add 4b7f40d  merge with master
     add 00c6c7a  split the insertMultiTabletPlan to some have some storage group InsertTabletPlans
     add 224876f  fix some typo
     add 0ba64dc  Merge branch 'apache_master' into apache_master_0106_optimize_inserttablets
     add 25bddb9  remove uncessary put operation of hashmap in ClusterPlanRouter
     add 27acead  Merge branch 'apache_master' into apache_master_0106_optimize_inserttablets
     add 768ed2b  Merge pull request #2454 from neuyilan/apache_master_0106_optimize_inserttablets
     add 44e764b  [IOTDB-1079] Virtual storage group first mile stone (#2405)
     add d267d10  ignore PathNotExistException in recover and change recover error to warn (#2506) (#2512)
     add 3889820  fix nullpointerException when plan was maked failed in TsFileProcessor
     add d8c84c3  fix checkMemCostAndAddToTspInfo may cause nullPointerException when plan have failed Measurements
     add 76d874b  Merge pull request #2514 from neuyilan/apache_master_0118_null_pointer_for_failedplan
     add 36e80ad  edit DDL, DML, SQL doc for show devices limit (#2519)
     add 3070992  [IOTDB-965] Modify query timeout parameter (#2508)
     add e451dcf  Add DirectByteBufferPool for WAL (#2488)
     add 48d24e7  Remove unnecessary logs (#2521)
     add 2c867bc  [ISSUE-2515] Set fetchsize through JDBC and Session (#2517)
     add a07b5ec  [IOTDB-1084] Fix temporary memory of flushing may cause OOM (#2358)
     add 2ff7489  fix asyncManager init
     add bd156e4  Merge pull request #2527 from LebronAl/cluster_fix_asyncManager_init
     add 85bfdab  Try to fix remove partition IT problem (#2524)
     add 2a68ebf  Fix tsfile version controller (#2529)
     add b1e5c81  IOTDB-1111 load configuration -global command do not support (#2526)
     add 5837269  remove duplicated codes for error tips for query FILL,AGGREGATION, GROUPBYTIME sql  (#2525)
     add 58dfb2f  add executeRawDataQuery in SessionPool (#2522)
     add 3f544dc  [IOTDB-1113] Optimize the execution efficiency of UDF (#2511)
     add 060f4fc  Replace TreeSet with TimeSelector (heap-based) for better raw query performance (#2495)
     add cf9b35d  [IOTDB-1081] New TsFile Format (V3) (#2184)
     add 5c438bf  Add the user guide for upgrading v0.11/0.10 to v0.12 (#2531)
     add 7a393ef  fix some upgrade recover bugs (#2536)
     add bc91dd5  add timeout Log (#2537)
     add 6f632e2  Fix SessionDataSet bug when reading value buffer for "select last" (#2535)
     add 1000dd6  clarify sdt doc (docs/UserGuide/Concept/SDT.md) (#2469)
     add bdc596f  Fix sync last query (#2540)
     add adb5ea8  Support brackets with number in timeseries path (#2503)
     add 56a2353  first chunkmetadata should be consumed first (#2547)
     add 8610954  Add a specification of the character that supported in time series name (#2501)
     add 6953b9e  [IOTDB-1077] Add python test and insert one device interface (#2539)
     add 32d91c1  Use FileOutputStream instead of FileChannel to avoid a potential resource leak in synchronous service (#2408)
     add 7416dcf  [ISSUE-2545, 2549] Fix unseq merge end time bug (#2544)
     add 2b83c35  disable travis (#2551)
     add 4f8c41f  Change "Not support" to "Does not support" in error message of IOTDBConnection.java (#2281)
     add 56b215c  Optimize enum class and change some java practice (#2435)
     add f44d8b9  [IOTDB-1055] Support data compression type GZIP (#2264)
     add af20b89  [Distributed] fix session cache leader interface and docs  (#2222)
     add 65a65e5  [FIX] fix the display of Chinese doc on Compaction.
     add 7cae389  fix bug (#2557)
     add 7fc71e9  update the download link for release 0.11.2
     add 88adb37  Fix merge bug that page statistics incorrectly use the chunk statistics for new Tsfile Format (#2561)
     add 67d2921  Fix dead lock between deleting data and querying in paralle. (#2558)
     add 2023c20  fix the bug that when introduce the virtual sg, the path not consist with the tsfile's in snapshot (#2533)
     add 4a7d6c6  [JAVA] Add timeout parameter in Session Level (#2562)
     add 38f5033  fix  executeNonQueryStatement parse error in session example (remove ";") (#2568)
     add 92c706a  add ulimit setting message (#2293)
     add f065111  Suppress unnecessary warning in Session Pool (#2581)
     add fc1e12c  Suppress unnecessary warning in Session Pool (#2581)
     add 93a0a2a  Comment out pre-start customizations debugging message
     add 660a109  Merge pull request #2570 from neuyilan/apache_master_0125_comment_out_debug_pre_start_codes
     add bd1a867  [IOTDB-1129] Correct `calculateLength` logic according New TsFile Format for 0.12 (#2584)
     add 0eba627  IOTDB-1126 unseq tsfile delete due to merge (#2577)
     add 0b95436  [IOTDB-1091] add illegal parameter exception for sdt when creating timeseries (#2543)
     add 861b437  [ISSUE-2312] Fix windows Chinese encoding bug
     add 2957859  [ISSUE-2573] Create timeseries root.sg.d1\n.s1 should be disabled using native session api (#2578)
     add 20b43bb  disable the merge task in PullSnapshotTaskTest (#2583)
     add 9d88a8e  [C++ Client] remove compiling boost for compling client-cpp module (#2509)
     add 9365210  [IOTDB-1077] [C++ Client] Add insertRecordsOfOneDevice() interface for C++ client (#2513)
     add ad993b8  [IOTDB-1083] There is no need to get write lock each time when we try to get or create TsFileProcessor (#2353)
     add 4b2320b  add missing override annotation (#2329)
     add de0c59b  remove print output in some tests (#2604)
     add 04b0982  [IOTDB-1137] MNode.getLeafCount error when existing sub-device (#2602)
     add 27a0e65  Add compaction chunk test (#2586)
     add 946d4b8  refactor CI by split a CI into several parts, fix code-coverage and extract jar-with-dependencies (#2603)
     new a7345e3  merge with master

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


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


[iotdb] 01/01: merge with master

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

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

commit a7345e3747536d1241fa64576f67bc63871b16b6
Merge: db3e595 946d4b8
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Sun Jan 31 14:47:58 2021 +0800

    merge with master

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

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