You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/03/02 02:30:09 UTC

[iotdb] branch ty-graduate updated (7ca3c84 -> f3d2b32)

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

jackietien pushed a change to branch ty-graduate
in repository https://gitbox.apache.org/repos/asf/iotdb.git.


    from 7ca3c84  format code
     new 4074056  change experiment code
     add b1422b7  [IOTDB-2359] Refactor docs in 0.13 - Step 2 (#4876)
     add 34fe4f4  [IOTDB-2359] Refactor docs in 0.13 - query data (#4883)
     add 5203eea  [IOTDB-2283] REST: support metadata query (#4856)
     add 1414572  [IOTDB-2434] IT fails on IoTDBContinuousQueryIT caused by double precision loss (#4881)
     add 32a63f5  [IOTDB-2362] Use noQuery to execute "count", return "SHOW is not supported" (#4882)
     add b19a00f  [IOTDB-2433] Fix aligned timeseries mem control bug (#4884)
     add 7ef888a  [IOTDB-2435] CI fails on testCreateAlignedTimeseries() because data generator is not stopped in a CQ's test (#4885)
     add 6535dc3  Support aligned timeseries recovery in TsFileSequenceReader selfCheck (#4879)
     add a0ff477  Update session and JDBC doc about compatible with 0.13 (#4887)
     add 9ebd02c  [IOTDB-2429] Fix string literal constant being treated as node name (#4880)
     add 59655ee  [IOTDB-2427] Fix document of deleting non-existing time series values (#4890)
     add efeb344  Fix when opening too many file handlers, too many warning logs will be printed (#4891)
     add dbb67fe  [IOTDB-2391] Cached file length in TsFileResource (#4886)
     add 91428ba  [IOTDB-2428] Monitor: remove monitorStat (#4878)
     add 002a4dd  [IOTDB-2113] Compaction Refactor and Support aligned timeseries (#4852)
     add b978e6e  [IOTDB-2436] Fix problems in metric module. (#4888)
     add 24d4b97  Bump hadoop2.version from 2.10.0 to 2.10.1 (#4555)
     add cfbddc2  [IOTDB-2437][Grafana Connector] can't get timeseries (#4893)
     add c46607a  [IOTDB-2078] Split large TsFile tool (#4736)
     add 5c2aa6b  Checkout User Guide documents for 0.13 (#4894)
     add 9e1d3bc  Website 0.13 (#4896)
     add ea9aaec  Add chinese 0.13
     add 1554509  [IOTDB-2207] Add english Grafana Plugin doc (#4898)
     add 8953d09  [IOTDB-1992] Add  english user doc for IoTDB REST data service (#4749)
     add 6724bb3  Add more SQL in Administration doc (#4903)
     add e45636e  [IOTDB-2440] Fix the query result is incorrect when using Template with aligned timeseries  (#4902)
     add 213c780  update compression ratio doc (#4909)
     add a86707d  [IOTDB-2445] Fix overlapped data should be consumed first bug (#4907)
     add e5b64f7  [IOTDB-2448] unload doesn't work correctly: it's not an internal tsfile (#4908)
     add 47c5008  fix typo error in docs and optimize sidebarDepth (#4905)
     add 322c413  [Site] Fix an error in site (#4912)
     add 5fc4d89  entry in mlog for creating template has a comma behind operator type now (#4913)
     add b21c07e  [IOTDB-2443] The influx service is closed by default (#4901)
     add 2873987  [IOTDB-2442] Ignore CQ physical plan in sync receiver (#4906)
     add 465fc88  [IOTDB-2310] NPE, Using aggregate queries with "group by level=*" (#4911)
     add 93ee9e0  disable e2e and cluster workflow (#4917)
     add 6acd4ff  [IOTDB-2326] Clean compaction code (#4904)
     add 5d09b8c  [IOTDB-2433] Fix aligned timeseries mem control bug 2 (#4915)
     add 061a978  [IOTDB-2446]fix deleting bug in a compaction (#4916)
     add 8ac9fde  [Site] Fix an error in site (#4921)
     add d6dda20  [IOTDB-2456] fix compaction lost device data when two devices in different tsfile (#4919)
     add a3c8b30  set default ttl back to 36000000 (#4927)
     add 60b1f89  [IOTDB-2457] Fix write is blocked after set time_index_level=FILE_TIME_INDEX (#4929)
     add 52643e1  [IOTDB-2439]Library-UDF documents on website (#4920)
     add d2c7040  [IOTDB-2457] Remove setting and doc of FILE_TIME_INDEX (#4930)
     add 288f379  Revert "[IOTDB-2439]Library-UDF documents on website (#4920)" (#4932)
     add fcd211a  [IOTDB-2313][REST API Doc] how to avoid GC overhead (#4926)
     add 31f636f  [IOTDB-2413] Fix file handler not released bug  (#4889)
     add 8af4682  Add 0.13.0 release note (#4934)
     add 336e88a  [IOTDB-2458] Grafana REST API: add login method (#4923)
     add 91dd7f7  [IOTDB-2438] update the user guide of Spark Connector (#4931)
     add 9d615bb  [IOTDB-2441] Msg has no status code when MULTIPLE_ERROR occurs (#4918)
     add bfb7a02  [IOTDB-2362] [REST API] Use noQuery to execute "count", return "SHOW is not supported" (#4933)
     add 09a46f3  [IOTDB-2444] Refine /ping API and fix unauthorized NPE error (#4910)
     add a235a88  [IOTDB-2457] Fix Write is blocked after set time_index_level=FILE_TIM… (#4935)
     add 653f8e8   [IOTDB-2460] Fix NoSuchFileException while querying and ttl happened same time (#4937)
     add 87d70f2   [IOTDB-2380] add show schema interface for show measurements in template (#4940)
     add a1cf23c  Fix compile error (#4943)
     add 8f425a2  [IOTDB-2453] Set the default compaction priority to `BALANCE` (#4938)
     add 11b18d6  [env] rename IOTDB_CLI_HOME to IOTDB_HOME (#4944)
     add 18e4efd  Revert "[env] rename IOTDB_CLI_HOME to IOTDB_HOME (#4944)" (#4948)
     add 4310c45  [IOTDB-2425][env] rename IOTDB_CLI_HOME to IOTDB_HOME in CLI (#4949)
     add 481f8aa  [IOTDB-2281][IOTDB-2286] fix bugs of csv tools (#4941)
     add c081098  fix spotless
     add ac437d8  [IOTDB-2463] Fix snapshot compatibility (#4951)
     add 633db3a  [IOTDB-2465][imple] fix implement of snapshot of dropwizard to UniformReservoir
     add ae8e9da  [IOTDB-2462] Fix ALIGN BY DEVICE query in cluster mode (#4947)
     add b9e1f15  [IOTDB-2373][Trigger] MQTTSink: there should be a timeout rule (#4953)
     add 403f059  [IOTDB-2338] ID Table recovery (#4897)
     add cbf91cb  [DOC] Update auto create metadata docs (#4955)
     add ed816e4  [IOTDB-2464] simplify crossSpaceComapctionExceptionHandler (#4945)
     add f901161  [IOTDB-2468][Compaction]There is 'null' in logs (#4958)
     add 4e87d43  [IOTDB-2453] Remove all not necessarily lock in compaction process (#4952)
     add fee0ac5  [IOTDB-2469]Update code of pulsar example with sessionPool api
     add 2b261ab  [IOTDB-2469]remove ";"
     add 38807ea  Enhance exception handle logic that read metadata from tsfile in FileTimeIndex (#4961)
     add d654763  [DOC] Update executeLastDataQuery in API doc (#4959)
     add ddb0270  [IOTDB-2045] Add insertStringRecordsOfOneDevice in session (#4837)
     add 916d67e  Make FileTimeIndex directly return true while doing containsDevice()  (#4960)
     add cc7ba66  [IOTDB-2438] update the guide of spark connector (#4966)
     add 000cf58  [IOTDB-2433] Fix insert aligned timeseries performance reduction (#4968)
     add afa6db3  ignore logging sg not ready exception (#4970)
     add 7400b80  [IOTDB-2445] Fix overlapped data should be consumed first bug (#4976)
     add dfc571c  [IOTDB-2490] Fix metric bugs with wrong stats (#4975)
     add 7c6799b  [IOTDB-2430] Add example of revoke Privilege (#4956)
     add 68cdf81  [IOTDB-2476] Fix concurrent bug during entityMNode replacement (#4977)
     add 68c388c  fix cross space not release write lock (#4980)
     add 08d9d6b  [IOTDB-2380] Add SQL for show and drop schema template (#4900)
     add c694c01  add docs to suggest only flat measurement template is a long-term feature (#4982)
     add ee5a818  [IOTDB-2474] Add progress logger when restarting IoTDB (#4979)
     add e55ded7  [IOTDB-2498] Fix cli history filename too long when using OpenID (#4987)
     add 866e294  fixed  user 's manual of openid (#4984)
     add 7844c63  [IOTDB-2488] Cross compaction recover not work and NPE in TsfileIOWriter (#4972)
     add 1b11e90  [IOTDB-2501] Fix timestamp not updated bug in FirstValueAggrResult.updateResultUsingValues() (#4988)
     add 56c0d7c  [IOTDB-2445] [IOTDB-2502] Fix overlapped data should be consumed firstly bug (#4990)
     add f476385  [IOTDB-2502] Add query sql in error log if encountering exception
     add 7614350  Avoid flush stream in get position() to improve flush performance (#4963)
     add 6fa97b3  Apply string intern for device String (#4964)
     add d36ce5a  Refine the lock granularity of the query (#4996)
     add 2320d97  remove sg not ready log in batch process (#4999)
     add 18dea61  [IOTDB-2258] restructure the csv import tool (#4954)
     add 4626f6f  [IOTDB-2445]select count(*) execution failed : overlapped data should be consumed first (#4983)
     add 8ea5ed6  [IOTDB-2505] Remove tsfile in memory before delete it in compaction (#4994)
     add ce154b8  Fix doc of TsFileSplitTool (#4997)
     add da2a1cd  [IOTDB-2439]Library-UDF documents on website (#4936)
     add fd85d8a  Website bug fix (#5003)
     add d331975  [IOTDB-2478] Try to fix `IoTDBRemovePartitionIT` and `CompactionSchedulerTest` (#4967)
     add 1b05198  Bump kafka_2.13 from 2.8.0 to 2.8.1
     add 71fd6aa  Merge pull request #5006 from apache/dependabot/maven/master/org.apache.kafka-kafka_2.13-2.8.1
     add ec650d2  Removing some useless codes in Statistics (#4978)
     add 9a9f457  Disable merge commit button by default (#5013)
     add 081a7e3  Disable merge commit button by default
     add 1dde7a2  Disable merge commit button by default
     add f16f834  remove incorrect img in TSDB-Comparison (#5015)
     add 6c086fa  Update documents in SystemDesign (#4950)
     add 5767587  link SystemDesign to conflence page (#5016)
     add 9c97d09b [IOTDB-2512]Replaced some static variables with TSDataType.toString (#5018)
     add 7df6bc8  Change Copyright 2021 to 2022 in website (#5019)
     add 1ff0e11  [IOTDB-2518] fixed grafana plugin not support microsecond or nanosecond (#5017)
     add bc7cd10  [IOTDB-2478] Try to fix `IoTDBRemovePartitionIT` and `CompactionSchedulerTest` (#5014)
     add 8006f65  [IOTDB-2510] Reconstructing the password encryption mode (#5001)
     add daa603f  Remove SystemDesign documents (#5028)
     add 38eaf0e  [IOTDB-2526] Fix NPE when setting meta_data_cache_enable=false (#5029)
     add e41ebf0  [IOTDB-2527] Move some contents in  subSection to  subSection (#5032)
     add e3240f5  [IOTDB-2523] Fix exiting with 0 when executing error in cli (#5026)
     add 1940f5e  fix some typos in TsFile module (#5034)
     add 0ab1d4b  add doc for tag and attribute (#5040)
     add 6019e6b  [IOTDB-2533] Fix change max_deduplicated_path_num does not take effect (#5038)
     add 95836f9  [IOTDB-2530] Fix port conflict when starting nodes in cluster IT (#5035)
     add ffb3da0  [IOTDB-2528] Fix MLog corruption and recovery bug after killing system (#5042)
     add 4beb397  Bump metrics.version from 4.2.4 to 4.2.7 (#5007)
     add 4a00697  [ISSUE-5030]optimize the tsfile configuration loading (#5047)
     add 6d9ae99  [IOTDB-2500] [ query & cross-compaction ] cross-compaction stuck (#5031)
     add 11f6a10  [IOTDB-2508] Fix csv tool code smells (#5037)
     add ba19229  fix the MemtableBenchmark (#5050)
     add b7f82d7  [IOTDB-2534] Add character support while using quote (#5051)
     add 6b42462  [IOTDB-2540] Hide password encrypt configuration until more encryption added (#5052)
     add 08c46e3  [IOTDB-2517] The count(sensor) query result is less than expected (#5043)
     add 930253f  add readme for M4 UDF
     add 92dccc0  Update some changelists for releasing 0.13.0 (#5054)
     add 5a7adb5  [IOTDB-2544] Fix tag info sync error during metadata sync (#5055)
     add 9195d3e  [IOTDB-2532] Query with align by device can't get value after clear cache (#5045)
     add 832058c  [IOTDB-2538] The UDTF Transform method supports getting the start and end times of rowWindow (#5061)
     add 4fa6c5e  [IOTDB-2502] Remove redundant query warn log (#5064)
     add 4eb8e4e  [IOTDB-2551] Prevent to sent template on wildcard path (#5062)
     add 9c332cf  [IOTDB-2550] Avoid show timeseries error after alter tag on sync sender  (#5068)
     add f4ecf3a  [IOTDB-2522] Check WAL files before upgrading 0.12 to 0.13 (#5066)
     add 5174898  change default value of sync_mlog_period_in_ms from 0 to 100 (#5073)
     add ca5641a  [IOTDB-2548] support date format: yyyy.MM.dd (#5071)
     add 568fd01  [IOTDB-2565] Only support upgrading 0.13 from 0.12 (#5077)
     add e95789c  change prefixPath in Tablet to deviceId (#5078)
     add 09e0903  [IOTDB-2487] Time series containing special characters can be created but connot be used normally (#4985)
     add f525181  Optimize group by fill logic (#5083)
     add 155001d  Fix windows cpp-client CI (#5082)
     add ba7bc46  [IOTDB-2567] Fix thread and ByteBuffer leak after service stopped (#5085)
     add 52a044e  [IOTDB-2541] Enhance /ping API to liveness probe (#5057)
     add bb5c7f9  [IOTDB-2566]Check alignment while setting template rather than activating it (#5080)
     add cef2f09  [IOTDB-2564]Not allowed to activate template on a path not set template (#5076)
     add a6ecfce  [IOTDB-2568] "show query processlist" is blocked (#5092)
     add ba0c6ee  enable workflow for branch start with (#5088)
     add e65cf45  [IOTDB-2546] Fix GetAllPaths() RPC call missing isUnderAligendEntity (#5058)
     add c9820b9  [IOTDB-2577] Clearer message for alignment conflict of template and mounted node (#5095)
     add b4ca805  [IOTDB-2557] Fix non-data-read QueryContext in getAllMeasurementSchema (#5072)
     add aa9efee  [IOTDB-2577]Clearer message for alignment conflict of template and mounted node (#5096)
     add e763438  [IOTDB-2585]Fix Cross space compaction selector of not closed file (#5102)
     add d0389ce  [IOTDB-2594][Metric] fix implement of histogram of dropwizard to UniformReservoir(#5109)
     add 762cd4d  [IOTDB-2593] Fix cannot insert data using JDK17 (#5106)
     add 44b76ae  [IOTDB-2591] fix doc of using OIDC as the authority authentication service (#5108)
     add 9c68af9  [IOTDB-2600] Ban inserting duplicated columns in one row (#5111)
     add 7f2978f  fix default max_thrift_frame_size to 512M (#5112)
     add 2ac29f5  [IOTDB-2599] Fix example of insertAlignedTablet is incorrect (#5114)
     add 45c679b  Fix invalid URL in README (#5117)
     add efa14ec  [IOTDB-2607] Fix session example error (#5119)
     add 84bc8de  stop scheduler pool when deleting storage group (#5120)
     add 238f230  [IOTDB-2581] Fix compaction recover in 0.13.0 is not compatible with 0.12.5 (#5099)
     add 95bb194  [IOTDB-2604] batch size is invalid in import-csv tool (#5115)
     add cb7e382  Rearranged UDF Library docs (#5079)
     add b954d0f  [IOTDB-2592] An exception occurred when using TsFile read API (#5105)
     add 6e983ee  fix UserGuide.EcosystemIntegration.FAQ.2.A (#5126)
     add 3f915d0  [IOTDB-2578]Fix cross space compaction recover and log read compatible with 0.12 (#5122)
     add 92ad9f2  [IOTDB-2620] Unrecognizable operator type (SHOW) for AuthorityChecker (#5129)
     add e44835f  [IOTDB-2625] Fix election deadlock when updating partition table (#5131)
     add 20df9c8  [IOTDB-2578]Fix cross space compaction recover and log read compatible with 0.12 (#5133)
     add 2bd7eb7  fix not set compactionCandidate to false when start compacting(#5127)
     add 2ab97b4  [IOTDB-2595] add buildin UDTF ON_OFF (#5124)
     add 9d33535  [IOTDB-2632] Set compaction_write_throughput_mb_per_sec to 16 by default (#5138)
     add ebd7ae1  Bump jjwt-impl from 0.10.7 to 0.10.8 (#5143)
     add 2bb33ae  Bump jaxb-impl from 2.3.0 to 2.3.6 (#5141)
     add 091c14a  [IOTDB-2625] Optimize RaftMember initialization (#5144)
     add 6fe4b91  Fix website compile error (#5149)
     new 209e42a  Merge remote-tracking branch 'origin/master' into ty-graduate
     new f3d2b32  change experiment code

The 3 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:
 .asf.yaml                                          |    7 +
 .github/workflows/client-go.yml                    |    2 +
 .github/workflows/client.yml                       |    4 +-
 .github/workflows/cluster.yml                      |    6 +-
 .github/workflows/e2e.yml                          |    4 -
 .github/workflows/grafana-plugin.yml               |    2 +
 .github/workflows/influxdb-protocol.yml            |    4 +
 .github/workflows/main-unix.yml                    |    5 +-
 .github/workflows/main-win.yml                     |    3 +-
 .github/workflows/sonar-coveralls.yml              |    5 +-
 Jenkinsfile                                        |    4 +-
 README.md                                          |    6 +-
 README_ZH.md                                       |    6 +-
 RELEASE_NOTES.md                                   |  434 +++
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.g4    |   43 +-
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |   64 +-
 cli/src/assembly/resources/sbin/start-cli.bat      |   15 +-
 cli/src/assembly/resources/sbin/start-cli.sh       |   11 +-
 cli/src/assembly/resources/tools/export-csv.bat    |   15 +-
 cli/src/assembly/resources/tools/export-csv.sh     |    8 +-
 cli/src/assembly/resources/tools/import-csv.bat    |   15 +-
 cli/src/assembly/resources/tools/import-csv.sh     |    8 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |   68 +-
 cli/src/main/java/org/apache/iotdb/cli/Cli.java    |   15 +-
 .../org/apache/iotdb/cli/utils/JlineUtils.java     |    2 +-
 .../org/apache/iotdb/tool/AbstractCsvTool.java     |   13 +-
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |   28 +-
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |  546 +--
 .../java/org/apache/iotdb/cli/AbstractScript.java  |   19 +-
 .../org/apache/iotdb/cli/StartClientScriptIT.java  |   17 +-
 .../iotdb/tool/integration/ExportCsvTestIT.java    |    4 +-
 .../iotdb/tool/integration/ImportCsvTestIT.java    |    4 +-
 cluster/src/assembly/resources/sbin/add-node.bat   |    2 +-
 cluster/src/assembly/resources/sbin/add-node.sh    |    2 +-
 cluster/src/assembly/resources/sbin/start-node.bat |    2 +-
 cluster/src/assembly/resources/sbin/start-node.sh  |    2 +-
 .../cluster/client/sync/SyncClientAdaptor.java     |   15 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   99 +-
 .../iotdb/cluster/query/ClusterQueryRouter.java    |   20 +-
 .../iotdb/cluster/query/LocalQueryExecutor.java    |   13 +-
 .../iotdb/cluster/server/member/RaftMember.java    |    8 +-
 .../cluster/server/service/DataAsyncService.java   |   12 +-
 .../server/service/DataGroupServiceImpls.java      |   28 +-
 .../cluster/server/service/DataSyncService.java    |   11 +-
 .../cluster/client/sync/SyncClientAdaptorTest.java |   35 +-
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |    1 -
 .../iotdb/cluster/common/TestAsyncDataClient.java  |    7 +-
 .../cluster/query/ClusterQueryRouterTest.java      |    2 +
 .../server/heartbeat/HeartbeatThreadTest.java      |    1 +
 .../tests/tools/importCsv/AbstractScript.java      |    7 +-
 .../tests/tools/importCsv/ExportCsvTestIT.java     |    1 -
 .../tests/tools/importCsv/ImportCsvTestIT.java     |    3 -
 docs/SystemDesign/Architecture/Architecture.md     |   54 -
 docs/SystemDesign/Connector/Hive-TsFile.md         |  114 -
 docs/SystemDesign/Connector/Spark-IOTDB.md         |   87 -
 docs/SystemDesign/Connector/Spark-TsFile.md        |  114 -
 docs/SystemDesign/DataQuery/AggregationQuery.md    |  136 -
 docs/SystemDesign/DataQuery/AlignByDeviceQuery.md  |  266 --
 docs/SystemDesign/DataQuery/DataQuery.md           |   46 -
 docs/SystemDesign/DataQuery/FillFunction.md        |  159 -
 docs/SystemDesign/DataQuery/GroupByFillQuery.md    |  177 -
 docs/SystemDesign/DataQuery/GroupByQuery.md        |  283 --
 docs/SystemDesign/DataQuery/LastQuery.md           |  137 -
 docs/SystemDesign/DataQuery/QueryFundamentals.md   |  161 -
 docs/SystemDesign/DataQuery/RawDataQuery.md        |  311 --
 docs/SystemDesign/DataQuery/SeriesReader.md        |  392 ---
 docs/SystemDesign/QueryEngine/PlanExecutor.md      |   26 -
 docs/SystemDesign/QueryEngine/Planner.md           |   65 -
 docs/SystemDesign/QueryEngine/QueryEngine.md       |   64 -
 .../QueryEngine/ResultSetConstruction.md           |  177 -
 docs/SystemDesign/SchemaManager/SchemaManager.md   |  356 --
 .../SystemDesign/StorageEngine/DataManipulation.md |  104 -
 docs/SystemDesign/StorageEngine/DataPartition.md   |   86 -
 docs/SystemDesign/StorageEngine/FlushManager.md    |   84 -
 docs/SystemDesign/StorageEngine/MergeManager.md    |  104 -
 docs/SystemDesign/StorageEngine/Recover.md         |  106 -
 docs/SystemDesign/StorageEngine/StorageEngine.md   |   68 -
 docs/SystemDesign/StorageEngine/WAL.md             |   48 -
 docs/SystemDesign/Tools/Sync.md                    |  249 --
 docs/SystemDesign/TsFile/Format.md                 |  764 -----
 docs/SystemDesign/TsFile/Read.md                   |  559 ----
 docs/SystemDesign/TsFile/Write.md                  |  126 -
 docs/UserGuide/API/Programming-JDBC.md             |    5 +
 docs/UserGuide/API/Programming-Java-Native-API.md  |   61 +-
 docs/UserGuide/API/RestService.md                  |  928 ++++++
 docs/UserGuide/API/Status-Codes.md                 |    2 +-
 .../Administration-Management/Administration.md    |  165 +-
 .../Cluster-Setup-Example.md                       |    0
 .../{QuickStart => Cluster}/Cluster-Setup.md       |    0
 docs/UserGuide/Data-Concept/Compression.md         |    9 +
 .../Ecosystem Integration/Grafana Connector.md     |    6 +-
 .../Ecosystem Integration/Grafana Plugin.md        |  241 ++
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   41 +-
 .../Maintenance-Tools/Maintenance-Command.md       |    2 +-
 docs/UserGuide/Maintenance-Tools/Metric-Tool.md    |   53 +-
 .../Maintenance-Tools/Monitor-and-Log-Tools.md     |  151 +-
 docs/UserGuide/Maintenance-Tools/Sync-Tool.md      |    4 +
 .../Maintenance-Tools/TsFile-Split-Tool.md         |   53 +
 .../Operate-Metadata/Auto-Create-MetaData.md       |   17 +-
 docs/UserGuide/Operate-Metadata/Node.md            |   10 +-
 docs/UserGuide/Operate-Metadata/Storage-Group.md   |    8 +-
 docs/UserGuide/Operate-Metadata/TTL.md             |    8 +-
 docs/UserGuide/Operate-Metadata/Template.md        |  156 +-
 docs/UserGuide/Operate-Metadata/Timeseries.md      |   92 +-
 .../Process-Data/UDF-User-Defined-Function.md      |    2 +-
 docs/UserGuide/Query-Data/Aggregate-Query.md       |  431 +++
 docs/UserGuide/Query-Data/Fill-Null-Value.md       |  390 +++
 docs/UserGuide/Query-Data/Last-Query.md            |   71 +
 docs/UserGuide/Query-Data/Overview.md              |  215 ++
 docs/UserGuide/Query-Data/Pagination.md            |  376 +++
 docs/UserGuide/Query-Data/Query-Filter.md          |  175 +
 docs/UserGuide/Query-Data/Result-Format.md         |   76 +
 docs/UserGuide/Query-Data/Select-Expression.md     |  652 ++++
 .../Query-Data/Tracing-Tool.md}                    |   15 +-
 .../Query-Data/Without-Null.md}                    |   39 +-
 .../UserGuide/QuickStart/Command-Line-Interface.md |   27 +-
 docs/UserGuide/Reference/Config-Manual.md          |  334 +-
 docs/UserGuide/Reference/SQL-Reference.md          |    2 +-
 docs/UserGuide/Reference/Syntax-Conventions.md     |   68 +-
 docs/UserGuide/Reference/TSDB-Comparison.md        |    8 +-
 docs/UserGuide/UDF-Library/Anomaly-Detection.md    |  525 +++
 docs/UserGuide/UDF-Library/Data-Matching.md        |  335 ++
 docs/UserGuide/UDF-Library/Data-Profiling.md       | 1812 ++++++++++
 .../Data-Quality.md}                               |   87 +-
 .../Data-Repairing.md}                             |   68 +-
 docs/UserGuide/UDF-Library/Frequency-Domain.md     |  605 ++++
 docs/UserGuide/UDF-Library/M4.md                   |   92 +
 .../Quick-Start.md}                                |   40 +-
 docs/UserGuide/UDF-Library/Series-Discovery.md     |  173 +
 docs/UserGuide/UDF-Library/String-Processing.md    |  299 ++
 docs/UserGuide/Write-And-Delete-Data/CSV-Tool.md   |    9 +-
 .../UserGuide/Write-And-Delete-Data/Delete-Data.md |   10 +-
 .../Write-And-Delete-Data/Load-External-Tsfile.md  |   14 +-
 docs/UserGuide/Write-And-Delete-Data/Write-Data.md |    6 +-
 docs/zh/SystemDesign/Architecture/Architecture.md  |   54 -
 docs/zh/SystemDesign/Client/RPC.md                 |   54 -
 docs/zh/SystemDesign/Connector/Hive-TsFile.md      |  118 -
 docs/zh/SystemDesign/Connector/Spark-IOTDB.md      |   88 -
 docs/zh/SystemDesign/Connector/Spark-TsFile.md     |  124 -
 docs/zh/SystemDesign/DataQuery/AggregationQuery.md |  133 -
 .../SystemDesign/DataQuery/AlignByDeviceQuery.md   |  264 --
 docs/zh/SystemDesign/DataQuery/DataQuery.md        |   48 -
 docs/zh/SystemDesign/DataQuery/FillFunction.md     |  157 -
 docs/zh/SystemDesign/DataQuery/GroupByFillQuery.md |  169 -
 docs/zh/SystemDesign/DataQuery/GroupByQuery.md     |  284 --
 docs/zh/SystemDesign/DataQuery/LastQuery.md        |  133 -
 docs/zh/SystemDesign/DataQuery/OrderByTimeQuery.md |  189 --
 .../zh/SystemDesign/DataQuery/QueryFundamentals.md |  138 -
 docs/zh/SystemDesign/DataQuery/RawDataQuery.md     |  327 --
 docs/zh/SystemDesign/DataQuery/SeriesReader.md     |  392 ---
 docs/zh/SystemDesign/QueryEngine/PlanExecutor.md   |   26 -
 docs/zh/SystemDesign/QueryEngine/Planner.md        |   62 -
 docs/zh/SystemDesign/QueryEngine/QueryEngine.md    |   64 -
 .../QueryEngine/ResultSetConstruction.md           |  175 -
 .../zh/SystemDesign/SchemaManager/SchemaManager.md |  345 --
 docs/zh/SystemDesign/StorageEngine/Compaction.md   |  258 --
 .../SystemDesign/StorageEngine/DataManipulation.md |  104 -
 .../zh/SystemDesign/StorageEngine/DataPartition.md |   84 -
 docs/zh/SystemDesign/StorageEngine/FileLists.md    |  153 -
 docs/zh/SystemDesign/StorageEngine/FlushManager.md |   84 -
 docs/zh/SystemDesign/StorageEngine/MergeManager.md |  112 -
 docs/zh/SystemDesign/StorageEngine/Recover.md      |  106 -
 .../zh/SystemDesign/StorageEngine/StorageEngine.md |   67 -
 docs/zh/SystemDesign/StorageEngine/WAL.md          |   48 -
 docs/zh/SystemDesign/Tools/Sync.md                 |  298 --
 docs/zh/SystemDesign/TsFile/Format.md              |  746 -----
 docs/zh/SystemDesign/TsFile/Read.md                |  554 ---
 docs/zh/SystemDesign/TsFile/TsFile.md              |   30 -
 docs/zh/SystemDesign/TsFile/Write.md               |  125 -
 docs/zh/UserGuide/API/Programming-JDBC.md          |    6 +
 .../UserGuide/API/Programming-Java-Native-API.md   |   40 +-
 docs/zh/UserGuide/API/RestService.md               |  726 +++-
 docs/zh/UserGuide/API/Status-Codes.md              |    2 +-
 .../Administration-Management/Administration.md    |  167 +-
 .../Cluster-Setup-Example.md                       |    0
 .../{QuickStart => Cluster}/Cluster-Setup.md       |    0
 docs/zh/UserGuide/Data-Concept/Compression.md      |    9 +
 docs/zh/UserGuide/Data-Concept/Schema-Template.md  |    2 +-
 .../Ecosystem Integration/Grafana Plugin.md        |    8 +-
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   34 +-
 .../Ecosystem Integration/Writing Data on HDFS.md  |    2 +-
 .../Maintenance-Tools/Maintenance-Command.md       |    2 +-
 docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md |   53 +-
 .../Maintenance-Tools/Monitor-and-Log-Tools.md     |  181 +-
 docs/zh/UserGuide/Maintenance-Tools/Sync-Tool.md   |    4 +
 .../Maintenance-Tools/TsFile-Split-Tool.md         |   52 +
 .../Operate-Metadata/Auto-Create-MetaData.md       |   16 +-
 docs/zh/UserGuide/Operate-Metadata/Node.md         |   10 +-
 .../zh/UserGuide/Operate-Metadata/Storage-Group.md |    8 +-
 docs/zh/UserGuide/Operate-Metadata/TTL.md          |    8 +-
 docs/zh/UserGuide/Operate-Metadata/Template.md     |  156 +-
 docs/zh/UserGuide/Operate-Metadata/Timeseries.md   |   93 +-
 .../Process-Data/UDF-User-Defined-Function.md      |    2 +-
 docs/zh/UserGuide/Query-Data/Aggregate-Query.md    |  428 +++
 docs/zh/UserGuide/Query-Data/Fill-Null-Value.md    |  396 +++
 docs/zh/UserGuide/Query-Data/Last-Query.md         |   69 +
 docs/zh/UserGuide/Query-Data/Overview.md           |  222 ++
 docs/zh/UserGuide/Query-Data/Pagination.md         |  367 ++
 .../Query-Data/Performance-Tracing-Tool.md         |    8 +-
 docs/zh/UserGuide/Query-Data/Query-Filter.md       |  170 +
 docs/zh/UserGuide/Query-Data/Result-Format.md      |   83 +
 docs/zh/UserGuide/Query-Data/Select-Expression.md  |  654 ++++
 ...Performance-Tracing-Tool.md => Tracing-Tool.md} |   11 +-
 .../UserGuide/Query-Data/Without-Null.md}          |   18 +-
 .../UserGuide/QuickStart/Command-Line-Interface.md |   30 +-
 docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md      |    2 +-
 docs/zh/UserGuide/Reference/Config-Manual.md       |  162 +-
 docs/zh/UserGuide/Reference/SQL-Reference.md       |    2 +-
 docs/zh/UserGuide/Reference/Syntax-Conventions.md  |   72 +-
 docs/zh/UserGuide/Reference/TSDB-Comparison.md     |    6 -
 docs/zh/UserGuide/UDF-Library/Anomaly-Detection.md |  531 +++
 docs/zh/UserGuide/UDF-Library/Data-Matching.md     |  333 ++
 docs/zh/UserGuide/UDF-Library/Data-Profiling.md    | 1805 ++++++++++
 .../Data-Quality.md}                               |   87 +-
 .../Data-Repairing.md}                             |   74 +-
 docs/zh/UserGuide/UDF-Library/Frequency-Domain.md  |  598 ++++
 docs/zh/UserGuide/UDF-Library/M4.md                |   93 +
 .../Quick-Start.md}                                |   41 +-
 docs/zh/UserGuide/UDF-Library/Series-Discovery.md  |  173 +
 docs/zh/UserGuide/UDF-Library/String-Processing.md |  290 ++
 .../zh/UserGuide/Write-And-Delete-Data/CSV-Tool.md |   17 +-
 .../UserGuide/Write-And-Delete-Data/Delete-Data.md |   11 +-
 .../Write-And-Delete-Data/Load-External-Tsfile.md  |   14 +-
 .../UserGuide/Write-And-Delete-Data/Write-Data.md  |    6 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    |    3 +-
 example/kafka/pom.xml                              |    2 +-
 .../org/apache/iotdb/pulsar/PulsarConsumer.java    |   24 +-
 .../apache/iotdb/pulsar/PulsarConsumerThread.java  |   83 +-
 .../iotdb/AlignedTimeseriesSessionExample.java     |   38 +-
 .../iotdb/HybridTimeseriesSessionExample.java      |   14 +-
 .../main/java/org/apache/iotdb/SessionExample.java |  713 +---
 .../java/org/apache/iotdb/tsfile/Constant.java     |    2 +
 .../iotdb/tsfile/TsFileForceAppendWrite.java       |    1 +
 .../java/org/apache/iotdb/tsfile/TsFileRead.java   |   18 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |   17 +-
 .../tsfile/TsFileWriteAlignedWithTSRecord.java     |   16 +-
 .../iotdb/tsfile/TsFileWriteAlignedWithTablet.java |   28 +-
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   16 +-
 .../apache/iotdb/tsfile/TsFileWriteWithTablet.java |   16 +-
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   |   30 +-
 grafana-plugin/src/datasource.ts                   |    2 +-
 .../iotdb/db/query/udf/example/WindowStartEnd.java |   66 +
 .../iotdb/integration/env/ClusterEnvBase.java      |    9 +-
 .../apache/iotdb/integration/env/ClusterNode.java  |   10 +
 .../apache/iotdb/db/integration/IOTDBInsertIT.java |   11 +
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |   96 +
 .../IoTDBAlignedTimeSeriesCompactionIT.java        |   80 +-
 .../iotdb/db/integration/IoTDBAuthorizationIT.java |    1 -
 .../db/integration/IoTDBAutoCreateSchemaIT.java    |    1 -
 .../iotdb/db/integration/IoTDBCheckConfigIT.java   |    5 +-
 .../{IoTDBMergeIT.java => IoTDBCompactionIT.java}  |    4 +-
 .../db/integration/IoTDBContinuousQueryIT.java     |   23 +-
 .../db/integration/IoTDBCreateTimeseriesIT.java    |  104 +
 .../db/integration/IoTDBDatetimeFormatIT.java      |  112 +
 .../iotdb/db/integration/IoTDBDeletionIT.java      |   10 +-
 .../iotdb/db/integration/IoTDBEncodingIT.java      |    1 -
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |    1 -
 .../iotdb/db/integration/IoTDBFuzzyQueryIT.java    |    1 -
 .../db/integration/IoTDBInsertMultiRowIT.java      |   10 +-
 .../db/integration/IoTDBInsertWithQueryIT.java     |    3 -
 .../db/integration/IoTDBInsertWithoutTimeIT.java   |    1 -
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |    1 -
 ...IoTDBLoadExternalTsFileWithTimePartitionIT.java |    1 -
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |    5 +-
 .../integration/IoTDBManageTsFileResourceIT.java   |    1 -
 .../db/integration/IoTDBNewTsFileCompactionIT.java |  242 +-
 .../db/integration/IoTDBPathNumOverLimitIT.java    |    1 -
 .../IoTDBQueryWithComplexValueFilterIT.java        |    1 -
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |    2 +-
 .../iotdb/db/integration/IoTDBRecoverIT.java       |    2 -
 .../db/integration/IoTDBRecoverUnclosedIT.java     |    2 -
 .../db/integration/IoTDBRemovePartitionIT.java     |   22 +-
 .../db/integration/IoTDBSchemaTemplateIT.java      |  227 +-
 .../iotdb/db/integration/IoTDBSelectIntoIT.java    |   25 +
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |    9 -
 .../db/integration/IoTDBSessionTimeoutIT.java      |    1 -
 .../apache/iotdb/db/integration/IoTDBSettleIT.java |    1 -
 .../integration/IoTDBSizeTieredCompactionIT.java   |   56 +-
 .../db/integration/IoTDBSyntaxConventionIT.java    |  208 +-
 .../db/integration/IoTDBUDFWindowQueryIT.java      |  165 +-
 .../db/integration/IoTDBUDTFBuiltinFunctionIT.java |   30 +
 .../db/integration/IoTDBUnseqOverlappedPageIT.java |  127 +
 .../aggregation/IoTDBAggregationLargeDataIT.java   |   28 +-
 .../aggregation/IoTDBAggregationSmallDataIT.java   |   10 +-
 .../IoTDBUserDefinedAggregationFunctionIT.java     |    1 -
 .../aligned/IOTDBInsertAlignedValuesIT.java        |   15 +-
 .../aligned/IoTDBAggregationGroupByLevelIT.java    |    1 -
 .../IoTDBAggregationWithValueFilter2IT.java        |    1 -
 .../aligned/IoTDBAggregationWithValueFilterIT.java |    1 -
 ...BAggregationWithValueFilterWithDeletion2IT.java |    1 -
 ...DBAggregationWithValueFilterWithDeletionIT.java |    1 -
 .../IoTDBAggregationWithoutValueFilter2IT.java     |    1 -
 .../IoTDBAggregationWithoutValueFilterIT.java      |    1 -
 ...gregationWithoutValueFilterWithDeletion2IT.java |    1 -
 ...ggregationWithoutValueFilterWithDeletionIT.java |    1 -
 .../integration/aligned/IoTDBAlignByDevice2IT.java |    1 -
 .../integration/aligned/IoTDBAlignByDeviceIT.java  |    1 -
 .../aligned/IoTDBDeleteTimeseriesIT.java           |    1 -
 .../db/integration/aligned/IoTDBDeletionIT.java    |   12 +-
 .../db/integration/aligned/IoTDBLastQuery2IT.java  |    1 -
 .../db/integration/aligned/IoTDBLastQueryIT.java   |    1 -
 .../aligned/IoTDBLastQueryWithDeletion2IT.java     |    1 -
 .../aligned/IoTDBLastQueryWithDeletionIT.java      |    1 -
 .../aligned/IoTDBLastQueryWithoutLastCache2IT.java |    1 -
 .../aligned/IoTDBLastQueryWithoutLastCacheIT.java  |    1 -
 ...DBLastQueryWithoutLastCacheWithDeletion2IT.java |    1 -
 ...TDBLastQueryWithoutLastCacheWithDeletionIT.java |    1 -
 .../aligned/IoTDBLoadExternalAlignedTsFileIT.java  |    5 +-
 .../aligned/IoTDBRawQueryWithValueFilter2IT.java   |    1 -
 .../aligned/IoTDBRawQueryWithValueFilterIT.java    |    1 -
 ...oTDBRawQueryWithValueFilterWithDeletion2IT.java |    1 -
 ...IoTDBRawQueryWithValueFilterWithDeletionIT.java |    1 -
 .../IoTDBRawQueryWithoutValueFilter2IT.java        |    1 -
 .../IoTDBRawQueryWithoutValueFilter3IT.java        |    1 -
 .../aligned/IoTDBRawQueryWithoutValueFilterIT.java |    1 -
 ...BRawQueryWithoutValueFilterWithDeletion2IT.java |    1 -
 ...DBRawQueryWithoutValueFilterWithDeletionIT.java |    1 -
 .../iotdb/db/integration/env/StandaloneEnv.java    |    3 +-
 .../IoTDBSyntaxConventionVersionAdaptionIT.java    |   16 +
 .../iotdb/session/IoTDBSessionComplexIT.java       |    1 -
 .../iotdb/session/IoTDBSessionIteratorIT.java      |    1 -
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |  159 +-
 .../session/IoTDBSessionSyntaxConventionIT.java    |  146 +
 integration/src/test/resources/logback.xml         |    2 +-
 metrics/dropwizard-metrics/pom.xml                 |    2 +-
 .../dropwizard/DropwizardMetricManager.java        |   25 +-
 .../iotdb/metrics/dropwizard/MetricName.java       |   12 +-
 .../prometheus/DropwizardMetricsExporter.java      |    3 +-
 .../dropwizard/DropwizardMetricManagerTest.java    |   10 +
 .../main/assembly/resources/conf/iotdb-metric.yml  |    6 +-
 .../metrics/config/MetricConfigDescriptor.java     |    2 +-
 .../interface/src/test/resources/iotdb-metric.yml  |    4 +-
 metrics/micrometer-metrics/pom.xml                 |    2 +-
 openapi/src/main/openapi3/iotdb-rest.yaml          |   15 +
 pom.xml                                            |    8 +-
 server/file-changelists/mlog-changelist.md         |    4 +
 .../system.properties-changelist.md                |   10 +
 server/pom.xml                                     |    2 +-
 .../resources/conf/iotdb-engine.properties         |   83 +-
 server/src/assembly/resources/conf/iotdb-env.bat   |   11 +
 server/src/assembly/resources/conf/iotdb-env.sh    |    8 +
 .../src/assembly/resources/sbin/start-server.bat   |    2 +-
 server/src/assembly/resources/sbin/start-server.sh |    2 +-
 .../tools/tsfileToolSet/split-tsfile-tool.bat      |   31 +-
 .../tools/tsfileToolSet/split-tsfile-tool.sh       |   23 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    1 +
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |    2 +-
 .../org/apache/iotdb/db/concurrent/ThreadName.java |    1 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  228 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  278 +-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |   16 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  101 +-
 .../org/apache/iotdb/db/conf/OperationType.java    |    1 +
 .../iotdb/db/conf/rest/IoTDBRestServiceConfig.java |    8 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |   80 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   20 +-
 .../db/engine/compaction/CompactionScheduler.java  |  216 +-
 .../compaction/CompactionTaskComparator.java       |   12 +-
 .../engine/compaction/CompactionTaskManager.java   |   98 +-
 .../db/engine/compaction/CompactionUtils.java      |  387 +++
 .../db/engine/compaction/TsFileIdentifier.java     |   32 +-
 .../AbstractCrossSpaceCompactionSelector.java      |   20 +-
 .../cross/AbstractCrossSpaceCompactionTask.java    |   17 +-
 .../compaction/cross/CrossCompactionStrategy.java  |   61 +-
 .../CrossSpaceCompactionExceptionHandler.java      |  243 ++
 .../cross/CrossSpaceCompactionTaskFactory.java     |   19 +-
 .../inplace/InplaceCompactionRecoverTask.java      |  110 -
 .../cross/inplace/InplaceCompactionTask.java       |  244 --
 .../inplace/manage/CrossSpaceMergeContext.java     |   88 -
 .../cross/inplace/manage/MergeFuture.java          |  151 -
 .../cross/inplace/manage/MergeManager.java         |  365 --
 .../cross/inplace/manage/MergeThreadPool.java      |   54 -
 .../recover/InplaceCompactionLogAnalyzer.java      |  353 --
 .../inplace/recover/InplaceCompactionLogger.java   |  150 -
 .../selector/MaxSeriesMergeFileSelector.java       |  115 -
 .../task/CleanLastCrossSpaceCompactionTask.java    |   67 -
 .../cross/inplace/task/CrossSpaceMergeTask.java    |  259 --
 .../cross/inplace/task/MergeCallback.java          |   40 -
 .../cross/inplace/task/MergeFileTask.java          |  405 ---
 .../cross/inplace/task/MergeMultiChunkTask.java    |  709 ----
 .../RewriteCrossSpaceCompactionSelector.java}      |   87 +-
 .../manage/CrossSpaceMergeResource.java            |  138 +-
 .../RewriteCrossSpaceCompactionLogAnalyzer.java    |  150 +
 .../recover/RewriteCrossSpaceCompactionLogger.java |   87 +
 .../selector/ICrossSpaceMergeFileSelector.java     |    2 +-
 .../selector/IFileQueryMemMeasurement.java         |    2 +-
 .../selector/IMergePathSelector.java               |    2 +-
 .../selector/MergeFileStrategy.java                |    2 +-
 .../selector/NaivePathSelector.java                |    2 +-
 .../selector/RewriteCompactionFileSelector.java}   |   78 +-
 .../task/RewriteCrossCompactionRecoverTask.java    |  442 +++
 .../task/RewriteCrossSpaceCompactionTask.java      |  254 ++
 .../AbstractInnerSpaceCompactionSelector.java      |   16 +-
 .../inner/AbstractInnerSpaceCompactionTask.java    |   14 +-
 .../compaction/inner/InnerCompactionStrategy.java  |   11 +-
 .../InnerSpaceCompactionExceptionHandler.java      |  156 +-
 .../inner/InnerSpaceCompactionTaskFactory.java     |    3 -
 .../SizeTieredCompactionRecoverTask.java           |   26 +-
 .../sizetiered/SizeTieredCompactionSelector.java   |   30 +-
 .../inner/sizetiered/SizeTieredCompactionTask.java |  167 +-
 .../utils/AlignedSeriesCompactionExecutor.java     |    3 +
 .../inner/utils/InnerSpaceCompactionUtils.java     |   61 +-
 .../inner/utils/MultiTsFileDeviceIterator.java     |   60 +-
 .../utils/SingleSeriesCompactionExecutor.java      |   51 +-
 .../inner/utils/SizeTieredCompactionLogger.java    |    4 +-
 .../task/AbstractCompactionSelector.java           |    2 +-
 .../compaction/task/AbstractCompactionTask.java    |   12 +-
 .../compaction/task/CompactionRecoverTask.java     |   90 +-
 .../writer/AbstractCompactionWriter.java           |  157 +
 .../writer/CrossSpaceCompactionWriter.java         |  178 +
 .../writer/InnerSpaceCompactionWriter.java         |   86 +
 .../iotdb/db/engine/cq/ContinuousQueryTask.java    |    8 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |   14 -
 .../iotdb/db/engine/flush/MemTableFlushTask.java   |   14 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |    4 +-
 .../engine/memtable/AlignedWritableMemChunk.java   |   21 +-
 .../memtable/AlignedWritableMemChunkGroup.java     |   13 +-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |    2 +-
 .../db/engine/memtable/IWritableMemChunkGroup.java |    2 +-
 .../iotdb/db/engine/memtable/WritableMemChunk.java |   16 +-
 .../db/engine/memtable/WritableMemChunkGroup.java  |    4 +-
 .../querycontext/AlignedReadOnlyMemChunk.java      |    4 +-
 .../selectinto/InsertTabletPlansIterator.java      |    6 +-
 .../db/engine/storagegroup/TsFileManager.java      |   79 +-
 .../engine/storagegroup/TsFileNameGenerator.java   |   84 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |    8 +-
 .../engine/storagegroup/TsFileProcessorInfo.java   |   20 +-
 .../db/engine/storagegroup/TsFileResource.java     |  114 +-
 .../db/engine/storagegroup/TsFileResourceList.java |  327 +-
 .../storagegroup/VirtualStorageGroupProcessor.java |  156 +-
 .../storagegroup/timeindex/DeviceTimeIndex.java    |   33 +-
 .../storagegroup/timeindex/FileTimeIndex.java      |   29 +-
 .../engine/storagegroup/timeindex/ITimeIndex.java  |    9 +-
 .../storagegroup/timeindex/TimeIndexLevel.java     |   11 +-
 .../storagegroup/timeindex/V012FileTimeIndex.java  |  176 +
 .../virtualSg/StorageGroupManager.java             |   30 +-
 .../db/engine/trigger/sink/mqtt/MQTTHandler.java   |   11 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |   75 +-
 .../idtable/AppendOnlyDiskSchemaManager.java       |   98 +-
 .../apache/iotdb/db/metadata/idtable/IDTable.java  |   31 +-
 .../db/metadata/idtable/IDTableHashmapImpl.java    |   49 +-
 .../db/metadata/idtable/IDiskSchemaManager.java    |    7 +
 .../db/metadata/idtable/entry/DeviceEntry.java     |   36 +
 .../db/metadata/idtable/entry/DeviceIDFactory.java |    4 +-
 .../db/metadata/idtable/entry/DiskSchemaEntry.java |   35 +-
 .../db/metadata/idtable/entry/SHA256DeviceID.java  |    6 +-
 .../db/metadata/idtable/entry/SchemaEntry.java     |   51 +-
 .../iotdb/db/metadata/logfile/MLogTxtWriter.java   |    1 +
 .../iotdb/db/metadata/logfile/MLogWriter.java      |    7 +-
 .../iotdb/db/metadata/mnode/InternalMNode.java     |   10 +-
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   13 +-
 .../org/apache/iotdb/db/metadata/mtree/MTree.java  |   39 +-
 .../apache/iotdb/db/metadata/path/AlignedPath.java |    2 +-
 .../iotdb/db/metadata/path/MeasurementPath.java    |    2 +-
 .../apache/iotdb/db/metadata/tag/TagManager.java   |   29 +-
 .../iotdb/db/metadata/template/Template.java       |   11 +-
 .../db/metadata/template/TemplateManager.java      |   18 +-
 .../apache/iotdb/db/metadata/utils/MetaUtils.java  |    6 +
 .../org/apache/iotdb/db/monitor/IStatistic.java    |   54 -
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   47 -
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |  326 --
 .../apache/iotdb/db/monitor/StatMonitorMBean.java  |   38 -
 .../protocol/rest/filter/AuthorizationFilter.java  |   17 +-
 .../db/protocol/rest/handler/ExceptionHandler.java |    8 +-
 .../handler/PhysicalPlanValidationHandler.java     |    1 +
 .../protocol/rest/handler/QueryDataSetHandler.java |  298 +-
 .../protocol/rest/impl/GrafanaApiServiceImpl.java  |   32 +-
 .../db/protocol/rest/impl/PingApiServiceImpl.java  |   13 +
 .../db/protocol/rest/impl/RestApiServiceImpl.java  |   17 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   18 +
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  188 +-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |    4 +-
 .../qp/logical/crud/GroupByFillQueryOperator.java  |   10 +
 .../db/qp/logical/crud/GroupByQueryOperator.java   |   34 +
 .../iotdb/db/qp/logical/crud/QueryOperator.java    |   36 +-
 ...atusOperator.java => DropTemplateOperator.java} |   21 +-
 .../db/qp/logical/sys/SetTemplateOperator.java     |    7 +-
 ...rator.java => ShowNodesInTemplateOperator.java} |   19 +-
 .../iotdb/db/qp/logical/sys/ShowOperator.java      |    3 +
 ...ator.java => ShowPathsSetTemplateOperator.java} |   19 +-
 ...or.java => ShowPathsUsingTemplateOperator.java} |   19 +-
 ...Operator.java => ShowQueryResourceOperate.java} |   11 +-
 .../logical/sys/ShowTemplatesOperator.java}        |   11 +-
 .../db/qp/logical/sys/UnsetTemplateOperator.java   |    7 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |    4 +
 .../db/qp/physical/crud/GroupByTimeFillPlan.java   |    8 +
 .../iotdb/db/qp/physical/crud/GroupByTimePlan.java |   27 +
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |    9 +
 .../db/qp/physical/crud/RawDataQueryPlan.java      |   15 +
 .../iotdb/db/qp/physical/sys/SetTemplatePlan.java  |   15 +-
 ...tatusPlan.java => ShowNodesInTemplatePlan.java} |   13 +-
 ...atusPlan.java => ShowPathsSetTemplatePlan.java} |   13 +-
 ...usPlan.java => ShowPathsUsingTemplatePlan.java} |   13 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |   13 +-
 .../physical/sys/ShowQueryResourcePlan.java}       |   21 +-
 ...MergeStatusPlan.java => ShowTemplatesPlan.java} |    6 +-
 .../db/qp/physical/sys/StorageGroupMNodePlan.java  |   32 +-
 .../db/qp/physical/sys/UnsetTemplatePlan.java      |   15 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |  292 +-
 .../aggregation/impl/FirstValueAggrResult.java     |    1 +
 .../iotdb/db/query/control/FileReaderManager.java  |   27 +-
 .../iotdb/db/query/control/QueryFileManager.java   |   29 +
 .../db/query/control/QueryResourceManager.java     |   21 +
 .../iotdb/db/query/control/SessionManager.java     |    2 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   23 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |   10 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   42 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   88 +-
 .../db/query/executor/AggregationExecutor.java     |   80 +-
 .../iotdb/db/query/executor/FillQueryExecutor.java |   72 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   39 +-
 .../iotdb/db/query/executor/QueryRouter.java       |  118 +-
 .../db/query/executor/RawDataQueryExecutor.java    |   47 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |   67 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   11 +-
 .../iotdb/db/query/udf/api/access/RowWindow.java   |   40 +
 .../db/query/udf/builtin/BuiltinFunction.java      |    1 +
 .../iotdb/db/query/udf/builtin/UDTFOnOff.java      |   86 +
 ...izableRowRecordListBackedMultiColumnWindow.java |   18 +-
 ...SerializableTVListBackedSingleColumnWindow.java |   18 +-
 .../layer/MultiInputColumnIntermediateLayer.java   |   18 +-
 ...InputColumnMultiReferenceIntermediateLayer.java |   15 +-
 ...nputColumnSingleReferenceIntermediateLayer.java |   15 +-
 .../iotdb/db/rescon/TsFileResourceManager.java     |   23 +-
 .../encrypt/AsymmetricEncrypt.java}                |   49 +-
 .../security/encrypt/AsymmetricEncryptFactory.java |   78 +
 .../encrypt/EncryptDecryptException.java}          |   12 +-
 .../db/security/encrypt/MessageDigestEncrypt.java  |   59 +
 .../java/org/apache/iotdb/db/service/IoTDB.java    |    7 +-
 .../iotdb/db/service/thrift/ThriftService.java     |    6 +-
 .../db/service/thrift/impl/TSServiceImpl.java      |  152 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |    7 +-
 .../db/sync/sender/manage/SyncFileManager.java     |    4 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |   24 +-
 .../org/apache/iotdb/db/tools/TsFileSplitTool.java |  309 ++
 .../db/tools/virtualsg/DeviceMappingViewer.java    |    2 +-
 .../java/org/apache/iotdb/db/utils/AuthUtils.java  |   24 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |    5 -
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |   70 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |  234 --
 .../org/apache/iotdb/db/utils/ThreadUtils.java     |   51 +
 .../db/utils/datastructure/AlignedTVList.java      |   51 +-
 .../iotdb/db/utils/datastructure/BinaryTVList.java |   32 +-
 .../db/utils/datastructure/BooleanTVList.java      |   32 +-
 .../iotdb/db/utils/datastructure/DoubleTVList.java |   32 +-
 .../datastructure/FixedPriorityBlockingQueue.java  |  190 ++
 .../iotdb/db/utils/datastructure/FloatTVList.java  |   32 +-
 .../iotdb/db/utils/datastructure/IntTVList.java    |   33 +-
 .../iotdb/db/utils/datastructure/LongTVList.java   |   33 +-
 .../iotdb/db/utils/datastructure/TVList.java       |   30 +-
 .../iotdb/db/writelog/io/SingleFileLogReader.java  |   19 +
 .../writelog/manager/MultiFileLogNodeManager.java  |    1 +
 .../db/writelog/node/ExclusiveWriteLogNode.java    |   31 +-
 .../iotdb/db/writelog/node/WriteLogNode.java       |    6 +
 .../db/auth/user/LocalFileUserManagerTest.java     |    4 +-
 .../db/conf/adapter/CompressionRatioTest.java      |    1 -
 .../engine/compaction/AbstractCompactionTest.java  |  295 ++
 .../engine/compaction/CompactionSchedulerTest.java | 1456 +++-----
 .../compaction/CompactionTaskComparatorTest.java   |   56 +-
 .../compaction/CompactionTaskManagerTest.java      |   80 +-
 .../db/engine/compaction/CompactionUtilsTest.java  | 3516 ++++++++++++++++++++
 .../cross/CrossSpaceCompactionExceptionTest.java   |  531 +++
 .../compaction/cross/CrossSpaceCompactionTest.java |  420 ++-
 .../cross/MaxFileMergeFileSelectorTest.java        |  316 --
 .../cross/MaxSeriesMergeFileSelectorTest.java      |  108 -
 .../db/engine/compaction/cross/MergeLogTest.java   |   92 -
 .../engine/compaction/cross/MergeManagerTest.java  |  146 -
 .../engine/compaction/cross/MergeOverLapTest.java  |  205 --
 .../db/engine/compaction/cross/MergePerfTest.java  |  108 -
 .../db/engine/compaction/cross/MergeTaskTest.java  |  575 ----
 .../db/engine/compaction/cross/MergeTest.java      |   14 +-
 .../engine/compaction/cross/MergeUpgradeTest.java  |   10 +-
 .../cross/RewriteCompactionFileSelectorTest.java   |  641 ++++
 .../RewriteCrossSpaceCompactionRecoverTest.java    |  501 +++
 .../cross/RewriteCrossSpaceCompactionTest.java     |  805 +++++
 .../inner/AbstractInnerSpaceCompactionTest.java    |   37 +-
 .../compaction/inner/InnerCompactionLogTest.java   |    9 +-
 .../inner/InnerCompactionMoreDataTest.java         |    9 +-
 .../inner/InnerCompactionSchedulerTest.java        |   90 +-
 .../compaction/inner/InnerCompactionTest.java      |   11 +-
 .../compaction/inner/InnerSeqCompactionTest.java   |   29 +-
 .../inner/InnerSpaceCompactionExceptionTest.java   |   54 +-
 .../InnerSpaceCompactionUtilsAlignedTest.java      |   16 +-
 .../InnerSpaceCompactionUtilsNoAlignedTest.java    |   18 +-
 .../inner/InnerSpaceCompactionUtilsOldTest.java    |    6 +-
 .../compaction/inner/InnerUnseqCompactionTest.java |   47 +-
 .../SizeTieredCompactionHandleExceptionTest.java   |  213 --
 .../SizeTieredCompactionRecoverTest.java           |   78 +-
 .../inner/sizetiered/SizeTieredCompactionTest.java |   11 +-
 .../SizeTieredCompactionRecoverCompatibleTest.java |  157 +
 .../recover/SizeTieredCompactionRecoverTest.java   |  146 +-
 .../task/FakedCrossSpaceCompactionTask.java        |   23 +-
 .../task/FakedCrossSpaceCompactionTaskFactory.java |   19 +-
 .../task/FakedInnerSpaceCompactionTask.java        |    5 +-
 .../task/FakedInnerSpaceCompactionTaskFactory.java |    1 -
 .../compaction/utils/CompactionCheckerUtils.java   |   17 +-
 .../compaction/utils/CompactionClearUtils.java     |   72 +-
 .../compaction/utils/CompactionConfigRestorer.java |   67 +
 .../utils/CompactionFileGeneratorUtils.java        |   68 +-
 .../db/engine/memtable/MemtableBenchmark.java      |    2 +-
 .../engine/storagegroup/FakedTsFileResource.java   |    7 +-
 .../storagegroup/StorageGroupProcessorTest.java    |    6 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |  103 +
 .../iotdb/db/metadata/MManagerBasicTest.java       |  125 +-
 .../org/apache/iotdb/db/metadata/TemplateTest.java |   88 +
 .../db/metadata/idtable/IDTableRecoverTest.java    |  211 ++
 .../iotdb/db/metadata/idtable/IDTableTest.java     |   11 -
 .../db/metadata/idtable/QueryWithIDTableTest.java  |    5 +
 .../db/metadata/idtable/entry/SchemaEntryTest.java |    6 -
 .../apache/iotdb/db/metadata/mnode/MNodeTest.java  |   23 +-
 .../iotdb/db/monitor/IoTDBStatMonitorTest.java     |  177 -
 .../iotdb/db/protocol/mqtt/PublishHandlerTest.java |    1 -
 .../db/protocol/rest/GrafanaApiServiceIT.java      |   68 +-
 .../iotdb/db/protocol/rest/IoTDBRestServiceIT.java |  623 +++-
 .../iotdb/db/qp/physical/InsertRowPlanTest.java    |   91 +-
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   19 +-
 .../dataset/groupby/GroupByLevelDataSetTest.java   |   11 +-
 .../dataset/groupby/GroupByTimeDataSetTest.java    |    2 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |    2 -
 .../security/encrypt/MessageDigestEncryptTest.java |   94 +
 .../db/sync/receiver/load/FileLoaderTest.java      |    1 -
 .../recover/SyncReceiverLogAnalyzerTest.java       |    1 -
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |    1 -
 .../iotdb/db/tools/TsFileSketchToolTest.java       |   69 +-
 .../db/utils/datastructure/BinaryTVListTest.java   |    8 +-
 .../db/utils/datastructure/BooleanTVListTest.java  |   10 +-
 .../db/utils/datastructure/DoubleTVListTest.java   |   12 +-
 .../FixedPriorityBlockingQueueTest.java            |  321 ++
 .../db/utils/datastructure/FloatTVListTest.java    |   12 +-
 .../db/utils/datastructure/IntTVListTest.java      |   12 +-
 .../db/utils/datastructure/LongTVListTest.java     |   14 +-
 .../db/utils/datastructure/VectorTVListTest.java   |   14 +-
 .../iotdb/db/writelog/IoTDBLogFileSizeTest.java    |    1 -
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |  115 +
 server/src/test/resources/logback.xml              |    2 +-
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |    5 +-
 .../java/org/apache/iotdb/session/Session.java     |  226 +-
 .../apache/iotdb/session/SessionConnection.java    |   20 +
 .../org/apache/iotdb/session/pool/SessionPool.java |  246 +-
 .../apache/iotdb/session/template/Template.java    |   10 +
 .../session/IoTDBSessionDisableMemControlIT.java   |    1 -
 .../session/IoTDBSessionVectorAggregationIT.java   |    3 +-
 .../iotdb/session/IoTDBSessionVectorInsertIT.java  |    2 -
 .../java/org/apache/iotdb/session/SessionTest.java |   44 +-
 .../apache/iotdb/session/pool/SessionPoolTest.java |    1 -
 .../apache/iotdb/session/template/TemplateUT.java  |    1 -
 site/pom.xml                                       |   64 +
 site/src/main/.vuepress/config.js                  |  506 ++-
 site/src/main/.vuepress/redirects                  |    2 +
 site/src/main/.vuepress/theme/components/Page.vue  |    2 +-
 site/src/main/package.json                         |    3 +-
 .../apache/iotdb/spark/db/EnvironmentUtils.java    |    9 -
 .../org/apache/iotdb/spark/db/IoTDBTest.scala      |    1 -
 .../org/apache/iotdb/spark/db/IoTDBWriteTest.scala |    1 -
 .../iotdb/spark/db/unit/DataFrameToolsTest.scala   |    1 -
 .../test/java/org/apache/iotdb/db/sql/Cases.java   |   12 +-
 thrift-cluster/src/main/thrift/cluster.thrift      |   12 +-
 thrift/rpc-changelist.md                           |   22 +-
 thrift/src/main/thrift/rpc.thrift                  |   11 +
 tsfile/format-changelist.md                        |    2 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |    2 +-
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |  208 +-
 .../tsfile/encoding/decoder/FloatDecoder.java      |   12 +-
 .../tsfile/encoding/decoder/PlainDecoder.java      |    2 +-
 .../org/apache/iotdb/tsfile/file/MetaMarker.java   |   18 +
 .../iotdb/tsfile/file/header/ChunkHeader.java      |    4 +-
 .../file/metadata/AlignedTimeSeriesMetadata.java   |    6 +-
 .../file/metadata/statistics/BinaryStatistics.java |   71 +-
 .../metadata/statistics/BooleanStatistics.java     |   67 +-
 .../file/metadata/statistics/DoubleStatistics.java |   64 +-
 .../file/metadata/statistics/FloatStatistics.java  |   64 +-
 .../metadata/statistics/IntegerStatistics.java     |   64 +-
 .../file/metadata/statistics/LongStatistics.java   |   64 +-
 .../file/metadata/statistics/Statistics.java       |   24 +-
 .../file/metadata/statistics/TimeStatistics.java   |   78 +-
 .../read/TsFileAlignedSeriesReaderIterator.java    |    3 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  204 +-
 .../read/controller/CachedChunkLoaderImpl.java     |   67 +-
 .../org/apache/iotdb/tsfile/utils/BytesUtils.java  |    4 +-
 .../apache/iotdb/tsfile/utils/StringContainer.java |    4 +-
 .../iotdb/tsfile/utils/TsFileGeneratorUtils.java   |  285 ++
 .../v2/file/metadata/MetadataIndexNodeV2.java      |    2 +-
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |    8 +-
 .../tsfile/write/chunk/AlignedChunkWriterImpl.java |   17 +
 .../iotdb/tsfile/write/chunk/ValueChunkWriter.java |   17 +
 .../apache/iotdb/tsfile/write/record/Tablet.java   |   32 +-
 .../tsfile/write/writer/LocalTsFileOutput.java     |   41 +-
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |    4 +-
 .../tsfile/common/conf/TSFileDescriptorTest.java   |   85 +
 .../apache/iotdb/tsfile/read/TsFileReaderTest.java |    6 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |   83 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   12 +-
 .../iotdb/tsfile/write/TsFileWriteApiTest.java     |   46 +-
 .../write/writer/AlignedChunkWriterImplTest.java   |   17 +-
 .../tsfile/write/writer/TimeChunkWriterTest.java   |    5 +-
 .../tsfile/write/writer/ValueChunkWriterTest.java  |    4 +-
 .../zeppelin/iotdb/IoTDBInterpreterTest.java       |    1 -
 697 files changed, 37831 insertions(+), 25661 deletions(-)
 delete mode 100644 docs/SystemDesign/Architecture/Architecture.md
 delete mode 100644 docs/SystemDesign/Connector/Hive-TsFile.md
 delete mode 100644 docs/SystemDesign/Connector/Spark-IOTDB.md
 delete mode 100644 docs/SystemDesign/Connector/Spark-TsFile.md
 delete mode 100644 docs/SystemDesign/DataQuery/AggregationQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/AlignByDeviceQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/DataQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/FillFunction.md
 delete mode 100644 docs/SystemDesign/DataQuery/GroupByFillQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/GroupByQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/LastQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/QueryFundamentals.md
 delete mode 100644 docs/SystemDesign/DataQuery/RawDataQuery.md
 delete mode 100644 docs/SystemDesign/DataQuery/SeriesReader.md
 delete mode 100644 docs/SystemDesign/QueryEngine/PlanExecutor.md
 delete mode 100644 docs/SystemDesign/QueryEngine/Planner.md
 delete mode 100644 docs/SystemDesign/QueryEngine/QueryEngine.md
 delete mode 100644 docs/SystemDesign/QueryEngine/ResultSetConstruction.md
 delete mode 100644 docs/SystemDesign/SchemaManager/SchemaManager.md
 delete mode 100644 docs/SystemDesign/StorageEngine/DataManipulation.md
 delete mode 100644 docs/SystemDesign/StorageEngine/DataPartition.md
 delete mode 100644 docs/SystemDesign/StorageEngine/FlushManager.md
 delete mode 100644 docs/SystemDesign/StorageEngine/MergeManager.md
 delete mode 100644 docs/SystemDesign/StorageEngine/Recover.md
 delete mode 100644 docs/SystemDesign/StorageEngine/StorageEngine.md
 delete mode 100644 docs/SystemDesign/StorageEngine/WAL.md
 delete mode 100644 docs/SystemDesign/Tools/Sync.md
 delete mode 100644 docs/SystemDesign/TsFile/Format.md
 delete mode 100644 docs/SystemDesign/TsFile/Read.md
 delete mode 100644 docs/SystemDesign/TsFile/Write.md
 create mode 100644 docs/UserGuide/API/RestService.md
 rename docs/UserGuide/{QuickStart => Cluster}/Cluster-Setup-Example.md (100%)
 rename docs/UserGuide/{QuickStart => Cluster}/Cluster-Setup.md (100%)
 create mode 100644 docs/UserGuide/Ecosystem Integration/Grafana Plugin.md
 create mode 100644 docs/UserGuide/Maintenance-Tools/TsFile-Split-Tool.md
 create mode 100644 docs/UserGuide/Query-Data/Aggregate-Query.md
 create mode 100644 docs/UserGuide/Query-Data/Fill-Null-Value.md
 create mode 100644 docs/UserGuide/Query-Data/Last-Query.md
 create mode 100644 docs/UserGuide/Query-Data/Overview.md
 create mode 100644 docs/UserGuide/Query-Data/Pagination.md
 create mode 100644 docs/UserGuide/Query-Data/Query-Filter.md
 create mode 100644 docs/UserGuide/Query-Data/Result-Format.md
 create mode 100644 docs/UserGuide/Query-Data/Select-Expression.md
 copy docs/{zh/UserGuide/Query-Data/Performance-Tracing-Tool.md => UserGuide/Query-Data/Tracing-Tool.md} (70%)
 rename docs/{SystemDesign/Client/RPC.md => UserGuide/Query-Data/Without-Null.md} (50%)
 create mode 100644 docs/UserGuide/UDF-Library/Anomaly-Detection.md
 create mode 100644 docs/UserGuide/UDF-Library/Data-Matching.md
 create mode 100644 docs/UserGuide/UDF-Library/Data-Profiling.md
 rename docs/UserGuide/{Process-Data/UDF-Data-Quality.md => UDF-Library/Data-Quality.md} (94%)
 rename docs/UserGuide/{Process-Data/UDF-Data-Repair.md => UDF-Library/Data-Repairing.md} (92%)
 create mode 100644 docs/UserGuide/UDF-Library/Frequency-Domain.md
 create mode 100644 docs/UserGuide/UDF-Library/M4.md
 rename docs/UserGuide/{Process-Data/UDF-Get-Started.md => UDF-Library/Quick-Start.md} (67%)
 create mode 100644 docs/UserGuide/UDF-Library/Series-Discovery.md
 create mode 100644 docs/UserGuide/UDF-Library/String-Processing.md
 delete mode 100644 docs/zh/SystemDesign/Architecture/Architecture.md
 delete mode 100644 docs/zh/SystemDesign/Client/RPC.md
 delete mode 100644 docs/zh/SystemDesign/Connector/Hive-TsFile.md
 delete mode 100644 docs/zh/SystemDesign/Connector/Spark-IOTDB.md
 delete mode 100644 docs/zh/SystemDesign/Connector/Spark-TsFile.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/AggregationQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/AlignByDeviceQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/DataQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/FillFunction.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/GroupByFillQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/GroupByQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/LastQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/OrderByTimeQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/QueryFundamentals.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/RawDataQuery.md
 delete mode 100644 docs/zh/SystemDesign/DataQuery/SeriesReader.md
 delete mode 100644 docs/zh/SystemDesign/QueryEngine/PlanExecutor.md
 delete mode 100644 docs/zh/SystemDesign/QueryEngine/Planner.md
 delete mode 100644 docs/zh/SystemDesign/QueryEngine/QueryEngine.md
 delete mode 100644 docs/zh/SystemDesign/QueryEngine/ResultSetConstruction.md
 delete mode 100644 docs/zh/SystemDesign/SchemaManager/SchemaManager.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/Compaction.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/DataManipulation.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/DataPartition.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/FileLists.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/FlushManager.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/MergeManager.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/Recover.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/StorageEngine.md
 delete mode 100644 docs/zh/SystemDesign/StorageEngine/WAL.md
 delete mode 100644 docs/zh/SystemDesign/Tools/Sync.md
 delete mode 100644 docs/zh/SystemDesign/TsFile/Format.md
 delete mode 100644 docs/zh/SystemDesign/TsFile/Read.md
 delete mode 100644 docs/zh/SystemDesign/TsFile/TsFile.md
 delete mode 100644 docs/zh/SystemDesign/TsFile/Write.md
 rename docs/zh/UserGuide/{QuickStart => Cluster}/Cluster-Setup-Example.md (100%)
 rename docs/zh/UserGuide/{QuickStart => Cluster}/Cluster-Setup.md (100%)
 create mode 100644 docs/zh/UserGuide/Maintenance-Tools/TsFile-Split-Tool.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Aggregate-Query.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Fill-Null-Value.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Last-Query.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Overview.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Pagination.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Query-Filter.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Result-Format.md
 create mode 100644 docs/zh/UserGuide/Query-Data/Select-Expression.md
 copy docs/zh/UserGuide/Query-Data/{Performance-Tracing-Tool.md => Tracing-Tool.md} (77%)
 rename docs/{SystemDesign/TsFile/TsFile.md => zh/UserGuide/Query-Data/Without-Null.md} (58%)
 create mode 100644 docs/zh/UserGuide/UDF-Library/Anomaly-Detection.md
 create mode 100644 docs/zh/UserGuide/UDF-Library/Data-Matching.md
 create mode 100644 docs/zh/UserGuide/UDF-Library/Data-Profiling.md
 rename docs/zh/UserGuide/{Process-Data/UDF-Data-Quality.md => UDF-Library/Data-Quality.md} (94%)
 rename docs/zh/UserGuide/{Process-Data/UDF-Data-Repair.md => UDF-Library/Data-Repairing.md} (92%)
 create mode 100644 docs/zh/UserGuide/UDF-Library/Frequency-Domain.md
 create mode 100644 docs/zh/UserGuide/UDF-Library/M4.md
 rename docs/zh/UserGuide/{Process-Data/UDF-Get-Started.md => UDF-Library/Quick-Start.md} (68%)
 create mode 100644 docs/zh/UserGuide/UDF-Library/Series-Discovery.md
 create mode 100644 docs/zh/UserGuide/UDF-Library/String-Processing.md
 create mode 100644 integration/src/main/java/org/apache/iotdb/db/query/udf/example/WindowStartEnd.java
 rename integration/src/test/java/org/apache/iotdb/db/integration/{IoTDBMergeIT.java => IoTDBCompactionIT.java} (99%)
 create mode 100644 integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDatetimeFormatIT.java
 create mode 100644 integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUnseqOverlappedPageIT.java
 create mode 100644 integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSyntaxConventionIT.java
 copy cli/src/assembly/resources/tools/import-csv.bat => server/src/assembly/resources/tools/tsfileToolSet/split-tsfile-tool.bat (66%)
 copy cli/src/assembly/resources/tools/import-csv.sh => server/src/assembly/resources/tools/tsfileToolSet/split-tsfile-tool.sh (64%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionHandler.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionRecoverTask.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/InplaceCompactionTask.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/manage/CrossSpaceMergeContext.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/manage/MergeFuture.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/manage/MergeManager.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/manage/MergeThreadPool.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/recover/InplaceCompactionLogAnalyzer.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/recover/InplaceCompactionLogger.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/selector/MaxSeriesMergeFileSelector.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/task/CleanLastCrossSpaceCompactionTask.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/task/CrossSpaceMergeTask.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/task/MergeCallback.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/task/MergeFileTask.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/inplace/task/MergeMultiChunkTask.java
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace/InplaceCompactionSelector.java => rewrite/RewriteCrossSpaceCompactionSelector.java} (64%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/manage/CrossSpaceMergeResource.java (60%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/recover/RewriteCrossSpaceCompactionLogAnalyzer.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/recover/RewriteCrossSpaceCompactionLogger.java
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/selector/ICrossSpaceMergeFileSelector.java (94%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/selector/IFileQueryMemMeasurement.java (94%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/selector/IMergePathSelector.java (94%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/selector/MergeFileStrategy.java (93%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace => rewrite}/selector/NaivePathSelector.java (96%)
 rename server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/{inplace/selector/MaxFileMergeFileSelector.java => rewrite/selector/RewriteCompactionFileSelector.java} (84%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossCompactionRecoverTask.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossSpaceCompactionTask.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/writer/AbstractCompactionWriter.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/writer/CrossSpaceCompactionWriter.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/compaction/writer/InnerSpaceCompactionWriter.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/V012FileTimeIndex.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/monitor/IStatistic.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/monitor/MonitorConstants.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
 delete mode 100644 server/src/main/java/org/apache/iotdb/db/monitor/StatMonitorMBean.java
 copy server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{ShowMergeStatusOperator.java => DropTemplateOperator.java} (73%)
 copy server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{ShowMergeStatusOperator.java => ShowNodesInTemplateOperator.java} (71%)
 copy server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{ShowMergeStatusOperator.java => ShowPathsSetTemplateOperator.java} (70%)
 copy server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{ShowMergeStatusOperator.java => ShowPathsUsingTemplateOperator.java} (70%)
 rename server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{ShowMergeStatusOperator.java => ShowQueryResourceOperate.java} (81%)
 rename server/src/main/java/org/apache/iotdb/db/{engine/compaction/cross/inplace/manage/MergeManagerMBean.java => qp/logical/sys/ShowTemplatesOperator.java} (81%)
 copy server/src/main/java/org/apache/iotdb/db/qp/physical/sys/{ShowMergeStatusPlan.java => ShowNodesInTemplatePlan.java} (73%)
 copy server/src/main/java/org/apache/iotdb/db/qp/physical/sys/{ShowMergeStatusPlan.java => ShowPathsSetTemplatePlan.java} (73%)
 copy server/src/main/java/org/apache/iotdb/db/qp/physical/sys/{ShowMergeStatusPlan.java => ShowPathsUsingTemplatePlan.java} (73%)
 rename server/src/main/java/org/apache/iotdb/db/{engine/compaction/cross/AbstractCrossSpaceCompactionRecoverTask.java => qp/physical/sys/ShowQueryResourcePlan.java} (62%)
 copy server/src/main/java/org/apache/iotdb/db/qp/physical/sys/{ShowMergeStatusPlan.java => ShowTemplatesPlan.java} (87%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/query/udf/builtin/UDTFOnOff.java
 rename server/src/main/java/org/apache/iotdb/db/{rescon/CachedStringPool.java => security/encrypt/AsymmetricEncrypt.java} (55%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/security/encrypt/AsymmetricEncryptFactory.java
 rename server/src/main/java/org/apache/iotdb/db/{qp/physical/sys/ShowMergeStatusPlan.java => security/encrypt/EncryptDecryptException.java} (74%)
 create mode 100644 server/src/main/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncrypt.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/utils/ThreadUtils.java
 create mode 100644 server/src/main/java/org/apache/iotdb/db/utils/datastructure/FixedPriorityBlockingQueue.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/AbstractCompactionTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionUtilsTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MaxFileMergeFileSelectorTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MaxSeriesMergeFileSelectorTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeLogTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeManagerTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeOverLapTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergePerfTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeTaskTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionRecoverTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionHandleExceptionTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverCompatibleTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionConfigRestorer.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/idtable/IDTableRecoverTest.java
 delete mode 100644 server/src/test/java/org/apache/iotdb/db/monitor/IoTDBStatMonitorTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
 create mode 100644 server/src/test/java/org/apache/iotdb/db/utils/datastructure/FixedPriorityBlockingQueueTest.java
 create mode 100644 site/src/main/.vuepress/redirects
 create mode 100644 tsfile/src/main/java/org/apache/iotdb/tsfile/utils/TsFileGeneratorUtils.java
 create mode 100644 tsfile/src/test/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptorTest.java

[iotdb] 01/03: change experiment code

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

jackietien pushed a commit to branch ty-graduate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 407405651ba513252d25fa34789ed080e8412e59
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed Mar 2 09:59:56 2022 +0800

    change experiment code
---
 .../session/src/main/java/org/apache/iotdb/SessionExample.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index b2e86b3..4d91ad0 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -369,13 +369,13 @@ public class SessionExample {
     Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 10000);
 
     // Method 1 to add tablet data
-    long timestamp = 0;
+    long timestamp = 1646134492000L;
     Random random = new Random(123456);
     for (long row = 0; row < totalRowNum; row++) {
       int rowIndex = tablet.rowSize++;
       tablet.addTimestamp(rowIndex, timestamp);
       for (int s = 0; s < sensorNum; s++) {
-        float value = random.nextFloat();
+        float value = -100.0f + 200.0f * random.nextFloat();
         tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
       }
       if (tablet.rowSize == tablet.getMaxRowNumber()) {
@@ -411,13 +411,13 @@ public class SessionExample {
 
     Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 10000);
 
-    long timestamp = 0;
+    long timestamp = 1646134492000L;
     Random random = new Random(123456);
     for (long row = 0; row < totalRowNum; row++) {
       int rowIndex = tablet.rowSize++;
       tablet.addTimestamp(rowIndex, timestamp);
       for (int s = 0; s < sensorNum; s++) {
-        float value = random.nextFloat();
+        float value = -100.0f + 200.0f * random.nextFloat();
         tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
       }
       if (tablet.rowSize == tablet.getMaxRowNumber()) {

[iotdb] 02/03: Merge remote-tracking branch 'origin/master' into ty-graduate

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

jackietien pushed a commit to branch ty-graduate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 209e42a21df8cd55343c63ba341434ab80d2bf27
Merge: 4074056 6fe4b91
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed Mar 2 10:00:00 2022 +0800

    Merge remote-tracking branch 'origin/master' into ty-graduate

 .asf.yaml                                          |    7 +
 .github/workflows/client-go.yml                    |    2 +
 .github/workflows/client.yml                       |    4 +-
 .github/workflows/cluster.yml                      |    6 +-
 .github/workflows/e2e.yml                          |    4 -
 .github/workflows/grafana-plugin.yml               |    2 +
 .github/workflows/influxdb-protocol.yml            |    4 +
 .github/workflows/main-unix.yml                    |    5 +-
 .github/workflows/main-win.yml                     |    3 +-
 .github/workflows/sonar-coveralls.yml              |    5 +-
 Jenkinsfile                                        |    4 +-
 README.md                                          |    6 +-
 README_ZH.md                                       |    6 +-
 RELEASE_NOTES.md                                   |  434 +++
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlLexer.g4    |   43 +-
 .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4   |   64 +-
 cli/src/assembly/resources/sbin/start-cli.bat      |   15 +-
 cli/src/assembly/resources/sbin/start-cli.sh       |   11 +-
 cli/src/assembly/resources/tools/export-csv.bat    |   15 +-
 cli/src/assembly/resources/tools/export-csv.sh     |    8 +-
 cli/src/assembly/resources/tools/import-csv.bat    |   15 +-
 cli/src/assembly/resources/tools/import-csv.sh     |    8 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |   68 +-
 cli/src/main/java/org/apache/iotdb/cli/Cli.java    |   15 +-
 .../org/apache/iotdb/cli/utils/JlineUtils.java     |    2 +-
 .../org/apache/iotdb/tool/AbstractCsvTool.java     |   13 +-
 .../main/java/org/apache/iotdb/tool/ExportCsv.java |   28 +-
 .../main/java/org/apache/iotdb/tool/ImportCsv.java |  546 +--
 .../java/org/apache/iotdb/cli/AbstractScript.java  |   19 +-
 .../org/apache/iotdb/cli/StartClientScriptIT.java  |   17 +-
 .../iotdb/tool/integration/ExportCsvTestIT.java    |    4 +-
 .../iotdb/tool/integration/ImportCsvTestIT.java    |    4 +-
 cluster/src/assembly/resources/sbin/add-node.bat   |    2 +-
 cluster/src/assembly/resources/sbin/add-node.sh    |    2 +-
 cluster/src/assembly/resources/sbin/start-node.bat |    2 +-
 cluster/src/assembly/resources/sbin/start-node.sh  |    2 +-
 .../cluster/client/sync/SyncClientAdaptor.java     |   15 +-
 .../apache/iotdb/cluster/metadata/CMManager.java   |   99 +-
 .../iotdb/cluster/query/ClusterQueryRouter.java    |   20 +-
 .../iotdb/cluster/query/LocalQueryExecutor.java    |   13 +-
 .../iotdb/cluster/server/member/RaftMember.java    |    8 +-
 .../cluster/server/service/DataAsyncService.java   |   12 +-
 .../server/service/DataGroupServiceImpls.java      |   28 +-
 .../cluster/server/service/DataSyncService.java    |   11 +-
 .../cluster/client/sync/SyncClientAdaptorTest.java |   35 +-
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |    1 -
 .../iotdb/cluster/common/TestAsyncDataClient.java  |    7 +-
 .../cluster/query/ClusterQueryRouterTest.java      |    2 +
 .../server/heartbeat/HeartbeatThreadTest.java      |    1 +
 .../tests/tools/importCsv/AbstractScript.java      |    7 +-
 .../tests/tools/importCsv/ExportCsvTestIT.java     |    1 -
 .../tests/tools/importCsv/ImportCsvTestIT.java     |    3 -
 docs/SystemDesign/Architecture/Architecture.md     |   54 -
 docs/SystemDesign/Connector/Hive-TsFile.md         |  114 -
 docs/SystemDesign/Connector/Spark-IOTDB.md         |   87 -
 docs/SystemDesign/Connector/Spark-TsFile.md        |  114 -
 docs/SystemDesign/DataQuery/AggregationQuery.md    |  136 -
 docs/SystemDesign/DataQuery/AlignByDeviceQuery.md  |  266 --
 docs/SystemDesign/DataQuery/DataQuery.md           |   46 -
 docs/SystemDesign/DataQuery/FillFunction.md        |  159 -
 docs/SystemDesign/DataQuery/GroupByFillQuery.md    |  177 -
 docs/SystemDesign/DataQuery/GroupByQuery.md        |  283 --
 docs/SystemDesign/DataQuery/LastQuery.md           |  137 -
 docs/SystemDesign/DataQuery/QueryFundamentals.md   |  161 -
 docs/SystemDesign/DataQuery/RawDataQuery.md        |  311 --
 docs/SystemDesign/DataQuery/SeriesReader.md        |  392 ---
 docs/SystemDesign/QueryEngine/PlanExecutor.md      |   26 -
 docs/SystemDesign/QueryEngine/Planner.md           |   65 -
 docs/SystemDesign/QueryEngine/QueryEngine.md       |   64 -
 .../QueryEngine/ResultSetConstruction.md           |  177 -
 docs/SystemDesign/SchemaManager/SchemaManager.md   |  356 --
 .../SystemDesign/StorageEngine/DataManipulation.md |  104 -
 docs/SystemDesign/StorageEngine/DataPartition.md   |   86 -
 docs/SystemDesign/StorageEngine/FlushManager.md    |   84 -
 docs/SystemDesign/StorageEngine/MergeManager.md    |  104 -
 docs/SystemDesign/StorageEngine/Recover.md         |  106 -
 docs/SystemDesign/StorageEngine/StorageEngine.md   |   68 -
 docs/SystemDesign/StorageEngine/WAL.md             |   48 -
 docs/SystemDesign/Tools/Sync.md                    |  249 --
 docs/SystemDesign/TsFile/Format.md                 |  764 -----
 docs/SystemDesign/TsFile/Read.md                   |  559 ----
 docs/SystemDesign/TsFile/Write.md                  |  126 -
 docs/UserGuide/API/Programming-JDBC.md             |    5 +
 docs/UserGuide/API/Programming-Java-Native-API.md  |   61 +-
 docs/UserGuide/API/RestService.md                  |  928 ++++++
 docs/UserGuide/API/Status-Codes.md                 |    2 +-
 .../Administration-Management/Administration.md    |  165 +-
 .../Cluster-Setup-Example.md                       |    0
 .../{QuickStart => Cluster}/Cluster-Setup.md       |    0
 docs/UserGuide/Data-Concept/Compression.md         |    9 +
 .../Ecosystem Integration/Grafana Connector.md     |    6 +-
 .../Ecosystem Integration/Grafana Plugin.md        |  241 ++
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   41 +-
 .../Maintenance-Tools/Maintenance-Command.md       |    2 +-
 docs/UserGuide/Maintenance-Tools/Metric-Tool.md    |   53 +-
 .../Maintenance-Tools/Monitor-and-Log-Tools.md     |  151 +-
 docs/UserGuide/Maintenance-Tools/Sync-Tool.md      |    4 +
 .../Maintenance-Tools/TsFile-Split-Tool.md         |   53 +
 .../Operate-Metadata/Auto-Create-MetaData.md       |   17 +-
 docs/UserGuide/Operate-Metadata/Node.md            |   10 +-
 docs/UserGuide/Operate-Metadata/Storage-Group.md   |    8 +-
 docs/UserGuide/Operate-Metadata/TTL.md             |    8 +-
 docs/UserGuide/Operate-Metadata/Template.md        |  156 +-
 docs/UserGuide/Operate-Metadata/Timeseries.md      |   92 +-
 .../Process-Data/UDF-User-Defined-Function.md      |    2 +-
 docs/UserGuide/Query-Data/Aggregate-Query.md       |  431 +++
 docs/UserGuide/Query-Data/Fill-Null-Value.md       |  390 +++
 docs/UserGuide/Query-Data/Last-Query.md            |   71 +
 docs/UserGuide/Query-Data/Overview.md              |  215 ++
 docs/UserGuide/Query-Data/Pagination.md            |  376 +++
 docs/UserGuide/Query-Data/Query-Filter.md          |  175 +
 docs/UserGuide/Query-Data/Result-Format.md         |   76 +
 docs/UserGuide/Query-Data/Select-Expression.md     |  652 ++++
 .../Query-Data/Tracing-Tool.md}                    |   15 +-
 .../Query-Data/Without-Null.md}                    |   39 +-
 .../UserGuide/QuickStart/Command-Line-Interface.md |   27 +-
 docs/UserGuide/Reference/Config-Manual.md          |  334 +-
 docs/UserGuide/Reference/SQL-Reference.md          |    2 +-
 docs/UserGuide/Reference/Syntax-Conventions.md     |   68 +-
 docs/UserGuide/Reference/TSDB-Comparison.md        |    8 +-
 docs/UserGuide/UDF-Library/Anomaly-Detection.md    |  525 +++
 docs/UserGuide/UDF-Library/Data-Matching.md        |  335 ++
 docs/UserGuide/UDF-Library/Data-Profiling.md       | 1812 ++++++++++
 .../Data-Quality.md}                               |   87 +-
 .../Data-Repairing.md}                             |   68 +-
 docs/UserGuide/UDF-Library/Frequency-Domain.md     |  605 ++++
 docs/UserGuide/UDF-Library/M4.md                   |   92 +
 .../Quick-Start.md}                                |   40 +-
 docs/UserGuide/UDF-Library/Series-Discovery.md     |  173 +
 docs/UserGuide/UDF-Library/String-Processing.md    |  299 ++
 docs/UserGuide/Write-And-Delete-Data/CSV-Tool.md   |    9 +-
 .../UserGuide/Write-And-Delete-Data/Delete-Data.md |   10 +-
 .../Write-And-Delete-Data/Load-External-Tsfile.md  |   14 +-
 docs/UserGuide/Write-And-Delete-Data/Write-Data.md |    6 +-
 docs/zh/SystemDesign/Architecture/Architecture.md  |   54 -
 docs/zh/SystemDesign/Client/RPC.md                 |   54 -
 docs/zh/SystemDesign/Connector/Hive-TsFile.md      |  118 -
 docs/zh/SystemDesign/Connector/Spark-IOTDB.md      |   88 -
 docs/zh/SystemDesign/Connector/Spark-TsFile.md     |  124 -
 docs/zh/SystemDesign/DataQuery/AggregationQuery.md |  133 -
 .../SystemDesign/DataQuery/AlignByDeviceQuery.md   |  264 --
 docs/zh/SystemDesign/DataQuery/DataQuery.md        |   48 -
 docs/zh/SystemDesign/DataQuery/FillFunction.md     |  157 -
 docs/zh/SystemDesign/DataQuery/GroupByFillQuery.md |  169 -
 docs/zh/SystemDesign/DataQuery/GroupByQuery.md     |  284 --
 docs/zh/SystemDesign/DataQuery/LastQuery.md        |  133 -
 docs/zh/SystemDesign/DataQuery/OrderByTimeQuery.md |  189 --
 .../zh/SystemDesign/DataQuery/QueryFundamentals.md |  138 -
 docs/zh/SystemDesign/DataQuery/RawDataQuery.md     |  327 --
 docs/zh/SystemDesign/DataQuery/SeriesReader.md     |  392 ---
 docs/zh/SystemDesign/QueryEngine/PlanExecutor.md   |   26 -
 docs/zh/SystemDesign/QueryEngine/Planner.md        |   62 -
 docs/zh/SystemDesign/QueryEngine/QueryEngine.md    |   64 -
 .../QueryEngine/ResultSetConstruction.md           |  175 -
 .../zh/SystemDesign/SchemaManager/SchemaManager.md |  345 --
 docs/zh/SystemDesign/StorageEngine/Compaction.md   |  258 --
 .../SystemDesign/StorageEngine/DataManipulation.md |  104 -
 .../zh/SystemDesign/StorageEngine/DataPartition.md |   84 -
 docs/zh/SystemDesign/StorageEngine/FileLists.md    |  153 -
 docs/zh/SystemDesign/StorageEngine/FlushManager.md |   84 -
 docs/zh/SystemDesign/StorageEngine/MergeManager.md |  112 -
 docs/zh/SystemDesign/StorageEngine/Recover.md      |  106 -
 .../zh/SystemDesign/StorageEngine/StorageEngine.md |   67 -
 docs/zh/SystemDesign/StorageEngine/WAL.md          |   48 -
 docs/zh/SystemDesign/Tools/Sync.md                 |  298 --
 docs/zh/SystemDesign/TsFile/Format.md              |  746 -----
 docs/zh/SystemDesign/TsFile/Read.md                |  554 ---
 docs/zh/SystemDesign/TsFile/TsFile.md              |   30 -
 docs/zh/SystemDesign/TsFile/Write.md               |  125 -
 docs/zh/UserGuide/API/Programming-JDBC.md          |    6 +
 .../UserGuide/API/Programming-Java-Native-API.md   |   40 +-
 docs/zh/UserGuide/API/RestService.md               |  726 +++-
 docs/zh/UserGuide/API/Status-Codes.md              |    2 +-
 .../Administration-Management/Administration.md    |  167 +-
 .../Cluster-Setup-Example.md                       |    0
 .../{QuickStart => Cluster}/Cluster-Setup.md       |    0
 docs/zh/UserGuide/Data-Concept/Compression.md      |    9 +
 docs/zh/UserGuide/Data-Concept/Schema-Template.md  |    2 +-
 .../Ecosystem Integration/Grafana Plugin.md        |    8 +-
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |   34 +-
 .../Ecosystem Integration/Writing Data on HDFS.md  |    2 +-
 .../Maintenance-Tools/Maintenance-Command.md       |    2 +-
 docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md |   53 +-
 .../Maintenance-Tools/Monitor-and-Log-Tools.md     |  181 +-
 docs/zh/UserGuide/Maintenance-Tools/Sync-Tool.md   |    4 +
 .../Maintenance-Tools/TsFile-Split-Tool.md         |   52 +
 .../Operate-Metadata/Auto-Create-MetaData.md       |   16 +-
 docs/zh/UserGuide/Operate-Metadata/Node.md         |   10 +-
 .../zh/UserGuide/Operate-Metadata/Storage-Group.md |    8 +-
 docs/zh/UserGuide/Operate-Metadata/TTL.md          |    8 +-
 docs/zh/UserGuide/Operate-Metadata/Template.md     |  156 +-
 docs/zh/UserGuide/Operate-Metadata/Timeseries.md   |   93 +-
 .../Process-Data/UDF-User-Defined-Function.md      |    2 +-
 docs/zh/UserGuide/Query-Data/Aggregate-Query.md    |  428 +++
 docs/zh/UserGuide/Query-Data/Fill-Null-Value.md    |  396 +++
 docs/zh/UserGuide/Query-Data/Last-Query.md         |   69 +
 docs/zh/UserGuide/Query-Data/Overview.md           |  222 ++
 docs/zh/UserGuide/Query-Data/Pagination.md         |  367 ++
 .../Query-Data/Performance-Tracing-Tool.md         |    8 +-
 docs/zh/UserGuide/Query-Data/Query-Filter.md       |  170 +
 docs/zh/UserGuide/Query-Data/Result-Format.md      |   83 +
 docs/zh/UserGuide/Query-Data/Select-Expression.md  |  654 ++++
 ...Performance-Tracing-Tool.md => Tracing-Tool.md} |   11 +-
 .../UserGuide/Query-Data/Without-Null.md}          |   18 +-
 .../UserGuide/QuickStart/Command-Line-Interface.md |   30 +-
 docs/zh/UserGuide/QuickStart/WayToGetIoTDB.md      |    2 +-
 docs/zh/UserGuide/Reference/Config-Manual.md       |  162 +-
 docs/zh/UserGuide/Reference/SQL-Reference.md       |    2 +-
 docs/zh/UserGuide/Reference/Syntax-Conventions.md  |   72 +-
 docs/zh/UserGuide/Reference/TSDB-Comparison.md     |    6 -
 docs/zh/UserGuide/UDF-Library/Anomaly-Detection.md |  531 +++
 docs/zh/UserGuide/UDF-Library/Data-Matching.md     |  333 ++
 docs/zh/UserGuide/UDF-Library/Data-Profiling.md    | 1805 ++++++++++
 .../Data-Quality.md}                               |   87 +-
 .../Data-Repairing.md}                             |   74 +-
 docs/zh/UserGuide/UDF-Library/Frequency-Domain.md  |  598 ++++
 docs/zh/UserGuide/UDF-Library/M4.md                |   93 +
 .../Quick-Start.md}                                |   41 +-
 docs/zh/UserGuide/UDF-Library/Series-Discovery.md  |  173 +
 docs/zh/UserGuide/UDF-Library/String-Processing.md |  290 ++
 .../zh/UserGuide/Write-And-Delete-Data/CSV-Tool.md |   17 +-
 .../UserGuide/Write-And-Delete-Data/Delete-Data.md |   11 +-
 .../Write-And-Delete-Data/Load-External-Tsfile.md  |   14 +-
 .../UserGuide/Write-And-Delete-Data/Write-Data.md  |    6 +-
 .../main/java/org/apache/iotdb/JDBCExample.java    |    3 +-
 example/kafka/pom.xml                              |    2 +-
 .../org/apache/iotdb/pulsar/PulsarConsumer.java    |   24 +-
 .../apache/iotdb/pulsar/PulsarConsumerThread.java  |   83 +-
 .../iotdb/AlignedTimeseriesSessionExample.java     |   38 +-
 .../iotdb/HybridTimeseriesSessionExample.java      |   14 +-
 .../main/java/org/apache/iotdb/SessionExample.java |    9 +-
 .../java/org/apache/iotdb/tsfile/Constant.java     |    2 +
 .../iotdb/tsfile/TsFileForceAppendWrite.java       |    1 +
 .../java/org/apache/iotdb/tsfile/TsFileRead.java   |   18 +-
 .../apache/iotdb/tsfile/TsFileSequenceRead.java    |   17 +-
 .../tsfile/TsFileWriteAlignedWithTSRecord.java     |   16 +-
 .../iotdb/tsfile/TsFileWriteAlignedWithTablet.java |   28 +-
 .../iotdb/tsfile/TsFileWriteWithTSRecord.java      |   16 +-
 .../apache/iotdb/tsfile/TsFileWriteWithTablet.java |   16 +-
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   |   30 +-
 grafana-plugin/src/datasource.ts                   |    2 +-
 .../iotdb/db/query/udf/example/WindowStartEnd.java |   66 +
 .../iotdb/integration/env/ClusterEnvBase.java      |    9 +-
 .../apache/iotdb/integration/env/ClusterNode.java  |   10 +
 .../apache/iotdb/db/integration/IOTDBInsertIT.java |   11 +
 .../iotdb/db/integration/IoTDBAlignByDeviceIT.java |   96 +
 .../IoTDBAlignedTimeSeriesCompactionIT.java        |   80 +-
 .../iotdb/db/integration/IoTDBAuthorizationIT.java |    1 -
 .../db/integration/IoTDBAutoCreateSchemaIT.java    |    1 -
 .../iotdb/db/integration/IoTDBCheckConfigIT.java   |    5 +-
 .../{IoTDBMergeIT.java => IoTDBCompactionIT.java}  |    4 +-
 .../db/integration/IoTDBContinuousQueryIT.java     |   23 +-
 .../db/integration/IoTDBCreateTimeseriesIT.java    |  104 +
 .../db/integration/IoTDBDatetimeFormatIT.java      |  112 +
 .../iotdb/db/integration/IoTDBDeletionIT.java      |   10 +-
 .../iotdb/db/integration/IoTDBEncodingIT.java      |    1 -
 .../db/integration/IoTDBEngineTimeGeneratorIT.java |    1 -
 .../iotdb/db/integration/IoTDBFuzzyQueryIT.java    |    1 -
 .../db/integration/IoTDBInsertMultiRowIT.java      |   10 +-
 .../db/integration/IoTDBInsertWithQueryIT.java     |    3 -
 .../db/integration/IoTDBInsertWithoutTimeIT.java   |    1 -
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |    1 -
 ...IoTDBLoadExternalTsFileWithTimePartitionIT.java |    1 -
 .../db/integration/IoTDBLoadExternalTsfileIT.java  |    5 +-
 .../integration/IoTDBManageTsFileResourceIT.java   |    1 -
 .../db/integration/IoTDBNewTsFileCompactionIT.java |  242 +-
 .../db/integration/IoTDBPathNumOverLimitIT.java    |    1 -
 .../IoTDBQueryWithComplexValueFilterIT.java        |    1 -
 .../iotdb/db/integration/IoTDBQuotedPathIT.java    |    2 +-
 .../iotdb/db/integration/IoTDBRecoverIT.java       |    2 -
 .../db/integration/IoTDBRecoverUnclosedIT.java     |    2 -
 .../db/integration/IoTDBRemovePartitionIT.java     |   22 +-
 .../db/integration/IoTDBSchemaTemplateIT.java      |  227 +-
 .../iotdb/db/integration/IoTDBSelectIntoIT.java    |   25 +
 .../iotdb/db/integration/IoTDBSeriesReaderIT.java  |    9 -
 .../db/integration/IoTDBSessionTimeoutIT.java      |    1 -
 .../apache/iotdb/db/integration/IoTDBSettleIT.java |    1 -
 .../integration/IoTDBSizeTieredCompactionIT.java   |   56 +-
 .../db/integration/IoTDBSyntaxConventionIT.java    |  208 +-
 .../db/integration/IoTDBUDFWindowQueryIT.java      |  165 +-
 .../db/integration/IoTDBUDTFBuiltinFunctionIT.java |   30 +
 .../db/integration/IoTDBUnseqOverlappedPageIT.java |  127 +
 .../aggregation/IoTDBAggregationLargeDataIT.java   |   28 +-
 .../aggregation/IoTDBAggregationSmallDataIT.java   |   10 +-
 .../IoTDBUserDefinedAggregationFunctionIT.java     |    1 -
 .../aligned/IOTDBInsertAlignedValuesIT.java        |   15 +-
 .../aligned/IoTDBAggregationGroupByLevelIT.java    |    1 -
 .../IoTDBAggregationWithValueFilter2IT.java        |    1 -
 .../aligned/IoTDBAggregationWithValueFilterIT.java |    1 -
 ...BAggregationWithValueFilterWithDeletion2IT.java |    1 -
 ...DBAggregationWithValueFilterWithDeletionIT.java |    1 -
 .../IoTDBAggregationWithoutValueFilter2IT.java     |    1 -
 .../IoTDBAggregationWithoutValueFilterIT.java      |    1 -
 ...gregationWithoutValueFilterWithDeletion2IT.java |    1 -
 ...ggregationWithoutValueFilterWithDeletionIT.java |    1 -
 .../integration/aligned/IoTDBAlignByDevice2IT.java |    1 -
 .../integration/aligned/IoTDBAlignByDeviceIT.java  |    1 -
 .../aligned/IoTDBDeleteTimeseriesIT.java           |    1 -
 .../db/integration/aligned/IoTDBDeletionIT.java    |   12 +-
 .../db/integration/aligned/IoTDBLastQuery2IT.java  |    1 -
 .../db/integration/aligned/IoTDBLastQueryIT.java   |    1 -
 .../aligned/IoTDBLastQueryWithDeletion2IT.java     |    1 -
 .../aligned/IoTDBLastQueryWithDeletionIT.java      |    1 -
 .../aligned/IoTDBLastQueryWithoutLastCache2IT.java |    1 -
 .../aligned/IoTDBLastQueryWithoutLastCacheIT.java  |    1 -
 ...DBLastQueryWithoutLastCacheWithDeletion2IT.java |    1 -
 ...TDBLastQueryWithoutLastCacheWithDeletionIT.java |    1 -
 .../aligned/IoTDBLoadExternalAlignedTsFileIT.java  |    5 +-
 .../aligned/IoTDBRawQueryWithValueFilter2IT.java   |    1 -
 .../aligned/IoTDBRawQueryWithValueFilterIT.java    |    1 -
 ...oTDBRawQueryWithValueFilterWithDeletion2IT.java |    1 -
 ...IoTDBRawQueryWithValueFilterWithDeletionIT.java |    1 -
 .../IoTDBRawQueryWithoutValueFilter2IT.java        |    1 -
 .../IoTDBRawQueryWithoutValueFilter3IT.java        |    1 -
 .../aligned/IoTDBRawQueryWithoutValueFilterIT.java |    1 -
 ...BRawQueryWithoutValueFilterWithDeletion2IT.java |    1 -
 ...DBRawQueryWithoutValueFilterWithDeletionIT.java |    1 -
 .../iotdb/db/integration/env/StandaloneEnv.java    |    3 +-
 .../IoTDBSyntaxConventionVersionAdaptionIT.java    |   16 +
 .../iotdb/session/IoTDBSessionComplexIT.java       |    1 -
 .../iotdb/session/IoTDBSessionIteratorIT.java      |    1 -
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |  159 +-
 .../session/IoTDBSessionSyntaxConventionIT.java    |  146 +
 integration/src/test/resources/logback.xml         |    2 +-
 metrics/dropwizard-metrics/pom.xml                 |    2 +-
 .../dropwizard/DropwizardMetricManager.java        |   25 +-
 .../iotdb/metrics/dropwizard/MetricName.java       |   12 +-
 .../prometheus/DropwizardMetricsExporter.java      |    3 +-
 .../dropwizard/DropwizardMetricManagerTest.java    |   10 +
 .../main/assembly/resources/conf/iotdb-metric.yml  |    6 +-
 .../metrics/config/MetricConfigDescriptor.java     |    2 +-
 .../interface/src/test/resources/iotdb-metric.yml  |    4 +-
 metrics/micrometer-metrics/pom.xml                 |    2 +-
 openapi/src/main/openapi3/iotdb-rest.yaml          |   15 +
 pom.xml                                            |    8 +-
 server/file-changelists/mlog-changelist.md         |    4 +
 .../system.properties-changelist.md                |   10 +
 server/pom.xml                                     |    2 +-
 .../resources/conf/iotdb-engine.properties         |   83 +-
 server/src/assembly/resources/conf/iotdb-env.bat   |   11 +
 server/src/assembly/resources/conf/iotdb-env.sh    |    8 +
 .../src/assembly/resources/sbin/start-server.bat   |    2 +-
 server/src/assembly/resources/sbin/start-server.sh |    2 +-
 .../tools/tsfileToolSet/split-tsfile-tool.bat      |   31 +-
 .../tools/tsfileToolSet/split-tsfile-tool.sh       |   23 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |    1 +
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |    2 +-
 .../org/apache/iotdb/db/concurrent/ThreadName.java |    1 +
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  228 +-
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  278 +-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |   16 +-
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  101 +-
 .../org/apache/iotdb/db/conf/OperationType.java    |    1 +
 .../iotdb/db/conf/rest/IoTDBRestServiceConfig.java |    8 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |   80 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   20 +-
 .../db/engine/compaction/CompactionScheduler.java  |  216 +-
 .../compaction/CompactionTaskComparator.java       |   12 +-
 .../engine/compaction/CompactionTaskManager.java   |   98 +-
 .../db/engine/compaction/CompactionUtils.java      |  387 +++
 .../db/engine/compaction/TsFileIdentifier.java     |   32 +-
 .../AbstractCrossSpaceCompactionSelector.java      |   20 +-
 .../cross/AbstractCrossSpaceCompactionTask.java    |   17 +-
 .../compaction/cross/CrossCompactionStrategy.java  |   61 +-
 .../CrossSpaceCompactionExceptionHandler.java      |  243 ++
 .../cross/CrossSpaceCompactionTaskFactory.java     |   19 +-
 .../inplace/InplaceCompactionRecoverTask.java      |  110 -
 .../cross/inplace/InplaceCompactionTask.java       |  244 --
 .../inplace/manage/CrossSpaceMergeContext.java     |   88 -
 .../cross/inplace/manage/MergeFuture.java          |  151 -
 .../cross/inplace/manage/MergeManager.java         |  365 --
 .../cross/inplace/manage/MergeThreadPool.java      |   54 -
 .../recover/InplaceCompactionLogAnalyzer.java      |  353 --
 .../inplace/recover/InplaceCompactionLogger.java   |  150 -
 .../selector/MaxSeriesMergeFileSelector.java       |  115 -
 .../task/CleanLastCrossSpaceCompactionTask.java    |   67 -
 .../cross/inplace/task/CrossSpaceMergeTask.java    |  259 --
 .../cross/inplace/task/MergeCallback.java          |   40 -
 .../cross/inplace/task/MergeFileTask.java          |  405 ---
 .../cross/inplace/task/MergeMultiChunkTask.java    |  709 ----
 .../RewriteCrossSpaceCompactionSelector.java}      |   87 +-
 .../manage/CrossSpaceMergeResource.java            |  138 +-
 .../RewriteCrossSpaceCompactionLogAnalyzer.java    |  150 +
 .../recover/RewriteCrossSpaceCompactionLogger.java |   87 +
 .../selector/ICrossSpaceMergeFileSelector.java     |    2 +-
 .../selector/IFileQueryMemMeasurement.java         |    2 +-
 .../selector/IMergePathSelector.java               |    2 +-
 .../selector/MergeFileStrategy.java                |    2 +-
 .../selector/NaivePathSelector.java                |    2 +-
 .../selector/RewriteCompactionFileSelector.java}   |   78 +-
 .../task/RewriteCrossCompactionRecoverTask.java    |  442 +++
 .../task/RewriteCrossSpaceCompactionTask.java      |  254 ++
 .../AbstractInnerSpaceCompactionSelector.java      |   16 +-
 .../inner/AbstractInnerSpaceCompactionTask.java    |   14 +-
 .../compaction/inner/InnerCompactionStrategy.java  |   11 +-
 .../InnerSpaceCompactionExceptionHandler.java      |  156 +-
 .../inner/InnerSpaceCompactionTaskFactory.java     |    3 -
 .../SizeTieredCompactionRecoverTask.java           |   26 +-
 .../sizetiered/SizeTieredCompactionSelector.java   |   30 +-
 .../inner/sizetiered/SizeTieredCompactionTask.java |  167 +-
 .../utils/AlignedSeriesCompactionExecutor.java     |    3 +
 .../inner/utils/InnerSpaceCompactionUtils.java     |   61 +-
 .../inner/utils/MultiTsFileDeviceIterator.java     |   60 +-
 .../utils/SingleSeriesCompactionExecutor.java      |   51 +-
 .../inner/utils/SizeTieredCompactionLogger.java    |    4 +-
 .../task/AbstractCompactionSelector.java           |    2 +-
 .../compaction/task/AbstractCompactionTask.java    |   12 +-
 .../compaction/task/CompactionRecoverTask.java     |   90 +-
 .../writer/AbstractCompactionWriter.java           |  157 +
 .../writer/CrossSpaceCompactionWriter.java         |  178 +
 .../writer/InnerSpaceCompactionWriter.java         |   86 +
 .../iotdb/db/engine/cq/ContinuousQueryTask.java    |    8 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |   14 -
 .../iotdb/db/engine/memtable/AbstractMemTable.java |    4 +-
 .../engine/memtable/AlignedWritableMemChunk.java   |   21 +-
 .../memtable/AlignedWritableMemChunkGroup.java     |   13 +-
 .../apache/iotdb/db/engine/memtable/IMemTable.java |    2 +-
 .../db/engine/memtable/IWritableMemChunkGroup.java |    2 +-
 .../iotdb/db/engine/memtable/WritableMemChunk.java |   16 +-
 .../db/engine/memtable/WritableMemChunkGroup.java  |    4 +-
 .../querycontext/AlignedReadOnlyMemChunk.java      |    4 +-
 .../selectinto/InsertTabletPlansIterator.java      |    6 +-
 .../db/engine/storagegroup/TsFileManager.java      |   79 +-
 .../engine/storagegroup/TsFileNameGenerator.java   |   84 +-
 .../db/engine/storagegroup/TsFileProcessor.java    |    8 +-
 .../engine/storagegroup/TsFileProcessorInfo.java   |   20 +-
 .../db/engine/storagegroup/TsFileResource.java     |  114 +-
 .../db/engine/storagegroup/TsFileResourceList.java |  327 +-
 .../storagegroup/VirtualStorageGroupProcessor.java |  156 +-
 .../storagegroup/timeindex/DeviceTimeIndex.java    |   33 +-
 .../storagegroup/timeindex/FileTimeIndex.java      |   29 +-
 .../engine/storagegroup/timeindex/ITimeIndex.java  |    9 +-
 .../storagegroup/timeindex/TimeIndexLevel.java     |   11 +-
 .../storagegroup/timeindex/V012FileTimeIndex.java  |  176 +
 .../virtualSg/StorageGroupManager.java             |   30 +-
 .../db/engine/trigger/sink/mqtt/MQTTHandler.java   |   11 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |   75 +-
 .../idtable/AppendOnlyDiskSchemaManager.java       |   98 +-
 .../apache/iotdb/db/metadata/idtable/IDTable.java  |   31 +-
 .../db/metadata/idtable/IDTableHashmapImpl.java    |   49 +-
 .../db/metadata/idtable/IDiskSchemaManager.java    |    7 +
 .../db/metadata/idtable/entry/DeviceEntry.java     |   36 +
 .../db/metadata/idtable/entry/DeviceIDFactory.java |    4 +-
 .../db/metadata/idtable/entry/DiskSchemaEntry.java |   35 +-
 .../db/metadata/idtable/entry/SHA256DeviceID.java  |    6 +-
 .../db/metadata/idtable/entry/SchemaEntry.java     |   51 +-
 .../iotdb/db/metadata/logfile/MLogTxtWriter.java   |    1 +
 .../iotdb/db/metadata/logfile/MLogWriter.java      |    7 +-
 .../iotdb/db/metadata/mnode/InternalMNode.java     |   10 +-
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   13 +-
 .../org/apache/iotdb/db/metadata/mtree/MTree.java  |   39 +-
 .../apache/iotdb/db/metadata/path/AlignedPath.java |    2 +-
 .../iotdb/db/metadata/path/MeasurementPath.java    |    2 +-
 .../apache/iotdb/db/metadata/tag/TagManager.java   |   29 +-
 .../iotdb/db/metadata/template/Template.java       |   11 +-
 .../db/metadata/template/TemplateManager.java      |   18 +-
 .../apache/iotdb/db/metadata/utils/MetaUtils.java  |    6 +
 .../org/apache/iotdb/db/monitor/IStatistic.java    |   54 -
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   47 -
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |  326 --
 .../apache/iotdb/db/monitor/StatMonitorMBean.java  |   38 -
 .../protocol/rest/filter/AuthorizationFilter.java  |   17 +-
 .../db/protocol/rest/handler/ExceptionHandler.java |    8 +-
 .../handler/PhysicalPlanValidationHandler.java     |    1 +
 .../protocol/rest/handler/QueryDataSetHandler.java |  298 +-
 .../protocol/rest/impl/GrafanaApiServiceImpl.java  |   32 +-
 .../db/protocol/rest/impl/PingApiServiceImpl.java  |   13 +
 .../db/protocol/rest/impl/RestApiServiceImpl.java  |   17 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   18 +
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  188 +-
 .../org/apache/iotdb/db/qp/logical/Operator.java   |    4 +-
 .../qp/logical/crud/GroupByFillQueryOperator.java  |   10 +
 .../db/qp/logical/crud/GroupByQueryOperator.java   |   34 +
 .../iotdb/db/qp/logical/crud/QueryOperator.java    |   36 +-
 ...atusOperator.java => DropTemplateOperator.java} |   21 +-
 .../db/qp/logical/sys/SetTemplateOperator.java     |    7 +-
 ...rator.java => ShowNodesInTemplateOperator.java} |   19 +-
 .../iotdb/db/qp/logical/sys/ShowOperator.java      |    3 +
 ...ator.java => ShowPathsSetTemplateOperator.java} |   19 +-
 ...or.java => ShowPathsUsingTemplateOperator.java} |   19 +-
 ...Operator.java => ShowQueryResourceOperate.java} |   11 +-
 .../logical/sys/ShowTemplatesOperator.java}        |   11 +-
 .../db/qp/logical/sys/UnsetTemplateOperator.java   |    7 +-
 .../apache/iotdb/db/qp/physical/PhysicalPlan.java  |    4 +
 .../db/qp/physical/crud/GroupByTimeFillPlan.java   |    8 +
 .../iotdb/db/qp/physical/crud/GroupByTimePlan.java |   27 +
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |    9 +
 .../db/qp/physical/crud/RawDataQueryPlan.java      |   15 +
 .../iotdb/db/qp/physical/sys/SetTemplatePlan.java  |   15 +-
 ...tatusPlan.java => ShowNodesInTemplatePlan.java} |   13 +-
 ...atusPlan.java => ShowPathsSetTemplatePlan.java} |   13 +-
 ...usPlan.java => ShowPathsUsingTemplatePlan.java} |   13 +-
 .../apache/iotdb/db/qp/physical/sys/ShowPlan.java  |   13 +-
 .../physical/sys/ShowQueryResourcePlan.java}       |   21 +-
 ...MergeStatusPlan.java => ShowTemplatesPlan.java} |    6 +-
 .../db/qp/physical/sys/StorageGroupMNodePlan.java  |   32 +-
 .../db/qp/physical/sys/UnsetTemplatePlan.java      |   15 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |  292 +-
 .../aggregation/impl/FirstValueAggrResult.java     |    1 +
 .../iotdb/db/query/control/FileReaderManager.java  |   27 +-
 .../iotdb/db/query/control/QueryFileManager.java   |   29 +
 .../db/query/control/QueryResourceManager.java     |   21 +
 .../iotdb/db/query/control/SessionManager.java     |    2 +-
 .../db/query/dataset/AlignByDeviceDataSet.java     |   23 +-
 .../dataset/groupby/GroupByEngineDataSet.java      |   10 +-
 .../groupby/GroupByWithValueFilterDataSet.java     |   42 +-
 .../groupby/GroupByWithoutValueFilterDataSet.java  |   88 +-
 .../db/query/executor/AggregationExecutor.java     |   80 +-
 .../iotdb/db/query/executor/FillQueryExecutor.java |   72 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   39 +-
 .../iotdb/db/query/executor/QueryRouter.java       |  118 +-
 .../db/query/executor/RawDataQueryExecutor.java    |   47 +-
 .../iotdb/db/query/reader/series/SeriesReader.java |   67 +-
 .../query/timegenerator/ServerTimeGenerator.java   |   11 +-
 .../iotdb/db/query/udf/api/access/RowWindow.java   |   40 +
 .../db/query/udf/builtin/BuiltinFunction.java      |    1 +
 .../iotdb/db/query/udf/builtin/UDTFOnOff.java      |   86 +
 ...izableRowRecordListBackedMultiColumnWindow.java |   18 +-
 ...SerializableTVListBackedSingleColumnWindow.java |   18 +-
 .../layer/MultiInputColumnIntermediateLayer.java   |   18 +-
 ...InputColumnMultiReferenceIntermediateLayer.java |   15 +-
 ...nputColumnSingleReferenceIntermediateLayer.java |   15 +-
 .../iotdb/db/rescon/TsFileResourceManager.java     |   23 +-
 .../encrypt/AsymmetricEncrypt.java}                |   49 +-
 .../security/encrypt/AsymmetricEncryptFactory.java |   78 +
 .../encrypt/EncryptDecryptException.java}          |   12 +-
 .../db/security/encrypt/MessageDigestEncrypt.java  |   59 +
 .../java/org/apache/iotdb/db/service/IoTDB.java    |    7 +-
 .../iotdb/db/service/thrift/ThriftService.java     |    6 +-
 .../db/service/thrift/impl/TSServiceImpl.java      |  152 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |    7 +-
 .../db/sync/sender/manage/SyncFileManager.java     |    4 +-
 .../apache/iotdb/db/tools/TsFileSketchTool.java    |   24 +-
 .../org/apache/iotdb/db/tools/TsFileSplitTool.java |  309 ++
 .../db/tools/virtualsg/DeviceMappingViewer.java    |    2 +-
 .../java/org/apache/iotdb/db/utils/AuthUtils.java  |   24 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |    5 -
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |   70 +-
 .../java/org/apache/iotdb/db/utils/MergeUtils.java |  234 --
 .../org/apache/iotdb/db/utils/ThreadUtils.java     |   51 +
 .../db/utils/datastructure/AlignedTVList.java      |   51 +-
 .../iotdb/db/utils/datastructure/BinaryTVList.java |   32 +-
 .../db/utils/datastructure/BooleanTVList.java      |   32 +-
 .../iotdb/db/utils/datastructure/DoubleTVList.java |   32 +-
 .../datastructure/FixedPriorityBlockingQueue.java  |  190 ++
 .../iotdb/db/utils/datastructure/FloatTVList.java  |   32 +-
 .../iotdb/db/utils/datastructure/IntTVList.java    |   33 +-
 .../iotdb/db/utils/datastructure/LongTVList.java   |   33 +-
 .../iotdb/db/utils/datastructure/TVList.java       |   30 +-
 .../iotdb/db/writelog/io/SingleFileLogReader.java  |   19 +
 .../writelog/manager/MultiFileLogNodeManager.java  |    1 +
 .../db/writelog/node/ExclusiveWriteLogNode.java    |   31 +-
 .../iotdb/db/writelog/node/WriteLogNode.java       |    6 +
 .../db/auth/user/LocalFileUserManagerTest.java     |    4 +-
 .../db/conf/adapter/CompressionRatioTest.java      |    1 -
 .../engine/compaction/AbstractCompactionTest.java  |  295 ++
 .../engine/compaction/CompactionSchedulerTest.java | 1456 +++-----
 .../compaction/CompactionTaskComparatorTest.java   |   56 +-
 .../compaction/CompactionTaskManagerTest.java      |   80 +-
 .../db/engine/compaction/CompactionUtilsTest.java  | 3516 ++++++++++++++++++++
 .../cross/CrossSpaceCompactionExceptionTest.java   |  531 +++
 .../compaction/cross/CrossSpaceCompactionTest.java |  420 ++-
 .../cross/MaxFileMergeFileSelectorTest.java        |  316 --
 .../cross/MaxSeriesMergeFileSelectorTest.java      |  108 -
 .../db/engine/compaction/cross/MergeLogTest.java   |   92 -
 .../engine/compaction/cross/MergeManagerTest.java  |  146 -
 .../engine/compaction/cross/MergeOverLapTest.java  |  205 --
 .../db/engine/compaction/cross/MergePerfTest.java  |  108 -
 .../db/engine/compaction/cross/MergeTaskTest.java  |  575 ----
 .../db/engine/compaction/cross/MergeTest.java      |   14 +-
 .../engine/compaction/cross/MergeUpgradeTest.java  |   10 +-
 .../cross/RewriteCompactionFileSelectorTest.java   |  641 ++++
 .../RewriteCrossSpaceCompactionRecoverTest.java    |  501 +++
 .../cross/RewriteCrossSpaceCompactionTest.java     |  805 +++++
 .../inner/AbstractInnerSpaceCompactionTest.java    |   37 +-
 .../compaction/inner/InnerCompactionLogTest.java   |    9 +-
 .../inner/InnerCompactionMoreDataTest.java         |    9 +-
 .../inner/InnerCompactionSchedulerTest.java        |   90 +-
 .../compaction/inner/InnerCompactionTest.java      |   11 +-
 .../compaction/inner/InnerSeqCompactionTest.java   |   29 +-
 .../inner/InnerSpaceCompactionExceptionTest.java   |   54 +-
 .../InnerSpaceCompactionUtilsAlignedTest.java      |   16 +-
 .../InnerSpaceCompactionUtilsNoAlignedTest.java    |   18 +-
 .../inner/InnerSpaceCompactionUtilsOldTest.java    |    6 +-
 .../compaction/inner/InnerUnseqCompactionTest.java |   47 +-
 .../SizeTieredCompactionHandleExceptionTest.java   |  213 --
 .../SizeTieredCompactionRecoverTest.java           |   78 +-
 .../inner/sizetiered/SizeTieredCompactionTest.java |   11 +-
 .../SizeTieredCompactionRecoverCompatibleTest.java |  157 +
 .../recover/SizeTieredCompactionRecoverTest.java   |  146 +-
 .../task/FakedCrossSpaceCompactionTask.java        |   23 +-
 .../task/FakedCrossSpaceCompactionTaskFactory.java |   19 +-
 .../task/FakedInnerSpaceCompactionTask.java        |    5 +-
 .../task/FakedInnerSpaceCompactionTaskFactory.java |    1 -
 .../compaction/utils/CompactionCheckerUtils.java   |   17 +-
 .../compaction/utils/CompactionClearUtils.java     |   72 +-
 .../compaction/utils/CompactionConfigRestorer.java |   67 +
 .../utils/CompactionFileGeneratorUtils.java        |   68 +-
 .../db/engine/memtable/MemtableBenchmark.java      |    2 +-
 .../engine/storagegroup/FakedTsFileResource.java   |    7 +-
 .../storagegroup/StorageGroupProcessorTest.java    |    6 +-
 .../engine/storagegroup/TsFileProcessorTest.java   |  103 +
 .../iotdb/db/metadata/MManagerBasicTest.java       |  125 +-
 .../org/apache/iotdb/db/metadata/TemplateTest.java |   88 +
 .../db/metadata/idtable/IDTableRecoverTest.java    |  211 ++
 .../iotdb/db/metadata/idtable/IDTableTest.java     |   11 -
 .../db/metadata/idtable/QueryWithIDTableTest.java  |    5 +
 .../db/metadata/idtable/entry/SchemaEntryTest.java |    6 -
 .../apache/iotdb/db/metadata/mnode/MNodeTest.java  |   23 +-
 .../iotdb/db/monitor/IoTDBStatMonitorTest.java     |  177 -
 .../iotdb/db/protocol/mqtt/PublishHandlerTest.java |    1 -
 .../db/protocol/rest/GrafanaApiServiceIT.java      |   68 +-
 .../iotdb/db/protocol/rest/IoTDBRestServiceIT.java |  623 +++-
 .../iotdb/db/qp/physical/InsertRowPlanTest.java    |   91 +-
 .../iotdb/db/qp/physical/PhysicalPlanTest.java     |   19 +-
 .../dataset/groupby/GroupByLevelDataSetTest.java   |   11 +-
 .../dataset/groupby/GroupByTimeDataSetTest.java    |    2 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |    2 -
 .../security/encrypt/MessageDigestEncryptTest.java |   94 +
 .../db/sync/receiver/load/FileLoaderTest.java      |    1 -
 .../recover/SyncReceiverLogAnalyzerTest.java       |    1 -
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |    1 -
 .../iotdb/db/tools/TsFileSketchToolTest.java       |   69 +-
 .../db/utils/datastructure/BinaryTVListTest.java   |    8 +-
 .../db/utils/datastructure/BooleanTVListTest.java  |   10 +-
 .../db/utils/datastructure/DoubleTVListTest.java   |   12 +-
 .../FixedPriorityBlockingQueueTest.java            |  321 ++
 .../db/utils/datastructure/FloatTVListTest.java    |   12 +-
 .../db/utils/datastructure/IntTVListTest.java      |   12 +-
 .../db/utils/datastructure/LongTVListTest.java     |   14 +-
 .../db/utils/datastructure/VectorTVListTest.java   |   14 +-
 .../iotdb/db/writelog/IoTDBLogFileSizeTest.java    |    1 -
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |  115 +
 server/src/test/resources/logback.xml              |    2 +-
 .../main/java/org/apache/iotdb/rpc/RpcUtils.java   |    5 +-
 .../java/org/apache/iotdb/session/Session.java     |  226 +-
 .../apache/iotdb/session/SessionConnection.java    |   20 +
 .../org/apache/iotdb/session/pool/SessionPool.java |  246 +-
 .../apache/iotdb/session/template/Template.java    |   10 +
 .../session/IoTDBSessionDisableMemControlIT.java   |    1 -
 .../session/IoTDBSessionVectorAggregationIT.java   |    3 +-
 .../iotdb/session/IoTDBSessionVectorInsertIT.java  |    2 -
 .../java/org/apache/iotdb/session/SessionTest.java |   44 +-
 .../apache/iotdb/session/pool/SessionPoolTest.java |    1 -
 .../apache/iotdb/session/template/TemplateUT.java  |    1 -
 site/pom.xml                                       |   64 +
 site/src/main/.vuepress/config.js                  |  506 ++-
 site/src/main/.vuepress/redirects                  |    2 +
 site/src/main/.vuepress/theme/components/Page.vue  |    2 +-
 site/src/main/package.json                         |    3 +-
 .../apache/iotdb/spark/db/EnvironmentUtils.java    |    9 -
 .../org/apache/iotdb/spark/db/IoTDBTest.scala      |    1 -
 .../org/apache/iotdb/spark/db/IoTDBWriteTest.scala |    1 -
 .../iotdb/spark/db/unit/DataFrameToolsTest.scala   |    1 -
 .../test/java/org/apache/iotdb/db/sql/Cases.java   |   12 +-
 thrift-cluster/src/main/thrift/cluster.thrift      |   12 +-
 thrift/rpc-changelist.md                           |   22 +-
 thrift/src/main/thrift/rpc.thrift                  |   11 +
 tsfile/format-changelist.md                        |    2 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |    2 +-
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |  208 +-
 .../tsfile/encoding/decoder/FloatDecoder.java      |   12 +-
 .../tsfile/encoding/decoder/PlainDecoder.java      |    2 +-
 .../org/apache/iotdb/tsfile/file/MetaMarker.java   |   18 +
 .../iotdb/tsfile/file/header/ChunkHeader.java      |    4 +-
 .../file/metadata/AlignedTimeSeriesMetadata.java   |    6 +-
 .../file/metadata/statistics/BinaryStatistics.java |   71 +-
 .../metadata/statistics/BooleanStatistics.java     |   67 +-
 .../file/metadata/statistics/DoubleStatistics.java |   64 +-
 .../file/metadata/statistics/FloatStatistics.java  |   64 +-
 .../metadata/statistics/IntegerStatistics.java     |   64 +-
 .../file/metadata/statistics/LongStatistics.java   |   64 +-
 .../file/metadata/statistics/Statistics.java       |   24 +-
 .../file/metadata/statistics/TimeStatistics.java   |   78 +-
 .../read/TsFileAlignedSeriesReaderIterator.java    |    3 +
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |  204 +-
 .../read/controller/CachedChunkLoaderImpl.java     |   67 +-
 .../org/apache/iotdb/tsfile/utils/BytesUtils.java  |    4 +-
 .../apache/iotdb/tsfile/utils/StringContainer.java |    4 +-
 .../iotdb/tsfile/utils/TsFileGeneratorUtils.java   |  285 ++
 .../v2/file/metadata/MetadataIndexNodeV2.java      |    2 +-
 .../apache/iotdb/tsfile/write/TsFileWriter.java    |    8 +-
 .../tsfile/write/chunk/AlignedChunkWriterImpl.java |   17 +
 .../iotdb/tsfile/write/chunk/ValueChunkWriter.java |   17 +
 .../apache/iotdb/tsfile/write/record/Tablet.java   |   32 +-
 .../tsfile/write/writer/LocalTsFileOutput.java     |   41 +-
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java  |    4 +-
 .../tsfile/common/conf/TSFileDescriptorTest.java   |   85 +
 .../apache/iotdb/tsfile/read/TsFileReaderTest.java |    6 +-
 .../iotdb/tsfile/utils/TsFileGeneratorForTest.java |   83 +-
 .../iotdb/tsfile/write/TsFileIOWriterTest.java     |   12 +-
 .../iotdb/tsfile/write/TsFileWriteApiTest.java     |   46 +-
 .../write/writer/AlignedChunkWriterImplTest.java   |   17 +-
 .../tsfile/write/writer/TimeChunkWriterTest.java   |    5 +-
 .../tsfile/write/writer/ValueChunkWriterTest.java  |    4 +-
 .../zeppelin/iotdb/IoTDBInterpreterTest.java       |    1 -
 696 files changed, 37794 insertions(+), 24980 deletions(-)


[iotdb] 03/03: change experiment code

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

jackietien pushed a commit to branch ty-graduate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f3d2b321428d3cf204579d3d90548cd561111113
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Wed Mar 2 10:28:52 2022 +0800

    change experiment code
---
 .../main/java/org/apache/iotdb/SessionExample.java | 702 +--------------------
 .../iotdb/db/engine/flush/MemTableFlushTask.java   |  14 +-
 2 files changed, 36 insertions(+), 680 deletions(-)

diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index 34c5279..5c66cbd 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -77,7 +77,7 @@ public class SessionExample {
       int sensorNum = Integer.parseInt(args[2]);
       long startTime = System.currentTimeMillis();
       if ("aligned".equals(args[0])) {
-        insertAlignedTablet(totalRowNum, sensorNum);
+        insertTablet(totalRowNum, sensorNum, true);
         System.out.println(
             "Insert aligned "
                 + totalRowNum
@@ -85,7 +85,7 @@ public class SessionExample {
                 + (System.currentTimeMillis() - startTime)
                 + "ms.");
       } else if ("nonAligned".equals(args[0])) {
-        insertTablet(totalRowNum, sensorNum);
+        insertTablet(totalRowNum, sensorNum, false);
         System.out.println(
             "Insert nonAligned "
                 + totalRowNum
@@ -99,307 +99,7 @@ public class SessionExample {
     session.close();
   }
 
-  private static void createAndDropContinuousQueries()
-      throws StatementExecutionException, IoTDBConnectionException {
-    session.executeNonQueryStatement(
-        "CREATE CONTINUOUS QUERY cq1 "
-            + "BEGIN SELECT max_value(s1) INTO temperature_max FROM root.sg1.* "
-            + "GROUP BY time(10s) END");
-    session.executeNonQueryStatement(
-        "CREATE CONTINUOUS QUERY cq2 "
-            + "BEGIN SELECT count(s2) INTO temperature_cnt FROM root.sg1.* "
-            + "GROUP BY time(10s), level=1 END");
-    session.executeNonQueryStatement(
-        "CREATE CONTINUOUS QUERY cq3 "
-            + "RESAMPLE EVERY 20s FOR 20s "
-            + "BEGIN SELECT avg(s3) INTO temperature_avg FROM root.sg1.* "
-            + "GROUP BY time(10s), level=1 END");
-    session.executeNonQueryStatement("DROP CONTINUOUS QUERY cq1");
-    session.executeNonQueryStatement("DROP CONTINUOUS QUERY cq2");
-    session.executeNonQueryStatement("DROP CONTINUOUS QUERY cq3");
-  }
-
-  private static void createTimeseries()
-      throws IoTDBConnectionException, StatementExecutionException {
-
-    if (!session.checkTimeseriesExists(ROOT_SG1_D1_S1)) {
-      session.createTimeseries(
-          ROOT_SG1_D1_S1, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    }
-    if (!session.checkTimeseriesExists(ROOT_SG1_D1_S2)) {
-      session.createTimeseries(
-          ROOT_SG1_D1_S2, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    }
-    if (!session.checkTimeseriesExists(ROOT_SG1_D1_S3)) {
-      session.createTimeseries(
-          ROOT_SG1_D1_S3, TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    }
-
-    // create timeseries with tags and attributes
-    if (!session.checkTimeseriesExists(ROOT_SG1_D1_S4)) {
-      Map<String, String> tags = new HashMap<>();
-      tags.put("tag1", "v1");
-      Map<String, String> attributes = new HashMap<>();
-      attributes.put("description", "v1");
-      session.createTimeseries(
-          ROOT_SG1_D1_S4,
-          TSDataType.INT64,
-          TSEncoding.RLE,
-          CompressionType.SNAPPY,
-          null,
-          tags,
-          attributes,
-          "temperature");
-    }
-
-    // create timeseries with SDT property, SDT will take place when flushing
-    if (!session.checkTimeseriesExists(ROOT_SG1_D1_S5)) {
-      // COMPDEV is required
-      // COMPMAXTIME and COMPMINTIME are optional and their unit is ms
-      Map<String, String> props = new HashMap<>();
-      props.put("LOSS", "sdt");
-      props.put("COMPDEV", "0.01");
-      props.put("COMPMINTIME", "2");
-      props.put("COMPMAXTIME", "10");
-      session.createTimeseries(
-          ROOT_SG1_D1_S5,
-          TSDataType.INT64,
-          TSEncoding.RLE,
-          CompressionType.SNAPPY,
-          props,
-          null,
-          null,
-          null);
-    }
-  }
-
-  private static void createMultiTimeseries()
-      throws IoTDBConnectionException, StatementExecutionException {
-
-    if (!session.checkTimeseriesExists("root.sg1.d2.s1")
-        && !session.checkTimeseriesExists("root.sg1.d2.s2")) {
-      List<String> paths = new ArrayList<>();
-      paths.add("root.sg1.d2.s1");
-      paths.add("root.sg1.d2.s2");
-      List<TSDataType> tsDataTypes = new ArrayList<>();
-      tsDataTypes.add(TSDataType.INT64);
-      tsDataTypes.add(TSDataType.INT64);
-      List<TSEncoding> tsEncodings = new ArrayList<>();
-      tsEncodings.add(TSEncoding.RLE);
-      tsEncodings.add(TSEncoding.RLE);
-      List<CompressionType> compressionTypes = new ArrayList<>();
-      compressionTypes.add(CompressionType.SNAPPY);
-      compressionTypes.add(CompressionType.SNAPPY);
-
-      List<Map<String, String>> tagsList = new ArrayList<>();
-      Map<String, String> tags = new HashMap<>();
-      tags.put("unit", "kg");
-      tagsList.add(tags);
-      tagsList.add(tags);
-
-      List<Map<String, String>> attributesList = new ArrayList<>();
-      Map<String, String> attributes = new HashMap<>();
-      attributes.put("minValue", "1");
-      attributes.put("maxValue", "100");
-      attributesList.add(attributes);
-      attributesList.add(attributes);
-
-      List<String> alias = new ArrayList<>();
-      alias.add("weight1");
-      alias.add("weight2");
-
-      session.createMultiTimeseries(
-          paths, tsDataTypes, tsEncodings, compressionTypes, null, tagsList, attributesList, alias);
-    }
-  }
-
-  private static void createTemplate()
-      throws IoTDBConnectionException, StatementExecutionException, IOException {
-
-    Template template = new Template("template1", false);
-    MeasurementNode mNodeS1 =
-        new MeasurementNode("s1", TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    MeasurementNode mNodeS2 =
-        new MeasurementNode("s2", TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-    MeasurementNode mNodeS3 =
-        new MeasurementNode("s3", TSDataType.INT64, TSEncoding.RLE, CompressionType.SNAPPY);
-
-    template.addToTemplate(mNodeS1);
-    template.addToTemplate(mNodeS2);
-    template.addToTemplate(mNodeS3);
-
-    session.createSchemaTemplate(template);
-    session.setSchemaTemplate("template1", "root.sg1");
-  }
-
-  private static void insertRecord() throws IoTDBConnectionException, StatementExecutionException {
-    String deviceId = ROOT_SG1_D1;
-    List<String> measurements = new ArrayList<>();
-    List<TSDataType> types = new ArrayList<>();
-    measurements.add("s1");
-    measurements.add("s2");
-    measurements.add("s3");
-    types.add(TSDataType.INT64);
-    types.add(TSDataType.INT64);
-    types.add(TSDataType.INT64);
-
-    for (long time = 0; time < 100; time++) {
-      List<Object> values = new ArrayList<>();
-      values.add(1L);
-      values.add(2L);
-      values.add(3L);
-      session.insertRecord(deviceId, time, measurements, types, values);
-    }
-  }
-
-  private static void insertRecord4Redirect()
-      throws IoTDBConnectionException, StatementExecutionException {
-    for (int i = 0; i < 6; i++) {
-      for (int j = 0; j < 2; j++) {
-        String deviceId = "root.redirect" + i + ".d" + j;
-        List<String> measurements = new ArrayList<>();
-        measurements.add("s1");
-        measurements.add("s2");
-        measurements.add("s3");
-        List<TSDataType> types = new ArrayList<>();
-        types.add(TSDataType.INT64);
-        types.add(TSDataType.INT64);
-        types.add(TSDataType.INT64);
-
-        for (long time = 0; time < 5; time++) {
-          List<Object> values = new ArrayList<>();
-          values.add(1L + time);
-          values.add(2L + time);
-          values.add(3L + time);
-          session.insertRecord(deviceId, time, measurements, types, values);
-        }
-      }
-    }
-  }
-
-  private static void insertStrRecord()
-      throws IoTDBConnectionException, StatementExecutionException {
-    String deviceId = ROOT_SG1_D1;
-    List<String> measurements = new ArrayList<>();
-    measurements.add("s1");
-    measurements.add("s2");
-    measurements.add("s3");
-
-    for (long time = 0; time < 10; time++) {
-      List<String> values = new ArrayList<>();
-      values.add("1");
-      values.add("2");
-      values.add("3");
-      session.insertRecord(deviceId, time, measurements, values);
-    }
-  }
-
-  private static void insertRecordInObject()
-      throws IoTDBConnectionException, StatementExecutionException {
-    String deviceId = ROOT_SG1_D1;
-    List<String> measurements = new ArrayList<>();
-    List<TSDataType> types = new ArrayList<>();
-    measurements.add("s1");
-    measurements.add("s2");
-    measurements.add("s3");
-    types.add(TSDataType.INT64);
-    types.add(TSDataType.INT64);
-    types.add(TSDataType.INT64);
-
-    for (long time = 0; time < 100; time++) {
-      session.insertRecord(deviceId, time, measurements, types, 1L, 1L, 1L);
-    }
-  }
-
-  private static void insertRecords() throws IoTDBConnectionException, StatementExecutionException {
-    String deviceId = ROOT_SG1_D1;
-    List<String> measurements = new ArrayList<>();
-    measurements.add("s1");
-    measurements.add("s2");
-    measurements.add("s3");
-    List<String> deviceIds = new ArrayList<>();
-    List<List<String>> measurementsList = new ArrayList<>();
-    List<List<Object>> valuesList = new ArrayList<>();
-    List<Long> timestamps = new ArrayList<>();
-    List<List<TSDataType>> typesList = new ArrayList<>();
-
-    for (long time = 0; time < 500; time++) {
-      List<Object> values = new ArrayList<>();
-      List<TSDataType> types = new ArrayList<>();
-      values.add(1L);
-      values.add(2L);
-      values.add(3L);
-      types.add(TSDataType.INT64);
-      types.add(TSDataType.INT64);
-      types.add(TSDataType.INT64);
-
-      deviceIds.add(deviceId);
-      measurementsList.add(measurements);
-      valuesList.add(values);
-      typesList.add(types);
-      timestamps.add(time);
-      if (time != 0 && time % 100 == 0) {
-        session.insertRecords(deviceIds, timestamps, measurementsList, typesList, valuesList);
-        deviceIds.clear();
-        measurementsList.clear();
-        valuesList.clear();
-        typesList.clear();
-        timestamps.clear();
-      }
-    }
-
-    session.insertRecords(deviceIds, timestamps, measurementsList, typesList, valuesList);
-  }
-
-  /**
-   * insert the data of a device. For each timestamp, the number of measurements is the same.
-   *
-   * <p>Users need to control the count of Tablet and write a batch when it reaches the maxBatchSize
-   */
-  private static void insertTablet(long totalRowNum, int sensorNum)
-      throws IoTDBConnectionException, StatementExecutionException {
-    /*
-     * A Tablet example:
-     *      device1
-     * time s1, s2, s3
-     * 1,   1,  1,  1
-     * 2,   2,  2,  2
-     * 3,   3,  3,  3
-     */
-    // The schema of measurements of one device
-    // only measurementId and data type in MeasurementSchema take effects in Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
-    for (int i = 0; i < sensorNum; i++) {
-      schemaList.add(new MeasurementSchema("s" + i, TSDataType.FLOAT));
-    }
-
-    Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 10000);
-
-    // Method 1 to add tablet data
-    long timestamp = 1646134492000L;
-    Random random = new Random(123456);
-    for (long row = 0; row < totalRowNum; row++) {
-      int rowIndex = tablet.rowSize++;
-      tablet.addTimestamp(rowIndex, timestamp);
-      for (int s = 0; s < sensorNum; s++) {
-        float value = -100.0f + 200.0f * random.nextFloat();
-        tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
-      }
-      if (tablet.rowSize == tablet.getMaxRowNumber()) {
-        session.insertTablet(tablet, true);
-        tablet.reset();
-        System.out.println("already insert: " + row + " rows.");
-      }
-      timestamp++;
-    }
-
-    if (tablet.rowSize != 0) {
-      session.insertTablet(tablet);
-      tablet.reset();
-    }
-  }
-
-  private static void insertAlignedTablet(long totalRowNum, int sensorNum)
+  private static void insertTablet(long totalRowNum, int sensorNum, boolean isAligned)
       throws IoTDBConnectionException, StatementExecutionException {
     /*
      * A Tablet example:
@@ -416,228 +116,41 @@ public class SessionExample {
       schemaList.add(new MeasurementSchema("s" + i, TSDataType.FLOAT));
     }
 
-    Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 10000);
+    Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 1000);
 
     long timestamp = 1646134492000L;
     Random random = new Random(123456);
-    for (long row = 0; row < totalRowNum; row++) {
-      int rowIndex = tablet.rowSize++;
-      tablet.addTimestamp(rowIndex, timestamp);
-      for (int s = 0; s < sensorNum; s++) {
-        float value = -100.0f + 200.0f * random.nextFloat();
-        tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
-      }
-      if (tablet.rowSize == tablet.getMaxRowNumber()) {
-        session.insertAlignedTablet(tablet, true);
-        tablet.reset();
-        System.out.println("already insert: " + row + " rows.");
-      }
-      timestamp++;
-    }
-
-    if (tablet.rowSize != 0) {
-      session.insertAlignedTablet(tablet);
-      tablet.reset();
-    }
-  }
-
-  private static void insertTabletWithNullValues()
-      throws IoTDBConnectionException, StatementExecutionException {
-    /*
-     * A Tablet example:
-     *      device1
-     * time s1,   s2,   s3
-     * 1,   null, 1,    1
-     * 2,   2,    null, 2
-     * 3,   3,    3,    null
-     */
-    // The schema of measurements of one device
-    // only measurementId and data type in MeasurementSchema take effects in Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
-    schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
-    schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
-    schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
-
-    Tablet tablet = new Tablet(ROOT_SG1_D1, schemaList, 100);
-
-    // Method 1 to add tablet data
-    tablet.bitMaps = new BitMap[schemaList.size()];
-    for (int s = 0; s < 3; s++) {
-      tablet.bitMaps[s] = new BitMap(tablet.getMaxRowNumber());
-    }
-
-    long timestamp = System.currentTimeMillis();
-    for (long row = 0; row < 100; row++) {
-      int rowIndex = tablet.rowSize++;
-      tablet.addTimestamp(rowIndex, timestamp);
-      for (int s = 0; s < 3; s++) {
-        long value = new Random().nextLong();
-        // mark null value
-        if (row % 3 == s) {
-          tablet.bitMaps[s].mark((int) row);
+    for (long row = 0; row < totalRowNum; row += 10_000) {
+      for (int i = 9_999; i >= 0; i--) {
+        int rowIndex = tablet.rowSize++;
+        tablet.addTimestamp(rowIndex, timestamp + i);
+        for (int s = 0; s < sensorNum; s++) {
+          float value = -100.0f + 200.0f * random.nextFloat();
+          tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
         }
-        tablet.addValue(schemaList.get(s).getMeasurementId(), rowIndex, value);
-      }
-      if (tablet.rowSize == tablet.getMaxRowNumber()) {
-        session.insertTablet(tablet, true);
-        tablet.reset();
-      }
-      timestamp++;
-    }
-
-    if (tablet.rowSize != 0) {
-      session.insertTablet(tablet);
-      tablet.reset();
-    }
-
-    // Method 2 to add tablet data
-    long[] timestamps = tablet.timestamps;
-    Object[] values = tablet.values;
-    BitMap[] bitMaps = new BitMap[schemaList.size()];
-    for (int s = 0; s < 3; s++) {
-      bitMaps[s] = new BitMap(tablet.getMaxRowNumber());
-    }
-    tablet.bitMaps = bitMaps;
-
-    for (long time = 0; time < 100; time++) {
-      int row = tablet.rowSize++;
-      timestamps[row] = time;
-      for (int i = 0; i < 3; i++) {
-        long[] sensor = (long[]) values[i];
-        // mark null value
-        if (row % 3 == i) {
-          bitMaps[i].mark(row);
+        if (tablet.rowSize == tablet.getMaxRowNumber()) {
+          if (isAligned) {
+            session.insertAlignedTablet(tablet, false);
+          } else {
+            session.insertTablet(tablet, false);
+          }
+          tablet.reset();
         }
-        sensor[row] = i;
-      }
-      if (tablet.rowSize == tablet.getMaxRowNumber()) {
-        session.insertTablet(tablet, true);
-        tablet.reset();
       }
+      System.out.println("already insert: " + row + " rows.");
+      timestamp += 10_000;
     }
 
     if (tablet.rowSize != 0) {
-      session.insertTablet(tablet);
-      tablet.reset();
-    }
-  }
-
-  private static void insertTablets() throws IoTDBConnectionException, StatementExecutionException {
-    // The schema of measurements of one device
-    // only measurementId and data type in MeasurementSchema take effects in Tablet
-    List<MeasurementSchema> schemaList = new ArrayList<>();
-    schemaList.add(new MeasurementSchema("s1", TSDataType.INT64));
-    schemaList.add(new MeasurementSchema("s2", TSDataType.INT64));
-    schemaList.add(new MeasurementSchema("s3", TSDataType.INT64));
-
-    Tablet tablet1 = new Tablet(ROOT_SG1_D1, schemaList, 100);
-    Tablet tablet2 = new Tablet("root.sg1.d2", schemaList, 100);
-    Tablet tablet3 = new Tablet("root.sg1.d3", schemaList, 100);
-
-    Map<String, Tablet> tabletMap = new HashMap<>();
-    tabletMap.put(ROOT_SG1_D1, tablet1);
-    tabletMap.put("root.sg1.d2", tablet2);
-    tabletMap.put("root.sg1.d3", tablet3);
-
-    // Method 1 to add tablet data
-    long timestamp = System.currentTimeMillis();
-    for (long row = 0; row < 100; row++) {
-      int row1 = tablet1.rowSize++;
-      int row2 = tablet2.rowSize++;
-      int row3 = tablet3.rowSize++;
-      tablet1.addTimestamp(row1, timestamp);
-      tablet2.addTimestamp(row2, timestamp);
-      tablet3.addTimestamp(row3, timestamp);
-      for (int i = 0; i < 3; i++) {
-        long value = new Random().nextLong();
-        tablet1.addValue(schemaList.get(i).getMeasurementId(), row1, value);
-        tablet2.addValue(schemaList.get(i).getMeasurementId(), row2, value);
-        tablet3.addValue(schemaList.get(i).getMeasurementId(), row3, value);
-      }
-      if (tablet1.rowSize == tablet1.getMaxRowNumber()) {
-        session.insertTablets(tabletMap, true);
-        tablet1.reset();
-        tablet2.reset();
-        tablet3.reset();
-      }
-      timestamp++;
-    }
-
-    if (tablet1.rowSize != 0) {
-      session.insertTablets(tabletMap, true);
-      tablet1.reset();
-      tablet2.reset();
-      tablet3.reset();
-    }
-
-    // Method 2 to add tablet data
-    long[] timestamps1 = tablet1.timestamps;
-    Object[] values1 = tablet1.values;
-    long[] timestamps2 = tablet2.timestamps;
-    Object[] values2 = tablet2.values;
-    long[] timestamps3 = tablet3.timestamps;
-    Object[] values3 = tablet3.values;
-
-    for (long time = 0; time < 100; time++) {
-      int row1 = tablet1.rowSize++;
-      int row2 = tablet2.rowSize++;
-      int row3 = tablet3.rowSize++;
-      timestamps1[row1] = time;
-      timestamps2[row2] = time;
-      timestamps3[row3] = time;
-      for (int i = 0; i < 3; i++) {
-        long[] sensor1 = (long[]) values1[i];
-        sensor1[row1] = i;
-        long[] sensor2 = (long[]) values2[i];
-        sensor2[row2] = i;
-        long[] sensor3 = (long[]) values3[i];
-        sensor3[row3] = i;
-      }
-      if (tablet1.rowSize == tablet1.getMaxRowNumber()) {
-        session.insertTablets(tabletMap, true);
-
-        tablet1.reset();
-        tablet2.reset();
-        tablet3.reset();
-      }
-    }
-
-    if (tablet1.rowSize != 0) {
-      session.insertTablets(tabletMap, true);
-      tablet1.reset();
-      tablet2.reset();
-      tablet3.reset();
-    }
-  }
-
-  private static void selectInto() throws IoTDBConnectionException, StatementExecutionException {
-    session.executeNonQueryStatement(
-        "select s1, s2, s3 into into_s1, into_s2, into_s3 from root.sg1.d1");
-
-    try (SessionDataSet dataSet =
-        session.executeQueryStatement("select into_s1, into_s2, into_s3 from root.sg1.d1")) {
-      System.out.println(dataSet.getColumnNames());
-      while (dataSet.hasNext()) {
-        System.out.println(dataSet.next());
+      if (isAligned) {
+        session.insertAlignedTablet(tablet, false);
+      } else {
+        session.insertTablet(tablet, false);
       }
+      tablet.reset();
     }
   }
 
-  private static void deleteData() throws IoTDBConnectionException, StatementExecutionException {
-    String path = ROOT_SG1_D1_S1;
-    long deleteTime = 99;
-    session.deleteData(path, deleteTime);
-  }
-
-  private static void deleteTimeseries()
-      throws IoTDBConnectionException, StatementExecutionException {
-    List<String> paths = new ArrayList<>();
-    paths.add(ROOT_SG1_D1_S1);
-    paths.add(ROOT_SG1_D1_S2);
-    paths.add(ROOT_SG1_D1_S3);
-    session.deleteTimeseries(paths);
-  }
-
   private static void query(String sql)
       throws IoTDBConnectionException, StatementExecutionException {
     long startTime = System.currentTimeMillis();
@@ -649,169 +162,4 @@ public class SessionExample {
     }
     System.out.println("cost: " + (System.currentTimeMillis() - startTime) + "ms");
   }
-
-  private static void query4Redirect()
-      throws IoTDBConnectionException, StatementExecutionException {
-    String selectPrefix = "select * from root.redirect";
-    for (int i = 0; i < 6; i++) {
-      try (SessionDataSet dataSet =
-          sessionEnableRedirect.executeQueryStatement(selectPrefix + i + ".d1")) {
-
-        System.out.println(dataSet.getColumnNames());
-        dataSet.setFetchSize(1024); // default is 10000
-        while (dataSet.hasNext()) {
-          System.out.println(dataSet.next());
-        }
-      }
-    }
-
-    for (int i = 0; i < 6; i++) {
-      try (SessionDataSet dataSet =
-          sessionEnableRedirect.executeQueryStatement(
-              selectPrefix + i + ".d1 where time >= 1 and time < 10")) {
-
-        System.out.println(dataSet.getColumnNames());
-        dataSet.setFetchSize(1024); // default is 10000
-        while (dataSet.hasNext()) {
-          System.out.println(dataSet.next());
-        }
-      }
-    }
-
-    for (int i = 0; i < 6; i++) {
-      try (SessionDataSet dataSet =
-          sessionEnableRedirect.executeQueryStatement(
-              selectPrefix + i + ".d1 where time >= 1 and time < 10 align by device")) {
-
-        System.out.println(dataSet.getColumnNames());
-        dataSet.setFetchSize(1024); // default is 10000
-        while (dataSet.hasNext()) {
-          System.out.println(dataSet.next());
-        }
-      }
-    }
-
-    for (int i = 0; i < 6; i++) {
-      try (SessionDataSet dataSet =
-          sessionEnableRedirect.executeQueryStatement(
-              selectPrefix
-                  + i
-                  + ".d1 where time >= 1 and time < 10 and root.redirect"
-                  + i
-                  + ".d1.s1 > 1")) {
-        System.out.println(dataSet.getColumnNames());
-        dataSet.setFetchSize(1024); // default is 10000
-        while (dataSet.hasNext()) {
-          System.out.println(dataSet.next());
-        }
-      }
-    }
-  }
-
-  private static void queryWithTimeout()
-      throws IoTDBConnectionException, StatementExecutionException {
-    try (SessionDataSet dataSet =
-        session.executeQueryStatement("select * from root.sg1.d1", 2000)) {
-      System.out.println(dataSet.getColumnNames());
-      dataSet.setFetchSize(1024); // default is 10000
-      while (dataSet.hasNext()) {
-        System.out.println(dataSet.next());
-      }
-    }
-  }
-
-  private static void rawDataQuery() throws IoTDBConnectionException, StatementExecutionException {
-    List<String> paths = new ArrayList<>();
-    paths.add(ROOT_SG1_D1_S1);
-    paths.add(ROOT_SG1_D1_S2);
-    paths.add(ROOT_SG1_D1_S3);
-    long startTime = 10L;
-    long endTime = 200L;
-
-    try (SessionDataSet dataSet = session.executeRawDataQuery(paths, startTime, endTime)) {
-
-      System.out.println(dataSet.getColumnNames());
-      dataSet.setFetchSize(1024);
-      while (dataSet.hasNext()) {
-        System.out.println(dataSet.next());
-      }
-    }
-  }
-
-  private static void lastDataQuery() throws IoTDBConnectionException, StatementExecutionException {
-    List<String> paths = new ArrayList<>();
-    paths.add(ROOT_SG1_D1_S1);
-    paths.add(ROOT_SG1_D1_S2);
-    paths.add(ROOT_SG1_D1_S3);
-    try (SessionDataSet sessionDataSet = session.executeLastDataQuery(paths, 3)) {
-      System.out.println(sessionDataSet.getColumnNames());
-      sessionDataSet.setFetchSize(1024);
-      while (sessionDataSet.hasNext()) {
-        System.out.println(sessionDataSet.next());
-      }
-    }
-  }
-
-  private static void queryByIterator()
-      throws IoTDBConnectionException, StatementExecutionException {
-    try (SessionDataSet dataSet = session.executeQueryStatement("select * from root.sg1.d1")) {
-
-      DataIterator iterator = dataSet.iterator();
-      System.out.println(dataSet.getColumnNames());
-      dataSet.setFetchSize(1024); // default is 10000
-      while (iterator.next()) {
-        StringBuilder builder = new StringBuilder();
-        // get time
-        builder.append(iterator.getLong(1)).append(",");
-        // get second column
-        if (!iterator.isNull(2)) {
-          builder.append(iterator.getLong(2)).append(",");
-        } else {
-          builder.append("null").append(",");
-        }
-
-        // get third column
-        if (!iterator.isNull(ROOT_SG1_D1_S2)) {
-          builder.append(iterator.getLong(ROOT_SG1_D1_S2)).append(",");
-        } else {
-          builder.append("null").append(",");
-        }
-
-        // get forth column
-        if (!iterator.isNull(4)) {
-          builder.append(iterator.getLong(4)).append(",");
-        } else {
-          builder.append("null").append(",");
-        }
-
-        // get fifth column
-        if (!iterator.isNull(ROOT_SG1_D1_S4)) {
-          builder.append(iterator.getObject(ROOT_SG1_D1_S4));
-        } else {
-          builder.append("null");
-        }
-
-        System.out.println(builder);
-      }
-    }
-  }
-
-  private static void nonQuery() throws IoTDBConnectionException, StatementExecutionException {
-    session.executeNonQueryStatement("insert into root.sg1.d1(timestamp,s1) values(200, 1)");
-  }
-
-  private static void setTimeout() throws StatementExecutionException {
-    Session tempSession = new Session(LOCAL_HOST, 6667, "root", "root", 10000, 20000);
-    tempSession.setQueryTimeout(60000);
-  }
-
-  private static void createClusterSession() throws IoTDBConnectionException {
-    ArrayList<String> nodeList = new ArrayList<>();
-    nodeList.add("127.0.0.1:6669");
-    nodeList.add("127.0.0.1:6667");
-    nodeList.add("127.0.0.1:6668");
-    Session clusterSession = new Session(nodeList, "root", "root");
-    clusterSession.open();
-    clusterSession.close();
-  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
index 5c022b4..b1d0223 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
@@ -43,6 +43,7 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 
 /**
  * flush task to flush one memtable using a pipeline model to flush, which is sort memtable ->
@@ -71,7 +72,12 @@ public class MemTableFlushTask {
   private volatile long memSerializeTime = 0L;
   private volatile long ioTime = 0L;
 
-  private long totalCostTime = 0L;
+  private static final AtomicLong totalCostTime = new AtomicLong(0);
+
+  private static final AtomicLong totalEncodingTime = new AtomicLong(0);
+
+  private static final AtomicLong totalIOTime = new AtomicLong(0);
+
 
   /**
    * @param memTable the memTable to flush
@@ -175,8 +181,10 @@ public class MemTableFlushTask {
         memTable,
         costTime);
 
-    totalCostTime += costTime;
-    LOGGER.info("Cumulative flush cost time: {}", totalCostTime);
+    totalCostTime.addAndGet(costTime);
+    totalEncodingTime.addAndGet(memSerializeTime);
+    totalIOTime.addAndGet(ioTime);
+    LOGGER.info("Cumulative sort cost time: {}, encoding cost time: {}, io cost time: {}, flush cost time: {}", totalCostTime.get() - totalEncodingTime.get() - totalIOTime.get(), totalEncodingTime.get(), totalIOTime.get(), totalCostTime.get());
   }
 
   /** encoding task (second task of pipeline) */