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