Skip to content

Add SHOW RECEIVERS support - #17869

Merged
jt2594838 merged 54 commits into
masterfrom
feat/show-receivers
Sep 14, 2026
Merged

jt2594838 merged 54 commits into
masterfrom
feat/show-receivers

Conversation

@Caideyipi

Copy link
Copy Markdown
Collaborator

Summary

  • add tree-model SHOW RECEIVERS and table-model information_schema.receivers support
  • track active pipe receiver sessions, sender endpoints, pipe IDs, handshake/transfer timestamps, and request counts
  • wire DataNode/ConfigNode thrift and air-gap receiver runtime recording

Tests

  • mvn "-Ddevelocity.off=true" -pl iotdb-core/node-commons -Dtest=PipeReceiverRuntimeRegistryTest test
  • mvn "-Ddevelocity.off=true" -DskipTests compile -pl iotdb-core/antlr,iotdb-core/relational-grammar,iotdb-core/node-commons,iotdb-core/confignode
  • mvn "-Ddevelocity.off=true" -DskipTests spotless:check -pl iotdb-core/node-commons,iotdb-core/datanode,iotdb-core/confignode,iotdb-core/relational-grammar,iotdb-core/antlr
  • git diff --check

Notes

  • DataNode focused compile is still blocked by unrelated generated Freemarker/calc symbols such as IFill, LinearFill, Accumulator, ComparatorChain, and IoTDBConfig.getModeMapSizeThreshold().
  • ConfigNode receiver records proxied through DataNode use receiver_node_id = -1 because the current proxy path does not expose the exact target ConfigNode id.

@Caideyipi
Caideyipi marked this pull request as ready for review June 11, 2026 10:46
@codecov

codecov Bot commented Jun 11, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 53.17797% with 442 lines in your changes missing coverage. Please review.
✅ Project coverage is 42.81%. Comparing base (9d91245) to head (f808ea4).
⚠️ Report is 23 commits behind head on master.

Files with missing lines Patch % Lines
...eceiver/protocol/thrift/IoTDBDataNodeReceiver.java 10.83% 107 Missing ⚠️
...mmons/pipe/sink/client/IoTDBSyncClientManager.java 0.00% 60 Missing ⚠️
...ipe/receiver/protocol/IoTDBConfigNodeReceiver.java 0.00% 25 Missing ⚠️
...b/queryengine/plan/planner/LogicalPlanBuilder.java 0.00% 24 Missing ⚠️
...db/pipe/sink/protocol/writeback/WriteBackSink.java 62.00% 19 Missing ⚠️
...db/db/queryengine/plan/analyze/AnalyzeVisitor.java 0.00% 18 Missing ⚠️
...gent/task/subtask/sink/PipeSinkSubtaskManager.java 0.00% 14 Missing ⚠️
.../pipe/agent/task/subtask/sink/PipeSinkSubtask.java 13.33% 13 Missing ⚠️
...ueryengine/plan/planner/OperatorTreeGenerator.java 0.00% 13 Missing ⚠️
...e/iotdb/commons/pipe/agent/task/PipeTaskAgent.java 13.33% 13 Missing ⚠️
... and 31 more
Additional details and impacted files
@@             Coverage Diff              @@
##             master   #17869      +/-   ##
============================================
+ Coverage     42.65%   42.81%   +0.16%     
- Complexity      414      442      +28     
============================================
  Files          5451     5451              
  Lines        394061   395406    +1345     
  Branches      51608    51798     +190     
============================================
+ Hits         168089   169303    +1214     
- Misses       225972   226103     +131     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Caideyipi added 21 commits June 18, 2026 11:27
# Conflicts:
#	iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiverTest.java
# Conflicts:
#	iotdb-core/relational-grammar/src/main/antlr4/org/apache/iotdb/db/relational/grammar/sql/RelationalSql.g4
…ow-receivers

# Conflicts:
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/sink/protocol/writeback/WriteBackSink.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/security/TreeAccessCheckVisitor.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementVisitor.java
#	iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeSinkTest.java
# Conflicts:
#	iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/protocol/thrift/IoTDBDataNodeReceiver.java
#	iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/receiver/IoTDBFileReceiver.java
…ow-receivers

# Conflicts:
#	iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/sink/PipeSinkTest.java
…ow-receivers

# Conflicts:
#	integration-test/src/test/java/org/apache/iotdb/pipe/it/single/IoTDBPipeReceiverIT.java
#	integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBDatabaseIT.java
#	iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/receiver/protocol/airgap/IoTDBAirGapReceiverTest.java
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

…ow-receivers

# Conflicts:
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/subtask/sink/PipeSinkSubtaskManager.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/ConfigNodeClient.java
#	iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/ConfigNodeInfo.java
@apache apache deleted a comment from Caideyipi Sep 14, 2026
@jt2594838
jt2594838 merged commit 63ae0f3 into master Sep 14, 2026
39 of 40 checks passed
@jt2594838
jt2594838 deleted the feat/show-receivers branch September 14, 2026 06:18
VGalaxies pushed a commit to VGalaxies/iotdb that referenced this pull request Oct 26, 2026
* Add show receivers support

* Fix show receivers runtime edge cases

* Fix receiver handshake body duplication

* Fix show receivers schema alignment

* Add show receivers visibility and HA tests

* Add show receivers edge case tests

* Add show receivers schema filter tests

* Add show receivers permission IT

* Fix pipe handshake request body reuse

* Add show receivers test coverage

* Add show receivers initial transfer time tests

* Add show receivers lifecycle test coverage

* Add sort

* Add aggregation UT

* Add information_schema.receivers UT

* Fix pipe IT

* fix-information-ci

* Fix

* recv-fix

* ignore ts

* i18n

* Fix ci failure

* Added ut/it

* Update IoTDBShowReceiversLifecycleIT.java

* Update StatementGeneratorTest.java

* Added tests

* Add test

* Test

* Delete use pipe ut

* Update IoTDBShowReceiversLifecycleIT.java

* Fix show receivers pipe cleanup

* Fix wd

* Tag write-back receiver runtime separately

* Add show receivers integration coverage

* Fix show receivers runtime metadata tests

* Fix receiver runtime cleanup test

* Remove unused session runtime hash code

* Fix old pipe sender receiver runtime handshake

* Fix null-safe tree user audit comparison

* [IT] Fix receiver test merge selection

* [Pipe] Preserve receiver sessions across region task lifecycle

* Address SHOW RECEIVERS review comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants