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 2021/06/09 03:44:01 UTC
[iotdb] branch add-java-doc updated (f70b5e4 -> a122d74)
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a change to branch add-java-doc
in repository https://gitbox.apache.org/repos/asf/iotdb.git.
from f70b5e4 add java docs for cache, queryContext, PartialPath, SeriesReader
add 6e80aa0 Session example create time series method use attributes (#3363)
add dc3fc32 move pull schema methods from CMManagercode to MetaPuller (#3325)
add f059700 [IOTDB-1396] Restructure logical query operator (#3267)
add 80f5aff Fix compaction lock with query (#3365)
add 66918f3 Remove the broken cached leader connection & optimize the insertRecords method in session (#3364)
add 82755b3 [IOTDB-1430] Ensure only one vector in one MetadataIndexTree (#3375)
add 06001d1 [IOTDB-1426] Restructure physicalGenerator (#3369)
new 12e2c90 Merge remote-tracking branch 'origin/master' into add-java-doc
new a122d74 add java doc for cache, SGP, TsFileResource, query
The 2 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:
.../iotdb/cluster/log/applier/BaseApplier.java | 6 +-
.../apache/iotdb/cluster/metadata/CMManager.java | 178 +----
.../apache/iotdb/cluster/metadata/MetaPuller.java | 173 +++++
.../cluster/query/ClusterPhysicalGenerator.java | 15 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 5 +-
.../query/ClusterPhysicalGeneratorTest.java | 20 +-
.../main/java/org/apache/iotdb/SessionExample.java | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 6 +-
.../db/engine/cache/TimeSeriesMetadataCache.java | 31 +-
.../db/engine/compaction/TsFileManagement.java | 4 +-
.../engine/storagegroup/StorageGroupProcessor.java | 8 +
.../db/engine/storagegroup/TsFileResource.java | 4 +
.../exception/query/LogicalOptimizeException.java | 7 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 8 +-
.../iotdb/db/qp/constant/FilterConstant.java | 95 +++
.../apache/iotdb/db/qp/constant/SQLConstant.java | 60 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +-
.../org/apache/iotdb/db/qp/logical/Operator.java | 115 +--
.../apache/iotdb/db/qp/logical/RootOperator.java | 30 -
.../qp/logical/crud/AggregationQueryOperator.java | 130 ++++
.../db/qp/logical/crud/BasicFunctionOperator.java | 26 +-
.../db/qp/logical/crud/BasicOperatorType.java | 24 +-
.../db/qp/logical/crud/DeleteDataOperator.java | 10 +
.../crud/FillClauseComponent.java} | 15 +-
.../db/qp/logical/crud/FillQueryOperator.java | 77 ++
.../iotdb/db/qp/logical/crud/FilterOperator.java | 81 +-
.../crud/{FromOperator.java => FromComponent.java} | 12 +-
.../iotdb/db/qp/logical/crud/FunctionOperator.java | 7 +-
.../crud/GroupByClauseComponent.java} | 63 +-
.../crud/GroupByFillClauseComponent.java} | 15 +-
.../qp/logical/crud/GroupByFillQueryOperator.java | 72 ++
.../db/qp/logical/crud/GroupByQueryOperator.java | 68 ++
.../iotdb/db/qp/logical/crud/InOperator.java | 16 +-
.../iotdb/db/qp/logical/crud/InsertOperator.java | 41 +
.../db/qp/logical/crud/LastQueryOperator.java | 64 ++
.../iotdb/db/qp/logical/crud/QueryOperator.java | 658 ++++++++++------
.../{SelectOperator.java => SelectComponent.java} | 17 +-
.../db/qp/logical/crud/SpecialClauseComponent.java | 129 ++++
.../logical/crud/UDFQueryOperator.java} | 36 +-
.../iotdb/db/qp/logical/crud/WhereComponent.java | 24 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 20 +-
.../db/qp/logical/sys/ClearCacheOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 27 +
.../db/qp/logical/sys/CreateFunctionOperator.java | 14 +-
.../db/qp/logical/sys/CreateIndexOperator.java | 10 +
.../db/qp/logical/sys/CreateSnapshotOperator.java | 14 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 23 +-
.../db/qp/logical/sys/CreateTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/DataAuthOperator.java | 12 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 14 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 12 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 12 +-
.../db/qp/logical/sys/DropFunctionOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/DropIndexOperator.java | 10 +
.../db/qp/logical/sys/DropTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/KillQueryOperator.java | 14 +-
.../qp/logical/sys/LoadConfigurationOperator.java | 13 +-
.../iotdb/db/qp/logical/sys/LoadDataOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/LoadFilesOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/MergeOperator.java | 19 +-
.../iotdb/db/qp/logical/sys/MoveFileOperator.java | 14 +-
.../db/qp/logical/sys/RemoveFileOperator.java | 14 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 12 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 14 +-
.../db/qp/logical/sys/ShowChildNodesOperator.java | 11 +
.../db/qp/logical/sys/ShowChildPathsOperator.java | 11 +
.../db/qp/logical/sys/ShowDevicesOperator.java | 10 +
.../db/qp/logical/sys/ShowFunctionsOperator.java | 11 +
.../db/qp/logical/sys/ShowMergeStatusOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/ShowOperator.java | 28 +-
.../qp/logical/sys/ShowStorageGroupOperator.java | 11 +
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 8 +
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 15 +
.../db/qp/logical/sys/ShowTriggersOperator.java | 11 +
.../db/qp/logical/sys/StartTriggerOperator.java | 14 +-
.../db/qp/logical/sys/StopTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/TracingOperator.java | 14 +-
.../{SetTTLOperator.java => UnSetTTLOperator.java} | 21 +-
.../iotdb/db/qp/physical/crud/AggregationPlan.java | 8 -
.../db/qp/physical/crud/AlignByDevicePlan.java | 2 +-
.../iotdb/db/qp/physical/crud/FillQueryPlan.java | 9 -
.../iotdb/db/qp/physical/crud/GroupByTimePlan.java | 4 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 10 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 3 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 18 +
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 3 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 4 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 340 +++++----
.../iotdb/db/qp/strategy/LogicalChecker.java | 80 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 41 +-
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 841 +--------------------
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 38 +-
.../qp/strategy/optimizer/DnfFilterOptimizer.java | 22 +-
.../optimizer/MergeSingleFilterOptimizer.java | 4 +-
.../qp/strategy/optimizer/RemoveNotOptimizer.java | 21 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 28 +-
.../db/query/dataset/AlignByDeviceDataSet.java | 2 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 2 +-
.../iotdb/db/integration/IOTDBGroupByIT.java | 4 +-
.../iotdb/db/integration/IoTDBDisableAlignIT.java | 19 +-
.../iotdb/db/integration/IoTDBGroupByFillIT.java | 6 +-
.../db/integration/IoTDBUDTFHybridQueryIT.java | 2 +-
.../aggregation/IoTDBAggregationByLevelIT.java | 4 +-
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 2 +-
.../iotdb/db/qp/logical/IndexLogicalPlanTest.java | 14 +-
.../iotdb/db/qp/logical/LogicalPlanSmallTest.java | 121 ++-
.../main/java/org/apache/iotdb/rpc/RpcUtils.java | 8 +-
.../java/org/apache/iotdb/session/Session.java | 78 +-
.../apache/iotdb/session/SessionConnection.java | 14 +-
.../apache/iotdb/session/SessionCacheLeaderUT.java | 434 ++++++++++-
.../file/metadata/MetadataIndexConstructor.java | 14 +-
115 files changed, 2981 insertions(+), 2152 deletions(-)
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/constant/FilterConstant.java
delete mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/RootOperator.java
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/AggregationQueryOperator.java
copy server/src/main/java/org/apache/iotdb/db/qp/{physical/crud/GroupByTimeFillPlan.java => logical/crud/FillClauseComponent.java} (74%)
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/FillQueryOperator.java
rename server/src/main/java/org/apache/iotdb/db/qp/logical/crud/{FromOperator.java => FromComponent.java} (81%)
copy server/src/main/java/org/apache/iotdb/db/qp/{physical/crud/GroupByTimePlan.java => logical/crud/GroupByClauseComponent.java} (72%)
copy server/src/main/java/org/apache/iotdb/db/qp/{physical/crud/GroupByTimeFillPlan.java => logical/crud/GroupByFillClauseComponent.java} (74%)
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByFillQueryOperator.java
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/GroupByQueryOperator.java
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/LastQueryOperator.java
rename server/src/main/java/org/apache/iotdb/db/qp/logical/crud/{SelectOperator.java => SelectComponent.java} (90%)
create mode 100644 server/src/main/java/org/apache/iotdb/db/qp/logical/crud/SpecialClauseComponent.java
copy server/src/main/java/org/apache/iotdb/db/{query/udf/core/transformer/UDFQueryRowTransformer.java => qp/logical/crud/UDFQueryOperator.java} (53%)
copy hive-connector/src/main/java/org/apache/iotdb/hive/TsFileSerDeException.java => server/src/main/java/org/apache/iotdb/db/qp/logical/crud/WhereComponent.java (66%)
copy server/src/main/java/org/apache/iotdb/db/qp/logical/sys/{SetTTLOperator.java => UnSetTTLOperator.java} (69%)
[iotdb] 01/02: Merge remote-tracking branch 'origin/master' into
add-java-doc
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch add-java-doc
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 12e2c90137bb551809fbacb9d3de9f9d3e954f50
Merge: f70b5e4 06001d1
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Wed Jun 9 11:02:26 2021 +0800
Merge remote-tracking branch 'origin/master' into add-java-doc
.../iotdb/cluster/log/applier/BaseApplier.java | 6 +-
.../apache/iotdb/cluster/metadata/CMManager.java | 178 +----
.../apache/iotdb/cluster/metadata/MetaPuller.java | 173 +++++
.../cluster/query/ClusterPhysicalGenerator.java | 15 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 5 +-
.../query/ClusterPhysicalGeneratorTest.java | 20 +-
.../main/java/org/apache/iotdb/SessionExample.java | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 6 +-
.../db/engine/cache/TimeSeriesMetadataCache.java | 17 +-
.../db/engine/compaction/TsFileManagement.java | 4 +-
.../engine/storagegroup/StorageGroupProcessor.java | 4 +
.../exception/query/LogicalOptimizeException.java | 7 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 8 +-
.../iotdb/db/qp/constant/FilterConstant.java | 95 +++
.../apache/iotdb/db/qp/constant/SQLConstant.java | 60 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +-
.../org/apache/iotdb/db/qp/logical/Operator.java | 115 +--
.../apache/iotdb/db/qp/logical/RootOperator.java | 30 -
.../qp/logical/crud/AggregationQueryOperator.java | 130 ++++
.../db/qp/logical/crud/BasicFunctionOperator.java | 26 +-
.../db/qp/logical/crud/BasicOperatorType.java | 24 +-
.../db/qp/logical/crud/DeleteDataOperator.java | 10 +
.../FillClauseComponent.java} | 24 +-
.../db/qp/logical/crud/FillQueryOperator.java | 77 ++
.../iotdb/db/qp/logical/crud/FilterOperator.java | 81 +-
.../crud/{FromOperator.java => FromComponent.java} | 12 +-
.../iotdb/db/qp/logical/crud/FunctionOperator.java | 7 +-
.../crud/GroupByClauseComponent.java} | 63 +-
.../GroupByFillClauseComponent.java} | 24 +-
.../qp/logical/crud/GroupByFillQueryOperator.java | 72 ++
.../db/qp/logical/crud/GroupByQueryOperator.java | 68 ++
.../iotdb/db/qp/logical/crud/InOperator.java | 16 +-
.../iotdb/db/qp/logical/crud/InsertOperator.java | 41 +
.../db/qp/logical/crud/LastQueryOperator.java | 64 ++
.../iotdb/db/qp/logical/crud/QueryOperator.java | 658 ++++++++++------
.../{SelectOperator.java => SelectComponent.java} | 17 +-
.../db/qp/logical/crud/SpecialClauseComponent.java | 129 ++++
...FunctionOperator.java => UDFQueryOperator.java} | 38 +-
.../WhereComponent.java} | 22 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 20 +-
.../db/qp/logical/sys/ClearCacheOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 27 +
.../db/qp/logical/sys/CreateFunctionOperator.java | 14 +-
.../db/qp/logical/sys/CreateIndexOperator.java | 10 +
.../db/qp/logical/sys/CreateSnapshotOperator.java | 14 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 23 +-
.../db/qp/logical/sys/CreateTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/DataAuthOperator.java | 12 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 14 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 12 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 12 +-
.../db/qp/logical/sys/DropFunctionOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/DropIndexOperator.java | 10 +
.../db/qp/logical/sys/DropTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/KillQueryOperator.java | 14 +-
.../qp/logical/sys/LoadConfigurationOperator.java | 13 +-
.../iotdb/db/qp/logical/sys/LoadDataOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/LoadFilesOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/MergeOperator.java | 19 +-
.../iotdb/db/qp/logical/sys/MoveFileOperator.java | 14 +-
.../db/qp/logical/sys/RemoveFileOperator.java | 14 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 12 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 14 +-
.../db/qp/logical/sys/ShowChildNodesOperator.java | 11 +
.../db/qp/logical/sys/ShowChildPathsOperator.java | 11 +
.../db/qp/logical/sys/ShowDevicesOperator.java | 10 +
.../db/qp/logical/sys/ShowFunctionsOperator.java | 11 +
.../db/qp/logical/sys/ShowMergeStatusOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/ShowOperator.java | 28 +-
.../qp/logical/sys/ShowStorageGroupOperator.java | 11 +
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 8 +
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 15 +
.../db/qp/logical/sys/ShowTriggersOperator.java | 11 +
.../db/qp/logical/sys/StartTriggerOperator.java | 14 +-
.../db/qp/logical/sys/StopTriggerOperator.java | 14 +-
.../iotdb/db/qp/logical/sys/TracingOperator.java | 14 +-
.../{SetTTLOperator.java => UnSetTTLOperator.java} | 21 +-
.../iotdb/db/qp/physical/crud/AggregationPlan.java | 8 -
.../db/qp/physical/crud/AlignByDevicePlan.java | 2 +-
.../iotdb/db/qp/physical/crud/FillQueryPlan.java | 9 -
.../iotdb/db/qp/physical/crud/GroupByTimePlan.java | 4 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 10 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 3 +-
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 2 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 4 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 3 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 4 +-
.../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 340 +++++----
.../iotdb/db/qp/strategy/LogicalChecker.java | 80 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 41 +-
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 841 +--------------------
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 38 +-
.../qp/strategy/optimizer/DnfFilterOptimizer.java | 22 +-
.../optimizer/MergeSingleFilterOptimizer.java | 4 +-
.../qp/strategy/optimizer/RemoveNotOptimizer.java | 21 +-
.../apache/iotdb/db/qp/utils/WildcardsRemover.java | 28 +-
.../db/query/dataset/AlignByDeviceDataSet.java | 2 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 2 +-
.../iotdb/db/integration/IOTDBGroupByIT.java | 4 +-
.../iotdb/db/integration/IoTDBDisableAlignIT.java | 19 +-
.../iotdb/db/integration/IoTDBGroupByFillIT.java | 6 +-
.../db/integration/IoTDBUDTFHybridQueryIT.java | 2 +-
.../aggregation/IoTDBAggregationByLevelIT.java | 4 +-
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 2 +-
.../iotdb/db/qp/logical/IndexLogicalPlanTest.java | 14 +-
.../iotdb/db/qp/logical/LogicalPlanSmallTest.java | 121 ++-
.../main/java/org/apache/iotdb/rpc/RpcUtils.java | 8 +-
.../java/org/apache/iotdb/session/Session.java | 78 +-
.../apache/iotdb/session/SessionConnection.java | 14 +-
.../apache/iotdb/session/SessionCacheLeaderUT.java | 434 ++++++++++-
.../file/metadata/MetadataIndexConstructor.java | 14 +-
113 files changed, 2952 insertions(+), 2159 deletions(-)
diff --cc server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 5a0430d,5ee4adf..eb304e7
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@@ -1662,13 -1605,15 +1662,17 @@@ public class StorageGroupProcessor
}
}
+ /** lock the read lock of the insert lock */
public void readLock() {
+ // apply read lock for SG insert lock to prevent inconsistent with concurrently writing memtable
insertLock.readLock().lock();
+ // apply read lock for TsFileResource list
+ tsFileManagement.readLock();
}
+ /** unlock the read lock of insert lock */
public void readUnlock() {
+ tsFileManagement.readUnLock();
insertLock.readLock().unlock();
}
[iotdb] 02/02: add java doc for cache, SGP, TsFileResource, query
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch add-java-doc
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a122d74d9015ff0da5b6bc28393226090030c090
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Wed Jun 9 11:43:20 2021 +0800
add java doc for cache, SGP, TsFileResource, query
---
.../iotdb/db/engine/cache/TimeSeriesMetadataCache.java | 14 ++++++++++++++
.../db/engine/storagegroup/StorageGroupProcessor.java | 4 ++++
.../iotdb/db/engine/storagegroup/TsFileResource.java | 4 ++++
.../iotdb/db/qp/physical/crud/RawDataQueryPlan.java | 18 ++++++++++++++++++
4 files changed, 40 insertions(+)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index 69d709b..889ba9e 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -303,6 +303,10 @@ public class TimeSeriesMetadataCache {
try {
timeSeriesMetadataList.forEach(
metadata -> {
+ // for root.sg1.d1.vector1.s1, key.device of vector will only return root.sg1.d1
+ // metadata.getMeasurementId() will return s1, the vector1 is saved in
+ // key.measurement
+ // so we should concat them to get the deviceId for root.sg1.d1.vector1.s1
TimeSeriesMetadataCacheKey k =
new TimeSeriesMetadataCacheKey(
key.filePath,
@@ -340,6 +344,16 @@ public class TimeSeriesMetadataCache {
}
}
+ /**
+ * !!!Attention!!!
+ *
+ * <p>For a vector, e.g. root.sg1.d1.vector1(s1, s2) TimeSeriesMetadataCacheKey for vector1 should
+ * be {filePath: ""./data/data/seq/......., device: root.sg1.d1.vector1, measurement: vector1},
+ * vector1 will be in both device and measurement TimeSeriesMetadataCacheKey for vector1.s1 should
+ * be {filePath: ""./data/data/seq/......., device: root.sg1.d1.vector1, measurement: s1}
+ * TimeSeriesMetadataCacheKey for vector1.s2 should be {filePath: ""./data/data/seq/.......,
+ * device: root.sg1.d1.vector1, measurement: s2}
+ */
private void getVectorTimeSeriesMetadataListFromCache(
TimeSeriesMetadataCacheKey key, List<String> subSensorList, List<TimeseriesMetadata> res) {
lock.readLock().lock();
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index eb304e7..2b2185d 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -289,6 +289,10 @@ public class StorageGroupProcessor {
// DEFAULT_POOL_TRIM_INTERVAL_MILLIS
private long timeWhenPoolNotEmpty = Long.MAX_VALUE;
+ /**
+ * record the insertWriteLock in SG is being hold by which method, it will be empty string if on
+ * one holds the insertWriteLock
+ */
private String insertWriteLockHolder = "";
/** get the direct byte buffer from pool, each fetch contains two ByteBuffer */
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
index 1d46900..9449437 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
@@ -217,6 +217,10 @@ public class TsFileResource {
this.timeIndexType = 1;
}
+ /**
+ * Because the unclosed tsfile don't have TimeSeriesMetadata and memtables in the memory don't
+ * have chunkMetadata, but query will use these, so we need to generate it for them.
+ */
@SuppressWarnings("squid:S3776") // high Cognitive Complexity
private void generateTimeSeriesMetadata() throws IOException {
TimeseriesMetadata timeTimeSeriesMetadata = new TimeseriesMetadata();
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
index 15d9b48..796acc3 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/RawDataQueryPlan.java
@@ -46,7 +46,9 @@ public class RawDataQueryPlan extends QueryPlan {
private IExpression expression = null;
private Map<String, Set<String>> deviceToMeasurements = new HashMap<>();
+ /** used to group all the sub sensors of one vector into VectorPartialPath */
private List<PartialPath> deduplicatedVectorPaths = new ArrayList<>();
+
private List<TSDataType> deduplicatedVectorDataTypes = new ArrayList<>();
public RawDataQueryPlan() {
@@ -93,9 +95,15 @@ public class RawDataQueryPlan extends QueryPlan {
}
}
+ // TODO Maybe we should get VectorPartialPath above from MTree
+ // Currently, the above processing will only produce PartialPath instead of VectorPartialPath
+ // even if the queried time series is vector
+ // So, we need to transform the PartialPath to VectorPartialPath if is is a vector.
if (!isRawQuery()) {
transformPaths(IoTDB.metaManager);
} else {
+ // if it is a RawQueryWithoutValueFilter, we also need to group all the subSensors of one
+ // vector into one VectorPartialPath
transformVectorPaths(physicalGenerator, columnForDisplaySet);
}
}
@@ -178,6 +186,12 @@ public class RawDataQueryPlan extends QueryPlan {
}
}
+ /**
+ * Group all the subSensors of one vector into one VectorPartialPath save the grouped
+ * VectorPartialPath in deduplicatedVectorPaths and deduplicatedVectorDataTypes instead of putting
+ * them directly into deduplicatedPaths and deduplicatedDataTypes, because we don't know whether
+ * the raw query has value filter here.
+ */
public void transformVectorPaths(
PhysicalGenerator physicalGenerator, Set<String> columnForDisplaySet)
throws MetadataException {
@@ -214,6 +228,10 @@ public class RawDataQueryPlan extends QueryPlan {
this.deduplicatedVectorDataTypes = deduplicatedVectorDataTypes;
}
+ /**
+ * RawQueryWithoutValueFilter should call this method to use grouped vector partial path to
+ * replace the previous deduplicatedPaths and deduplicatedDataTypes
+ */
public void transformToVector() {
if (!this.deduplicatedVectorPaths.isEmpty()) {
this.deduplicatedPaths = this.deduplicatedVectorPaths;