This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch nested-operations in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 3934559a4ce167311de7ac15c73d1447b4188223 Merge: 2aad08e e5d86c9 Author: Steve Yurong Su <[email protected]> AuthorDate: Thu Sep 16 14:16:06 2021 +0800 Merge branch 'master' of github.com:apache/iotdb into nested-operations README.md | 86 +++-- README_ZH.md | 86 +++-- RELEASE_NOTES.md | 2 +- .../java/org/apache/iotdb/cli/AbstractCli.java | 3 + cli/src/main/java/org/apache/iotdb/cli/Cli.java | 3 +- cli/src/main/java/org/apache/iotdb/cli/WinCli.java | 13 +- .../org/apache/iotdb/cli/StartClientScriptIT.java | 27 ++ client-cpp/pom.xml | 18 + client-cpp/src/main/Session.cpp | 12 +- client-cpp/src/main/Session.h | 4 +- .../resources/conf/iotdb-cluster.properties | 13 +- .../client/sync/SyncDataHeartbeatClient.java | 2 +- .../client/sync/SyncMetaHeartbeatClient.java | 3 +- .../apache/iotdb/cluster/config/ClusterConfig.java | 20 ++ .../iotdb/cluster/config/ClusterConstant.java | 30 +- .../iotdb/cluster/config/ClusterDescriptor.java | 10 + .../iotdb/cluster/log/applier/BaseApplier.java | 94 ++++-- .../iotdb/cluster/log/applier/DataLogApplier.java | 66 +++- .../iotdb/cluster/log/manage/RaftLogManager.java | 115 ++++--- .../serializable/SyncLogDequeSerializer.java | 9 +- .../apache/iotdb/cluster/metadata/CMManager.java | 79 ++--- .../partition/slot/SlotTimePartitionFilter.java | 55 +++ .../cluster/query/ClusterDataQueryExecutor.java | 2 +- .../iotdb/cluster/query/ClusterPlanExecutor.java | 23 +- .../iotdb/cluster/query/ClusterPlanRouter.java | 36 ++ .../iotdb/cluster/query/ClusterQueryRouter.java | 14 +- .../iotdb/cluster/query/LocalQueryExecutor.java | 6 +- .../query/dataset/ClusterAlignByDeviceDataSet.java | 61 ---- .../cluster/query/fill/ClusterFillExecutor.java | 53 ++- .../cluster/query/reader/ClusterReaderFactory.java | 12 +- .../query/reader/mult/RemoteMultSeriesReader.java | 3 +- .../apache/iotdb/cluster/server/ClientServer.java | 9 +- .../apache/iotdb/cluster/server/RaftServer.java | 32 +- .../cluster/server/heartbeat/HeartbeatThread.java | 46 ++- .../cluster/server/member/DataGroupMember.java | 113 +++++-- .../cluster/server/member/MetaGroupMember.java | 2 +- .../iotdb/cluster/server/member/RaftMember.java | 2 +- .../apache/iotdb/cluster/utils/PartitionUtils.java | 4 +- .../cluster/log/applier/DataLogApplierTest.java | 45 ++- .../query/{ => fill}/ClusterFillExecutorTest.java | 69 +++- .../server/heartbeat/HeartbeatThreadTest.java | 5 +- .../iotdb/cluster/server/member/BaseMember.java | 10 +- .../cluster/server/member/MetaGroupMemberTest.java | 6 +- compile-tools/pom.xml | 24 ++ distribution/pom.xml | 2 +- docker/src/main/Dockerfile-0.12.2-cluster | 53 +++ docker/src/main/Dockerfile-0.12.2-node | 45 +++ docs/Download/README.md | 42 +-- docs/UserGuide/API/Time-zone.md | 6 + docs/UserGuide/Appendix/Config-Manual.md | 81 +++++ docs/UserGuide/Cluster/Cluster-Setup-Example.md | 2 +- docs/UserGuide/Cluster/Cluster-Setup.md | 21 +- .../UserGuide/Data-Concept/Auto-Create-MetaData.md | 107 ++++++ docs/UserGuide/Data-Concept/Data-Type.md | 14 +- docs/UserGuide/Data-Concept/Encoding.md | 2 +- docs/UserGuide/Data-Concept/Time-Partition.md | 64 ++++ .../DML-Data-Manipulation-Language.md | 74 ++++ docs/zh/Download/README.md | 40 +-- docs/zh/UserGuide/API/Time-zone.md | 8 +- docs/zh/UserGuide/Appendix/Config-Manual.md | 81 +++++ docs/zh/UserGuide/Cluster/Cluster-Setup-Example.md | 2 +- docs/zh/UserGuide/Cluster/Cluster-Setup.md | 22 +- .../UserGuide/Data-Concept/Auto-Create-MetaData.md | 107 ++++++ docs/zh/UserGuide/Data-Concept/Data-Type.md | 14 +- docs/zh/UserGuide/Data-Concept/Encoding.md | 4 +- docs/zh/UserGuide/Data-Concept/Time-Partition.md | 64 ++++ .../DML-Data-Manipulation-Language.md | 77 +++++ example/client-cpp-example/pom.xml | 15 + example/client-cpp-example/src/SessionExample.cpp | 15 +- .../iotdb/AlignedTimeseriesSessionExample.java | 6 +- .../iotdb/HybridTimeseriesSessionExample.java | 5 +- .../iotdb/tsfile/TsFileWriteVectorWithTablet.java | 2 +- .../resources/conf/iotdb-engine.properties | 24 +- server/src/assembly/resources/conf/iotdb-env.sh | 4 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 14 +- .../org/apache/iotdb/db/conf/OperationType.java | 65 ++++ .../org/apache/iotdb/db/engine/StorageEngine.java | 17 +- .../db/engine/cache/TimeSeriesMetadataCache.java | 121 +++---- .../iotdb/db/engine/memtable/AbstractMemTable.java | 21 +- .../db/engine/memtable/PrimitiveMemTable.java | 3 +- .../db/engine/querycontext/ReadOnlyMemChunk.java | 19 +- .../engine/storagegroup/StorageGroupProcessor.java | 171 +++++----- .../db/engine/storagegroup/TsFileProcessor.java | 21 +- .../virtualSg/VirtualStorageGroupManager.java | 9 +- .../org/apache/iotdb/db/metadata/MManager.java | 373 ++++++++++++++------- .../java/org/apache/iotdb/db/metadata/MTree.java | 110 +++--- .../org/apache/iotdb/db/metadata/PartialPath.java | 21 +- .../iotdb/db/metadata/VectorPartialPath.java | 68 +++- .../db/metadata/lastCache/LastCacheManager.java | 331 ++++++++++++++++++ .../container/ILastCacheContainer.java} | 56 ++-- .../lastCache/container/LastCacheContainer.java | 118 +++++++ .../container/value/ILastCacheValue.java} | 39 +-- .../container/value/UnaryLastCacheValue.java | 106 ++++++ .../container/value/VectorLastCacheValue.java | 86 +++++ .../iotdb/db/metadata/mnode/EntityMNode.java | 25 ++ .../iotdb/db/metadata/mnode/IEntityMNode.java | 6 + .../iotdb/db/metadata/mnode/IMeasurementMNode.java | 9 +- .../iotdb/db/metadata/mnode/MeasurementMNode.java | 51 +-- .../apache/iotdb/db/metadata/tag/TagManager.java | 5 +- .../iotdb/db/metadata/template/Template.java | 2 +- .../apache/iotdb/db/qp/executor/IPlanExecutor.java | 9 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 27 +- .../iotdb/db/qp/logical/crud/LikeOperator.java | 4 + .../iotdb/db/qp/logical/crud/QueryOperator.java | 16 +- .../iotdb/db/qp/logical/crud/RegexpOperator.java | 4 + .../org/apache/iotdb/db/qp/physical/BatchPlan.java | 9 + .../apache/iotdb/db/qp/physical/PhysicalPlan.java | 11 +- .../iotdb/db/qp/physical/crud/DeletePlan.java | 15 + .../db/qp/physical/crud/InsertMultiTabletPlan.java | 19 +- .../iotdb/db/qp/physical/crud/InsertRowPlan.java | 11 +- .../physical/crud/InsertRowsOfOneDevicePlan.java | 89 ++++- .../iotdb/db/qp/physical/crud/InsertRowsPlan.java | 15 +- .../iotdb/db/qp/physical/crud/LastQueryPlan.java | 2 - .../iotdb/db/qp/physical/crud/QueryPlan.java | 2 +- .../db/qp/physical/crud/RawDataQueryPlan.java | 30 +- .../qp/physical/sys/CreateMultiTimeSeriesPlan.java | 12 +- .../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 15 + .../db/qp/physical/sys/SetSystemModePlan.java | 33 ++ .../qp/strategy/optimizer/ConcatPathOptimizer.java | 14 + .../db/query/dataset/AlignByDeviceDataSet.java | 54 +-- .../dataset/RawQueryDataSetWithoutValueFilter.java | 6 +- .../iotdb/db/query/executor/FillQueryExecutor.java | 94 +++++- .../iotdb/db/query/executor/LastQueryExecutor.java | 34 +- .../iotdb/db/query/executor/QueryRouter.java | 28 +- .../query/expression/unary/TimeSeriesOperand.java | 2 +- .../query/timegenerator/ServerTimeGenerator.java | 7 - .../org/apache/iotdb/db/service/TSServiceImpl.java | 146 ++++++-- .../apache/iotdb/db/tools/TsFileRewriteTool.java | 11 +- .../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 2 +- .../org/apache/iotdb/db/utils/FileLoaderUtils.java | 34 +- .../java/org/apache/iotdb/db/utils/MemUtils.java | 2 +- .../iotdb/db/writelog/recover/LogReplayer.java | 4 +- .../engine/modification/DeletionFileNodeTest.java | 109 ++++-- .../db/engine/modification/DeletionQueryTest.java | 77 +++-- .../storagegroup/StorageGroupProcessorTest.java | 2 +- .../iotdb/db/engine/storagegroup/TTLTest.java | 4 +- .../apache/iotdb/db/integration/IoTDBFillIT.java | 34 +- .../{IoTDBLikeIT.java => IoTDBFuzzyQueryIT.java} | 125 ++++++- .../apache/iotdb/db/integration/IoTDBLastIT.java | 28 +- .../aggregation/IoTDBAggregationSmallDataIT.java | 17 +- .../iotdb/db/metadata/MManagerAdvancedTest.java | 16 +- .../qp/physical/InsertRowsOfOneDevicePlanTest.java | 75 +++++ .../iotdb/db/utils/TsFileRewriteToolTest.java | 109 ++++++ .../java/org/apache/iotdb/session/Session.java | 21 +- .../org/apache/iotdb/session/SessionUtils.java | 4 +- .../apache/iotdb/session/IoTDBSessionSimpleIT.java | 286 +++++++++++++++- .../apache/iotdb/session/IoTDBSessionVectorIT.java | 5 +- site/pom.xml | 10 + site/src/main/.vuepress/config.js | 38 ++- .../.vuepress/public/img/contributor-avatar/cw.jpg | Bin 163226 -> 163225 bytes .../.vuepress/theme/global-components/IoTDB.vue | 2 +- .../.vuepress/theme/global-components/IoTDBZH.vue | 2 +- .../test/java/org/apache/iotdb/db/sql/Cases.java | 303 +++++++++++++++++ .../java/org/apache/iotdb/db/sql/ClusterIT.java | 9 +- .../iotdb/tsfile/read/TsFileSequenceReader.java | 4 + .../tsfile/v2/read/TsFileSequenceReaderForV2.java | 4 - .../tsfile/write/chunk/ChunkGroupWriterImpl.java | 2 +- .../tsfile/write/chunk/VectorChunkWriterImpl.java | 8 +- .../apache/iotdb/tsfile/write/record/Tablet.java | 16 +- .../tsfile/write/schema/IMeasurementSchema.java | 14 +- .../tsfile/write/schema/MeasurementSchema.java | 14 +- .../write/schema/VectorMeasurementSchema.java | 96 +++--- .../write/writer/VectorMeasurementSchemaStub.java | 14 +- 163 files changed, 4956 insertions(+), 1450 deletions(-) diff --cc server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java index b01f608,52bac21..4844cff --- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java +++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/TimeSeriesOperand.java @@@ -76,46 -66,7 +76,46 @@@ public class TimeSeriesOperand extends } @Override + public void constructUdfExecutors( + Map<String, UDTFExecutor> expressionName2Executor, ZoneId zoneId) { + // nothing to do + } + + @Override + public void updateStatisticsForMemoryAssigner(LayerMemoryAssigner memoryAssigner) { + memoryAssigner.increaseExpressionReference(this); + } + + @Override + public IntermediateLayer constructIntermediateLayer( + long queryId, + UDTFPlan udtfPlan, + RawQueryInputLayer rawTimeSeriesInputLayer, + Map<Expression, IntermediateLayer> expressionIntermediateLayerMap, + Map<Expression, TSDataType> expressionDataTypeMap, + LayerMemoryAssigner memoryAssigner) + throws QueryProcessException { + if (!expressionIntermediateLayerMap.containsKey(this)) { + float memoryBudgetInMB = memoryAssigner.assign(); + + LayerPointReader parentLayerPointReader = + rawTimeSeriesInputLayer.constructPointReader(udtfPlan.getReaderIndex(path.getFullPath())); + expressionDataTypeMap.put(this, parentLayerPointReader.getDataType()); + + expressionIntermediateLayerMap.put( + this, + memoryAssigner.getReference(this) == 1 + ? new SingleInputColumnSingleReferenceIntermediateLayer( + this, queryId, memoryBudgetInMB, parentLayerPointReader) + : new SingleInputColumnMultiReferenceIntermediateLayer( + this, queryId, memoryBudgetInMB, parentLayerPointReader)); + } + + return expressionIntermediateLayerMap.get(this); + } + + @Override public String toString() { - return path.isMeasurementAliasExists() ? path.getFullPathWithAlias() : path.getFullPath(); + return path.isMeasurementAliasExists() ? path.getFullPathWithAlias() : path.getExactFullPath(); } }
