This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch table_disk_usage_statistics_with_cache in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8f2de96903ece94025fd2c43c62f1bc558035b88 Merge: 6575e6edfe3 78c1f492b60 Author: shuwenwei <[email protected]> AuthorDate: Mon Jan 19 16:30:06 2026 +0800 Merge branch 'iotdb_master' into table_disk_usage_statistics_with_cache .gitignore | 3 + .../iotdb/ainode/it/AINodeCallInferenceIT.java | 22 + .../ainode/it/AINodeConcurrentForecastIT.java | 9 +- ...lInferenceIT.java => AINodeDeviceManageIT.java} | 65 ++- .../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java | 55 +-- .../treemodel/manual/IoTDBPipePermissionIT.java | 36 +- .../pipe/it/single/IoTDBPipePermissionIT.java | 51 +++ .../relational/it/db/it/IoTDBDeletionTableIT.java | 158 +++++++ .../it/query/object/IoTDBObjectQuery2IT.java | 326 -------------- .../it/query/object/IoTDBObjectQueryIT.java | 309 ------------- .../it/query/old/IoTDBSimpleQueryTableIT.java | 63 +-- .../relational/it/query/recent/IoTDBCteIT.java | 31 +- .../recent/informationschema/IoTDBServicesIT.java | 118 +++++ .../recent/subquery/SubqueryDataSetUtils.java | 4 + .../IoTDBUncorrelatedScalarSubqueryIT.java | 5 + .../view/recent/IoTDBTableViewAddColumnTest.java | 84 ++++ .../it/schema/IoTDBAlterColumnTypeIT.java | 1 + .../relational/it/schema/IoTDBDatabaseIT.java | 12 +- .../iotdb/relational/it/schema/IoTDBTableIT.java | 141 ------ .../relational/it/session/IoTDBObjectDeleteIT.java | 363 --------------- .../relational/it/session/IoTDBObjectInsertIT.java | 339 -------------- .../it/session/IoTDBObjectInsertIT2.java | 170 ------- iotdb-api/external-service-api/pom.xml | 60 +++ .../externalservice/api/IExternalService.java | 33 ++ iotdb-api/pom.xml | 1 + .../src/test/cpp/sessionRelationalIT.cpp | 12 +- iotdb-client/client-py/README.md | 2 + .../client-py/iotdb/tsfile/utils/tsblock_serde.py | 4 +- iotdb-client/client-py/session_example_date.py | 109 +++++ iotdb-client/client-py/session_pool_example.py | 18 +- .../client-py/table_model_session_pool_example.py | 24 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 8 + iotdb-core/ainode/build_binary.py | 54 ++- iotdb-core/ainode/iotdb/ainode/core/ai_node.py | 11 +- iotdb-core/ainode/iotdb/ainode/core/constant.py | 4 +- .../ainode/iotdb/ainode/core/device/__init__.py | 17 + .../iotdb/ainode/core/device/backend/__init__.py | 17 + .../iotdb/ainode/core/device/backend/base.py | 42 ++ .../ainode/core/device/backend/cpu_backend.py | 37 ++ .../ainode/core/device/backend/cuda_backend.py | 39 ++ .../iotdb/ainode/core/device/device_utils.py | 49 +++ iotdb-core/ainode/iotdb/ainode/core/device/env.py | 39 ++ .../ainode/core/inference/batcher/basic_batcher.py | 27 +- .../ainode/core/inference/inference_request.py | 15 +- .../core/inference/inference_request_pool.py | 33 +- .../core/inference/pipeline/basic_pipeline.py | 11 +- .../core/inference/pipeline/pipeline_loader.py | 4 +- .../iotdb/ainode/core/inference/pool_controller.py | 88 ++-- .../pool_scheduler/abstract_pool_scheduler.py | 12 +- .../pool_scheduler/basic_pool_scheduler.py | 50 +-- .../iotdb/ainode/core/manager/device_manager.py | 108 +++++ .../iotdb/ainode/core/manager/inference_manager.py | 66 ++- .../ainode/iotdb/ainode/core/manager/utils.py | 34 +- .../core/model/chronos2/pipeline_chronos2.py | 2 +- .../ainode/iotdb/ainode/core/model/model_loader.py | 14 +- .../ainode/core/model/sktime/pipeline_sktime.py | 2 +- .../ainode/core/model/sundial/pipeline_sundial.py | 2 +- .../ainode/core/model/timer_xl/pipeline_timer.py | 2 +- iotdb-core/ainode/iotdb/ainode/core/rpc/handler.py | 62 ++- iotdb-core/ainode/iotdb/ainode/core/rpc/service.py | 2 +- .../ainode/iotdb/ainode/core/util/gpu_mapping.py | 93 ---- iotdb-core/ainode/pom.xml | 34 -- iotdb-core/ainode/pyproject.toml | 6 +- .../ainode/resources/conf/iotdb-ainode.properties | 2 +- .../ainode/resources/syncPythonVersion.groovy | 159 ------- .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 3 + .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 24 + .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 13 + .../client/async/CnToDnAsyncRequestType.java | 3 + .../CnToDnInternalServiceAsyncRequestManager.java | 5 + .../rpc/DataNodeAsyncRequestRPCHandler.java | 9 + .../rpc/GetBuiltInExternalServiceRPCHandler.java | 82 ++++ .../confignode/conf/SystemPropertiesUtils.java | 15 - .../consensus/request/ConfigPhysicalPlan.java | 16 + .../consensus/request/ConfigPhysicalPlanType.java | 6 + .../exernalservice/ShowExternalServicePlan.java | 58 +++ .../externalservice/CreateExternalServicePlan.java | 89 ++++ .../externalservice/DropExternalServicePlan.java | 87 ++++ .../externalservice/StartExternalServicePlan.java | 87 ++++ .../externalservice/StopExternalServicePlan.java | 87 ++++ .../externalservice/ShowExternalServiceResp.java | 53 +++ .../iotdb/confignode/manager/ConfigManager.java | 64 +++ .../apache/iotdb/confignode/manager/IManager.java | 15 + .../externalservice/ExternalServiceInfo.java | 312 +++++++++++++ .../externalservice/ExternalServiceManager.java | 215 +++++++++ .../iotdb/confignode/manager/node/NodeManager.java | 13 +- .../persistence/executor/ConfigPlanExecutor.java | 22 + .../confignode/persistence/schema/ConfigMTree.java | 37 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 27 ++ .../persistence/ExternalServiceInfoTest.java | 93 ++++ .../persistence/schema/ConfigMTreeTest.java | 58 +++ .../test/resources/oldsnapshot/cluster_schema.bin | Bin 0 -> 121 bytes .../resources/oldsnapshot/table_cluster_schema.bin | Bin 0 -> 5177 bytes iotdb-core/datanode/pom.xml | 5 + .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 9 + .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 9 - .../exception/ChunkTypeInconsistentException.java | 38 +- .../db/pipe/agent/runtime/PipeAgentLauncher.java | 3 +- .../subtask/processor/PipeProcessorSubtask.java | 21 +- .../db/pipe/event/common/PipeInsertionEvent.java | 4 + .../common/tsfile/PipeTsFileInsertionEvent.java | 4 - .../scan/TsFileInsertionEventScanParser.java | 3 +- .../table/TsFileInsertionEventTableParser.java | 16 +- .../sink/protocol/writeback/WriteBackSink.java | 14 +- .../iotdb/db/protocol/client/ConfigNodeClient.java | 35 ++ .../iotdb/db/protocol/mqtt/MPPPublishHandler.java | 14 +- .../impl/DataNodeInternalRPCServiceImpl.java | 20 +- .../common/header/DatasetHeaderFactory.java | 4 + .../execution/fragment/QueryStatistics.java | 10 +- .../operator/process/AbstractIntoOperator.java | 6 +- .../operator/process/AbstractTreeIntoOperator.java | 8 +- .../operator/process/DeviceViewIntoOperator.java | 110 ++++- .../process/InsertTabletStatementGenerator.java | 4 + .../operator/process/TableIntoOperator.java | 5 + .../operator/process/TreeIntoOperator.java | 37 +- .../execution/operator/source/FileLoaderUtils.java | 12 +- .../execution/operator/source/SeriesScanUtil.java | 40 +- .../InformationSchemaContentSupplierFactory.java | 37 ++ .../relational/ColumnTransformerBuilder.java | 36 -- .../iotdb/db/queryengine/plan/Coordinator.java | 8 + .../queryengine/plan/analyze/AnalyzeVisitor.java | 21 +- .../queryengine/plan/analyze/SelectIntoUtils.java | 42 +- .../execution/config/TableConfigTaskVisitor.java | 40 ++ .../execution/config/TreeConfigTaskVisitor.java | 41 ++ .../config/executor/ClusterConfigTaskExecutor.java | 114 +++++ .../config/executor/IConfigTaskExecutor.java | 10 + .../config/metadata/ai/ShowAIDevicesTask.java | 15 +- .../externalservice/CreateExternalServiceTask.java | 52 +++ .../externalservice/DropExternalServiceTask.java | 45 ++ .../externalservice/ShowExternalServiceTask.java | 56 +++ .../externalservice/StartExternalServiceTask.java | 33 +- .../externalservice/StopExternalServiceTask.java | 33 +- .../db/queryengine/plan/parser/ASTVisitor.java | 34 ++ .../parameter/DeviceViewIntoPathDescriptor.java | 5 +- .../planner/plan/parameter/IntoPathDescriptor.java | 5 +- .../plan/relational/analyzer/Scope.java | 3 +- .../relational/analyzer/StatementAnalyzer.java | 18 +- .../function/tvf/ClassifyTableFunction.java | 2 +- .../function/tvf/ForecastTableFunction.java | 2 +- .../relational/metadata/TableMetadataImpl.java | 18 - .../fetcher/TableDeviceSchemaValidator.java | 13 +- ...ithUncorrelatedScalarSubqueryReconstructor.java | 61 +-- .../DataNodeLocationSupplierFactory.java | 1 + .../security/TreeAccessCheckVisitor.java | 42 ++ .../plan/relational/sql/ast/AstVisitor.java | 20 + .../relational/sql/ast/CreateExternalService.java | 97 ++++ .../relational/sql/ast/DropExternalService.java | 91 ++++ .../relational/sql/ast/ShowExternalService.java | 34 +- .../relational/sql/ast/StartExternalService.java | 85 ++++ .../relational/sql/ast/StopExternalService.java | 85 ++++ .../plan/relational/sql/parser/AstBuilder.java | 44 ++ .../plan/relational/sql/parser/ErrorHandler.java | 31 +- .../plan/relational/sql/rewrite/ShowRewrite.java | 15 + .../plan/relational/sql/util/AstUtil.java | 30 -- .../queryengine/plan/statement/StatementType.java | 7 + .../plan/statement/StatementVisitor.java | 31 ++ .../CreateExternalServiceStatement.java | 76 ++++ .../DropExternalServiceStatement.java | 76 ++++ .../ShowExternalServiceStatement.java | 68 +++ .../StartExternalServiceStatement.java | 67 +++ .../StopExternalServiceStatement.java | 67 +++ .../db/queryengine/plan/udf/UDTFForecast.java | 3 +- .../FragmentInstanceStatisticsDrawer.java | 6 + .../binary/ReadObject2ColumnTransformer.java | 78 ---- .../ternary/ReadObject3ColumnTransformer.java | 99 ----- .../unary/scalar/ReadObjectColumnTransformer.java | 126 ------ .../schemaregion/utils/ResourceByPathUtils.java | 29 +- .../java/org/apache/iotdb/db/service/DataNode.java | 30 ++ .../db/service/ResourcesInformationHolder.java | 11 + .../externalservice/BuiltinExternalServices.java | 57 +++ .../ExternalServiceClassLoader.java | 57 +++ .../ExternalServiceManagementException.java | 30 ++ .../ExternalServiceManagementService.java | 379 ++++++++++++++++ .../storageengine/dataregion/Base32ObjectPath.java | 169 ------- .../db/storageengine/dataregion/DataRegion.java | 27 +- .../db/storageengine/dataregion/IObjectPath.java | 9 +- .../storageengine/dataregion/PlainObjectPath.java | 126 ------ .../performer/impl/FastCompactionPerformer.java | 6 +- .../execute/task/AbstractCompactionTask.java | 13 + .../FastNonAlignedSeriesCompactionExecutor.java | 11 + .../readchunk/SingleSeriesCompactionExecutor.java | 8 + .../dataregion/modification/DeletionPredicate.java | 4 + .../read/reader/chunk/DiskChunkLoader.java | 7 + .../dataregion/tsfile/TsFileResource.java | 6 +- .../iotdb/db/tools/TsFileResourcePrinter.java | 5 +- .../apache/iotdb/db/tools/TsFileSketchTool.java | 30 ++ .../org/apache/iotdb/db/utils/ObjectTypeUtils.java | 26 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 297 ++++++++----- .../org/apache/iotdb/db/utils/TabletDecoder.java | 2 +- .../db/pipe/pattern/IoTDBTreePatternTest.java | 1 + .../operator/DeviceViewIntoOperatorTest.java | 487 +++++++++++++++++++++ .../execution/operator/TreeIntoOperatorTest.java | 303 +++++++++++++ .../plan/function/RecordObjectTypeTest.java | 156 ------- .../plan/relational/planner/CteSubqueryTest.java | 2 - .../sql/ast/SqlParserErrorHandlerTest.java | 76 ++++ .../unary/scalar/ObjectTypeFunctionTest.java | 186 -------- .../object/ObjectTypeCompactionTest.java | 459 ------------------- .../org/apache/iotdb/db/utils/SchemaUtilsTest.java | 149 ++++++- iotdb-core/node-commons/pom.xml | 5 + .../conf/iotdb-system.properties.template | 10 - .../iotdb/commons/conf/CommonDescriptor.java | 5 - .../apache/iotdb/commons/conf/IoTDBConstant.java | 1 + .../iotdb/commons/externalservice/ServiceInfo.java | 170 +++++++ .../datastructure/pattern/IoTDBTreePattern.java | 7 +- .../schema/column/ColumnHeaderConstant.java | 18 +- .../commons/schema/table/InformationSchema.java | 11 + .../apache/iotdb/commons/schema/table/TsTable.java | 43 +- .../relational/TableBuiltinScalarFunction.java | 1 - .../db/relational/grammar/sql/RelationalSql.g4 | 35 +- .../thrift-ainode/src/main/thrift/ainode.thrift | 4 +- .../thrift-commons/src/main/thrift/common.thrift | 14 + .../src/main/thrift/confignode.thrift | 23 + .../src/main/thrift/datanode.thrift | 7 + pom.xml | 2 +- 214 files changed, 6849 insertions(+), 4385 deletions(-) diff --cc iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java index dba02e30ef5,721459ce84d..19e597ef031 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java @@@ -192,5 -192,10 +192,12 @@@ public enum StatementType FAST_LAST_QUERY, SHOW_CONFIGURATION, + + CREATE_EXTERNAL_SERVICE, + START_EXTERNAL_SERVICE, + STOP_EXTERNAL_SERVICE, + DROP_EXTERNAL_SERVICE, + SHOW_EXTERNAL_SERVICE, ++ + SHOW_DISK_USAGE, } diff --cc iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java index 63f95170a07,3c15b2eaa28..5957ea888fa --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/InformationSchema.java @@@ -419,21 -395,18 +420,31 @@@ public class InformationSchema new AttributeColumnSchema(ColumnHeaderConstant.DATANODE_ID, TSDataType.INT32)); queriesCostsHistogramTable.removeColumnSchema(TsTable.TIME_COLUMN_NAME); schemaTables.put(QUERIES_COSTS_HISTOGRAM, queriesCostsHistogramTable); + + final TsTable servicesTable = new TsTable(SERVICES); + servicesTable.addColumnSchema( + new TagColumnSchema(ColumnHeaderConstant.SERVICE_NAME_TABLE_MODEL, TSDataType.STRING)); + servicesTable.addColumnSchema( + new AttributeColumnSchema(ColumnHeaderConstant.DATA_NODE_ID_TABLE_MODEL, TSDataType.INT32)); + servicesTable.addColumnSchema( + new AttributeColumnSchema(ColumnHeaderConstant.STATE_TABLE_MODEL, TSDataType.STRING)); + servicesTable.removeColumnSchema(TsTable.TIME_COLUMN_NAME); + schemaTables.put(SERVICES, servicesTable); } + static { + columnsThatSupportPushDownPredicate.put( + TABLE_DISK_USAGE, + ImmutableSet.of( + ColumnHeaderConstant.DATABASE, + ColumnHeaderConstant.TABLE_NAME_TABLE_MODEL, + ColumnHeaderConstant.DATA_NODE_ID_TABLE_MODEL, + ColumnHeaderConstant.REGION_ID_TABLE_MODEL, + ColumnHeaderConstant.TIME_PARTITION_TABLE_MODEL)); + + tablesThatSupportPushDownLimitOffset.add(TABLE_DISK_USAGE); + } + public static Map<String, TsTable> getSchemaTables() { return schemaTables; }
