This is an automated email from the ASF dual-hosted git repository. jiangtian pushed a commit to branch native_raft in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 7ee3590b95c8144d9f164191becc8256828a692a Merge: 4f1b4fb3496 d79ba919649 Author: Tian Jiang <[email protected]> AuthorDate: Mon May 22 09:56:34 2023 +0800 Merge branch 'ISSUE_5792' into native_raft # Conflicts: # node-commons/src/main/java/org/apache/iotdb/commons/concurrent/dynamic/DynamicThread.java # node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java # server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java # server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertTabletNode.java .../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 1 + .../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 43 ++- .../statemachine/ConfigRegionStateMachine.java | 2 + .../iotdb/confignode/manager/ConfigManager.java | 16 +- .../apache/iotdb/confignode/manager/IManager.java | 8 - .../iotdb/confignode/manager/ProcedureManager.java | 18 ++ .../iotdb/confignode/manager/load/LoadManager.java | 3 +- .../iotdb/confignode/manager/pipe/PipeManager.java | 3 + .../pipe/{ => plugin}/PipePluginCoordinator.java | 2 +- .../manager/pipe/runtime/PipeMetaSyncer.java | 80 +++++ .../pipe/{ => runtime}/PipeRuntimeCoordinator.java | 18 +- .../pipe/{ => task}/PipeTaskCoordinator.java | 23 +- .../manager/schema/ClusterSchemaManager.java | 32 +- .../persistence/pipe/PipePluginInfo.java | 44 +-- .../confignode/persistence/pipe/PipeTaskInfo.java | 71 +++-- .../persistence/pipe/PipeTaskOperation.java | 1 + .../pipe/plugin/CreatePipePluginProcedure.java | 2 +- .../impl/pipe/plugin/DropPipePluginProcedure.java | 2 +- .../runtime/PipeHandleLeaderChangeProcedure.java | 3 +- .../impl/pipe/runtime/PipeMetaSyncProcedure.java | 126 ++++++++ .../pipe/task/AbstractOperatePipeProcedureV2.java | 11 +- .../impl/pipe/task/CreatePipeProcedureV2.java | 16 +- .../impl/pipe/task/DropPipeProcedureV2.java | 4 +- .../impl/pipe/task/StartPipeProcedureV2.java | 4 +- .../impl/pipe/task/StopPipeProcedureV2.java | 4 +- .../procedure/store/ProcedureFactory.java | 6 + .../confignode/procedure/store/ProcedureType.java | 3 +- .../thrift/ConfigNodeRPCServiceProcessor.java | 7 - .../pipe/runtime/PipeMetaSyncProcedureTest.java | 55 ++++ .../apache/iotdb/consensus/ratis/RatisClient.java | 18 +- distribution/pom.xml | 14 + distribution/src/assembly/spark-connector.xml | 48 +++ .../UserGuide/Ecosystem-Integration/Spark-IoTDB.md | 273 ++++++++-------- docs/UserGuide/Operate-Metadata/Node.md | 4 +- docs/UserGuide/Operate-Metadata/Timeseries.md | 89 ++++-- docs/UserGuide/QuickStart/QuickStart.md | 2 +- docs/UserGuide/Reference/Common-Config-Manual.md | 12 +- docs/UserGuide/Reference/Keywords.md | 1 + docs/UserGuide/Reference/Status-Codes.md | 2 + .../UserGuide/Ecosystem-Integration/Spark-IoTDB.md | 261 ++++++++------- docs/zh/UserGuide/Operate-Metadata/Node.md | 4 +- docs/zh/UserGuide/Operate-Metadata/Timeseries.md | 84 ++++- docs/zh/UserGuide/QuickStart/QuickStart.md | 3 +- .../zh/UserGuide/Reference/Common-Config-Manual.md | 8 +- docs/zh/UserGuide/Reference/Keywords.md | 1 + docs/zh/UserGuide/Reference/Status-Codes.md | 258 +++++++-------- integration-test/pom.xml | 18 ++ .../org/apache/iotdb/it/utils/TsFileGenerator.java | 42 +++ .../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java | 18 ++ .../db/it/aligned/IoTDBAlignedDataDeletionIT.java | 17 + .../db/it/last/IoTDBLastQueryLastCacheIT.java | 17 +- .../apache/iotdb/db/it/orderBy/IoTDBOrderByIT.java | 26 ++ .../db/it/schema/IoTDBDeactivateTemplateIT.java | 22 ++ .../iotdb/db/it/schema/IoTDBExtendTemplateIT.java | 9 + .../iotdb/db/it/schema/IoTDBMetadataFetchIT.java | 103 +++++- .../iotdb/db/it/schema/IoTDBSchemaTemplateIT.java | 45 +++ .../db/it/schema/IoTDBSortedShowTimeseriesIT.java | 3 +- .../apache/iotdb/db/it/schema/IoTDBTagAlterIT.java | 10 +- .../org/apache/iotdb/db/it/schema/IoTDBTagIT.java | 20 +- .../session/it/IoTDBSessionSchemaTemplateIT.java | 92 ++++++ .../org/apache/iotdb/spark/it/AbstractTest.java | 55 ++++ .../java/org/apache/iotdb/spark/it/ReadTest.java | 145 +++++++++ .../test/java/org/apache/iotdb/spark/it/Utils.java | 96 ++++++ .../java/org/apache/iotdb/spark/it/WriteTest.java | 116 +++++++ .../resources/conf/iotdb-common.properties | 19 +- .../iotdb/commons/concurrent/ThreadName.java | 1 + .../commons/concurrent/dynamic/DynamicThread.java | 10 +- .../apache/iotdb/commons/conf/CommonConfig.java | 6 +- .../iotdb/commons/conf/CommonDescriptor.java | 8 - .../org/apache/iotdb/commons/path/AlignedPath.java | 15 +- .../org/apache/iotdb/commons/path/PartialPath.java | 47 ++- .../apache/iotdb/commons/path/PathPatternNode.java | 2 +- .../apache/iotdb/commons/path/PathPatternTree.java | 34 +- .../apache/iotdb/commons/path/PathPatternUtil.java | 52 +++ .../iotdb/commons/path/fa/nfa/SimpleNFA.java | 3 +- .../pipe/plugin/builtin/BuiltinPipePlugin.java | 6 +- .../{DefaultCollector.java => IoTDBCollector.java} | 2 +- .../IoTDBThriftConnector.java} | 48 ++- .../commons/pipe/task/meta/PipeMetaKeeper.java | 4 + .../iotdb/commons/schema/filter/SchemaFilter.java | 75 +++++ .../commons/schema/filter/SchemaFilterType.java | 32 +- .../commons/schema/filter/SchemaFilterVisitor.java | 59 ++++ .../commons/schema/filter/impl/DataTypeFilter.java | 65 ++++ .../schema/filter/impl/PathContainsFilter.java | 64 ++++ .../commons/schema/filter/impl/TagFilter.java | 83 +++++ .../apache/iotdb/commons/service/ServiceType.java | 1 + .../iotdb/commons/path/PathPatternTreeTest.java | 61 +++- .../org/apache/iotdb/pipe/api/PipeConnector.java | 4 + pom.xml | 35 +-- .../apache/iotdb/db/client/ConfigNodeClient.java | 17 - .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 6 +- .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 3 +- .../org/apache/iotdb/db/conf/OperationType.java | 3 +- .../org/apache/iotdb/db/engine/StorageEngine.java | 41 +++ .../iotdb/db/engine/cache/BloomFilterCache.java | 2 +- .../db/engine/cache/CacheHitRatioMonitor.java | 2 +- .../db/engine/cache/TimeSeriesMetadataCache.java | 10 +- .../exception/CompactionExceptionHandler.java | 2 +- .../execute/task/CrossSpaceCompactionTask.java | 39 ++- .../execute/task/InnerSpaceCompactionTask.java | 6 +- .../execute/utils/MultiTsFileDeviceIterator.java | 3 +- .../impl/RewriteCrossSpaceCompactionSelector.java | 26 +- .../impl/SizeTieredCompactionSelector.java | 2 +- .../utils/CrossSpaceCompactionCandidate.java | 6 +- .../memtable/AlignedWritableMemChunkGroup.java | 10 +- .../db/engine/memtable/WritableMemChunkGroup.java | 10 +- .../db/engine/settle/SettleRequestHandler.java | 2 +- .../iotdb/db/engine/storagegroup/DataRegion.java | 280 +++-------------- .../db/engine/storagegroup/TsFileResource.java | 10 +- .../engine/storagegroup/TsFileResourceStatus.java | 3 +- .../db/exception/query/OutOfTTLException.java | 4 +- .../db/metadata/cache/DataNodeSchemaCache.java | 4 + .../cache/DeviceUsingTemplateSchemaCache.java | 32 ++ .../iotdb/db/metadata/mtree/ConfigMTree.java | 8 +- .../db/metadata/mtree/MTreeBelowSGCachedImpl.java | 12 +- .../db/metadata/mtree/MTreeBelowSGMemoryImpl.java | 15 +- .../db/metadata/mtree/traverser/Traverser.java | 7 + .../mtree/traverser/basic/EntityTraverser.java | 31 +- .../traverser/basic/MeasurementTraverser.java | 36 ++- .../impl/read/SchemaRegionReadPlanFactory.java | 37 +-- .../impl/read/ShowDevicesPlanImpl.java | 15 +- .../impl/read/ShowTimeSeriesPlanImpl.java | 37 +-- .../plan/schemaregion/read/IShowDevicesPlan.java | 4 + .../schemaregion/read/IShowTimeSeriesPlan.java | 7 +- .../schemaregion/SchemaRegionMemoryImpl.java | 5 +- .../schemaregion/SchemaRegionSchemaFileImpl.java | 5 +- .../apache/iotdb/db/metadata/tag/TagManager.java | 16 +- .../metadata/template/ClusterTemplateManager.java | 4 +- .../template/alter/TemplateExtendInfo.java | 78 +++++ .../apache/iotdb/db/metadata/utils/MetaUtils.java | 3 +- .../iotdb/db/mpp/execution/driver/Driver.java | 15 +- .../execution/executor/RegionWriteExecutor.java | 42 +-- .../operator/schema/source/DeviceSchemaSource.java | 13 +- .../schema/source/SchemaSourceFactory.java | 27 +- .../schema/source/TimeSeriesSchemaSource.java | 17 +- .../mpp/metric/TimeSeriesMetadataCacheMetrics.java | 4 +- .../org/apache/iotdb/db/mpp/plan/Coordinator.java | 2 +- .../apache/iotdb/db/mpp/plan/analyze/Analysis.java | 16 +- .../iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java | 96 +++++- .../analyze/schema/AutoCreateSchemaExecutor.java | 10 +- .../analyze/schema/ClusterSchemaFetchExecutor.java | 2 +- .../plan/analyze/schema/ClusterSchemaFetcher.java | 50 ++- .../mpp/plan/analyze/schema/SchemaValidator.java | 27 +- .../db/mpp/plan/execution/IQueryExecution.java | 1 + .../db/mpp/plan/execution/QueryExecution.java | 13 +- .../config/executor/ClusterConfigTaskExecutor.java | 21 ++ .../iotdb/db/mpp/plan/parser/ASTVisitor.java | 95 ++++-- .../db/mpp/plan/planner/LogicalPlanBuilder.java | 47 ++- .../db/mpp/plan/planner/LogicalPlanVisitor.java | 85 ++--- .../db/mpp/plan/planner/OperatorTreeGenerator.java | 21 +- .../plan/node/load/LoadSingleTsFileNode.java | 4 + .../node/metedata/read/DevicesSchemaScanNode.java | 23 +- .../metedata/read/LevelTimeSeriesCountNode.java | 47 +-- .../node/metedata/read/TimeSeriesCountNode.java | 43 +-- .../metedata/read/TimeSeriesSchemaScanNode.java | 95 ++---- .../plan/node/write/InsertMultiTabletsNode.java | 22 +- .../plan/planner/plan/node/write/InsertNode.java | 126 +------- .../planner/plan/node/write/InsertRowNode.java | 171 ++-------- .../planner/plan/node/write/InsertRowsNode.java | 33 +- .../plan/node/write/InsertRowsOfOneDeviceNode.java | 32 +- .../planner/plan/node/write/InsertTabletNode.java | 145 ++------- .../scheduler/FragmentInstanceDispatcherImpl.java | 5 +- .../plan/scheduler/load/LoadTsFileScheduler.java | 8 +- .../plan/statement/crud/InsertBaseStatement.java | 157 ++++++++- .../crud/InsertMultiTabletsStatement.java | 30 ++ .../plan/statement/crud/InsertRowStatement.java | 183 ++++++++++- .../crud/InsertRowsOfOneDeviceStatement.java | 42 +++ .../plan/statement/crud/InsertRowsStatement.java | 41 +++ .../plan/statement/crud/InsertTabletStatement.java | 155 ++++++++- .../db/mpp/plan/statement/crud/QueryStatement.java | 55 ++-- .../metadata/CountLevelTimeSeriesStatement.java | 30 +- .../metadata/CountTimeSeriesStatement.java | 30 +- .../statement/metadata/ShowDevicesStatement.java | 10 + .../metadata/ShowTimeSeriesStatement.java | 30 +- .../org/apache/iotdb/db/pipe/agent/PipeAgent.java | 12 + .../db/pipe/agent/plugin/PipePluginAgent.java | 2 +- .../agent/receiver/IoTDBThriftReceiver.java} | 21 +- .../db/pipe/agent/receiver/PipeReceiverAgent.java | 90 ++++++ .../db/pipe/agent/runtime/MetaSyncScheduler.java | 22 -- .../iotdb/db/pipe/agent/runtime/PipeLauncher.java | 170 ++++++++++ .../db/pipe/agent/runtime/PipeRuntimeAgent.java | 42 ++- .../iotdb/db/pipe/agent/task/PipeTaskAgent.java | 350 +++++++++++---------- .../apache/iotdb/db/pipe/config/PipeConfig.java | 16 + .../db/pipe/config/PipeConnectorConstant.java | 3 + .../core/collector/IoTDBDataRegionCollector.java | 39 ++- .../PipeHistoricalDataRegionTsFileCollector.java | 13 +- .../PipeRealtimeDataRegionHybridCollector.java | 6 +- .../realtime/assigner/PipeDataRegionAssigner.java | 3 +- .../listener/PipeInsertionDataNodeListener.java | 4 +- .../impl/iotdb/IoTDBThriftConnectorClient.java | 70 +++++ .../impl/iotdb/IoTDBThriftConnectorVersion.java} | 16 +- .../impl/iotdb/v1/IoTDBThriftConnectorV1.java | 231 ++++++++++++++ .../impl/iotdb/v1/IoTDBThriftReceiverV1.java | 275 ++++++++++++++++ .../connector/impl/iotdb/v1/PipeRequestType.java} | 38 ++- .../v1/reponse/PipeTransferFilePieceResp.java | 80 +++++ .../iotdb/v1/request/PipeTransferFilePieceReq.java | 88 ++++++ .../iotdb/v1/request/PipeTransferFileSealReq.java | 79 +++++ .../iotdb/v1/request/PipeTransferHandshakeReq.java | 71 +++++ .../v1/request/PipeTransferInsertNodeReq.java | 102 ++++++ .../PipeConnectorSubtaskLifeCycle.java | 2 +- .../{ => manager}/PipeConnectorSubtaskManager.java | 18 +- .../core/event/impl/PipeTabletInsertionEvent.java | 4 + .../core/event/impl/PipeTsFileInsertionEvent.java | 37 ++- .../realtime/PipeRealtimeCollectEventFactory.java | 6 +- .../event/view/collector/PipeEventCollector.java | 3 +- .../execution/executor/PipeSubtaskExecutor.java | 17 +- .../org/apache/iotdb/db/pipe/task/PipeBuilder.java | 8 +- .../db/pipe/task/stage/PipeTaskCollectorStage.java | 25 +- .../db/pipe/task/stage/PipeTaskConnectorStage.java | 11 +- .../db/pipe/task/stage/PipeTaskProcessorStage.java | 19 +- .../db/pipe/task/subtask/PipeConnectorSubtask.java | 29 +- .../db/pipe/task/subtask/PipeProcessorSubtask.java | 21 +- .../iotdb/db/pipe/task/subtask/PipeSubtask.java | 28 +- .../java/org/apache/iotdb/db/service/DataNode.java | 102 +----- .../db/service/thrift/ProcessorWithMetrics.java | 6 +- .../service/thrift/impl/ClientRPCServiceImpl.java | 209 +++++++----- .../impl/DataNodeInternalRPCServiceImpl.java | 6 +- .../db/sync/common/ClusterSyncInfoFetcher.java | 11 +- .../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 4 +- .../iotdb/db/tools/TsFileResourcePrinter.java | 4 +- .../iotdb/db/tools/TsFileSplitByPartitionTool.java | 2 +- .../org/apache/iotdb/db/tools/TsFileSplitTool.java | 2 +- .../db/tools/settle/TsFileAndModSettleTool.java | 6 +- .../db/tools/validate/TsFileValidationTool.java | 16 +- .../org/apache/iotdb/db/utils/FileLoaderUtils.java | 2 +- .../org/apache/iotdb/db/utils/UpgradeUtils.java | 2 +- .../db/utils/datastructure/AlignedTVList.java | 6 +- .../db/wal/recover/file/TsFilePlanRedoer.java | 4 - .../iotdb/db/engine/cache/ChunkCacheTest.java | 4 +- .../engine/compaction/AbstractCompactionTest.java | 6 +- .../db/engine/compaction/MemoryControlTest.java | 75 +++++ .../cross/CrossSpaceCompactionExceptionTest.java | 2 +- .../cross/CrossSpaceCompactionSelectorTest.java | 171 ++++++++++ .../CrossSpaceCompactionWithFastPerformerTest.java | 6 +- ...eCompactionWithFastPerformerValidationTest.java | 4 +- ...sSpaceCompactionWithReadPointPerformerTest.java | 6 +- .../db/engine/compaction/cross/MergeTest.java | 6 +- .../cross/RewriteCompactionFileSelectorTest.java | 46 +-- .../inner/AbstractInnerSpaceCompactionTest.java | 4 +- .../inner/InnerCompactionMoreDataTest.java | 2 +- .../compaction/inner/InnerCompactionTest.java | 4 +- .../ReadChunkCompactionPerformerAlignedTest.java | 76 +++++ .../inner/sizetiered/SizeTieredCompactionTest.java | 10 +- .../compaction/utils/CompactionCheckerUtils.java | 4 + .../utils/MultiTsFileDeviceIteratorTest.java | 12 +- .../db/engine/snapshot/IoTDBSnapshotTest.java | 2 +- .../db/engine/storagegroup/DataRegionTest.java | 16 +- .../engine/storagegroup/FakedTsFileResource.java | 2 +- .../db/engine/storagegroup/TsFileResourceTest.java | 2 +- .../schemaRegion/SchemaRegionBasicTest.java | 167 +++++++++- .../schemaRegion/SchemaRegionTestUtil.java | 4 +- .../execution/operator/AlignedSeriesTestUtil.java | 6 +- .../schema/SchemaQueryScanOperatorTest.java | 4 +- .../db/mpp/plan/analyze/FakeSchemaFetcherImpl.java | 7 +- .../iotdb/db/mpp/plan/plan/LogicalPlannerTest.java | 120 ++++++- .../distribution/DistributionPlannerBasicTest.java | 10 +- .../read/DeviceSchemaScanNodeSerdeTest.java | 3 +- .../metadata/read/SchemaCountNodeSerdeTest.java | 8 +- .../read/TimeSeriesSchemaScanNodeSerdeTest.java | 3 +- .../pipe/core/connector/PipeThriftRequestTest.java | 118 +++++++ .../AlignedSeriesScanLimitOffsetPushDownTest.java | 10 +- .../query/reader/series/SeriesReaderTestUtil.java | 6 +- .../series/SeriesScanLimitOffsetPushDownTest.java | 8 +- .../iotdb/db/rescon/ResourceManagerTest.java | 12 +- .../db/utils/datastructure/VectorTVListTest.java | 11 + .../org/apache/iotdb/db/wal/io/WALFileTest.java | 25 +- .../iotdb/db/wal/node/ConsensusReqReaderTest.java | 27 +- .../org/apache/iotdb/db/wal/node/WALNodeTest.java | 26 +- .../db/wal/recover/file/TsFilePlanRedoerTest.java | 32 +- .../file/UnsealedTsFileRecoverPerformerTest.java | 5 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 12 +- .../org/apache/iotdb/session/pool/SessionPool.java | 319 ++++++++++++++++++- spark-iotdb-connector/pom.xml | 84 +---- spark-iotdb-connector/{ => scala_2.11}/pom.xml | 108 +++---- spark-iotdb-connector/{ => scala_2.12}/pom.xml | 103 +++--- .../src/test/resources/iotdb-datanode.properties | 23 -- .../apache/iotdb/spark/db/EnvironmentUtils.java | 263 ---------------- .../org/apache/iotdb/spark/db/IoTDBTest.scala | 150 --------- .../org/apache/iotdb/spark/db/IoTDBWriteTest.scala | 118 ------- .../iotdb/spark/db/unit/DataFrameToolsTest.scala | 96 ------ spark-tsfile/pom.xml | 50 +-- .../iotdb/spark/tsfile/qp/common/SQLConstant.java | 118 +++---- .../src/main/thrift/confignode.thrift | 9 +- thrift/src/main/thrift/client.thrift | 13 + .../java/org/apache/iotdb/tsfile/utils/Binary.java | 20 +- 285 files changed, 7494 insertions(+), 3761 deletions(-) diff --cc node-commons/src/main/java/org/apache/iotdb/commons/concurrent/dynamic/DynamicThread.java index ddfc3b83f05,9726cad6fd3..0785f0df8e6 --- a/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/dynamic/DynamicThread.java +++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/dynamic/DynamicThread.java @@@ -79,15 -79,12 +79,15 @@@ public abstract class DynamicThread imp } double idleRatio = idleRatio(); - if (idleRatio < minimumIdleRatio && runningTimeSum > minimumRunningTime) { + if (idleRatio < minimumIdleRatio && runningTimeSum > minimumRunningTimeNS) { // Thread too busy, try adding a new thread - logger.info("Thread too busy (idle ratio={}), try adding a new thread", idleRatio); - threadGroup.addThread(); + if (threadGroup.addThread()) { + logger.info("Thread too busy (idle ratio={}), try adding a new thread", idleRatio); + runningTimeSum = 0; + idleTimeSum = 0; + } return false; - } else if (idleRatio > maximumIdleRatio && runningTimeSum > minimumRunningTime) { + } else if (idleRatio > maximumIdleRatio && runningTimeSum > minimumRunningTimeNS) { // Thread too idle, exit if there is still enough threads int afterCnt = threadGroup.getThreadCnt().decrementAndGet(); if (afterCnt >= threadGroup.getMinThreadCnt()) { diff --cc node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java index c55386ed8a4,7bde2af3102..82fbe782780 --- a/node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java +++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java @@@ -75,9 -75,8 +75,10 @@@ public enum ServiceType IOT_CONSENSUS_SERVICE("IoTConsensus Service", "IoTConsensusRPCService"), PIPE_PLUGIN_CLASSLOADER_MANAGER_SERVICE( "Pipe Plugin Classloader Manager Service", "PipePluginClassLoader"), + PIPE_RUNTIME_AGENT("Pipe Runtime Agent", "PipeRuntimeAgent"), - MLNode_RPC_SERVICE("Rpc Service for MLNode", "MLNodeRPCService"); + MLNode_RPC_SERVICE("Rpc Service for MLNode", "MLNodeRPCService"), + RAFT_CONSENSUS_SERVICE("Raft consensus Service", "RaftRPCService"); + private final String name; private final String jmxName; diff --cc server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java index 33691d9ee8c,059cfbc65b2..302cd7e3fc2 --- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/executor/RegionWriteExecutor.java @@@ -265,11 -232,7 +234,9 @@@ public class RegionWriteExecutor // TODO need consider more status if (writeResponse.getStatus() != null) { response.setAccepted( - !hasFailedMeasurement - && (TSStatusCode.SUCCESS_STATUS.getStatusCode() - == writeResponse.getStatus().getCode() - TSStatusCode.SUCCESS_STATUS.getStatusCode() == writeResponse.getStatus().getCode()); ++ TSStatusCode.SUCCESS_STATUS.getStatusCode() == writeResponse.getStatus().getCode() + || TSStatusCode.WEAKLY_ACCEPTED.getStatusCode() - == writeResponse.getStatus().getCode())); ++ == writeResponse.getStatus().getCode()); if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != writeResponse.getStatus().getCode()) { response.setMessage(writeResponse.getStatus().message); response.setStatus(writeResponse.getStatus()); diff --cc server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertTabletNode.java index 5560affafa6,2501c535a0c..93dc5c1f1a2 --- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertTabletNode.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/write/InsertTabletNode.java @@@ -1129,92 -1068,4 +1075,47 @@@ public class InsertTabletNode extends I } return new TimeValuePair(times[lastIdx], value); } + - @Override - public TSEncoding getEncoding(int index) { - return null; - } - - @Override - public CompressionType getCompressionType(int index) { - return null; - } - - @Override - public void validateDeviceSchema(boolean isAligned) { - if (this.isAligned != isAligned) { - throw new SemanticException( - new AlignedTimeseriesException( - String.format( - "timeseries under this device are%s aligned, " + "please use %s interface", - isAligned ? "" : " not", isAligned ? "aligned" : "non-aligned"), - devicePath.getFullPath())); - } - } - - @Override - public ISchemaValidation getSchemaValidation() { - return this; - } - - @Override - public void validateMeasurementSchema(int index, IMeasurementSchemaInfo measurementSchemaInfo) { - if (measurementSchemas == null) { - measurementSchemas = new MeasurementSchema[measurements.length]; - } - if (measurementSchemaInfo == null) { - measurementSchemas[index] = null; - } else { - measurementSchemas[index] = measurementSchemaInfo.getSchemaAsMeasurementSchema(); - } - - try { - selfCheckDataTypes(index); - } catch (DataTypeMismatchException | PathNotExistException e) { - throw new SemanticException(e); - } - } - + @Override + public long estimateSize() { + long size = super.estimateSize(); + + size += times.length * 8L; + + for (int measurementIndex = 0; measurementIndex < columns.length; measurementIndex++) { + switch (dataTypes[measurementIndex]) { + case INT32: + int[] intValues = (int[]) columns[measurementIndex]; + size += intValues.length * 4L; + break; + case INT64: + long[] longValues = (long[]) columns[measurementIndex]; + size += longValues.length * 8L; + break; + case FLOAT: + float[] floatValues = (float[]) columns[measurementIndex]; + size += floatValues.length * 4L; + break; + case DOUBLE: + double[] doubleValues = (double[]) columns[measurementIndex]; + size += doubleValues.length * 8L; + break; + case BOOLEAN: + boolean[] boolValues = (boolean[]) columns[measurementIndex]; + size += boolValues.length; + break; + case TEXT: + Binary[] binaryValues = (Binary[]) columns[measurementIndex]; + for (Binary binaryValue : binaryValues) { + size += binaryValue.getLength(); + } + break; + default: + throw new UnSupportedDataTypeException( + String.format(DATATYPE_UNSUPPORTED, dataTypes[measurementIndex])); + } + } + + return size; + } }
