You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by "Caideyipi (via GitHub)" <gi...@apache.org> on 2026/08/03 01:33:20 UTC
[PR] [To dev/1.3] [Pipe] Batch OPC UA sink writes [iotdb]
Caideyipi opened a new pull request, #18380:
URL: https://github.com/apache/iotdb/pull/18380
## Description
Target `dev/1.3`.
The OPC UA sink previously issued and awaited one `writeValue` RPC for every measurement in a tablet. This change collects the writes for a tablet and sends them through one `writeValues` request.
Missing-node recovery is preserved:
- inspect each returned status and collect only `Bad_NodeIdUnknown` writes;
- deduplicate shared nodes before calling `addNodes`;
- retry only the writes whose nodes were missing;
- continue to fail immediately on other bad statuses with measurement context.
Unit tests cover a successful multi-measurement batch, missing-node creation and selective retry, and a non-recoverable write status.
## Verification
```shell
mvn -o -nsu -pl iotdb-core/datanode \
"-Ddevelocity.off=true" \
"-Dtest=IoTDBOpcUaClientTest" \
"-Dsurefire.failIfNoSpecifiedTests=false" \
surefire:test
```
Result: 3 tests run, 0 failures, 0 errors, 0 skipped.
`git diff --check origin/dev/1.3...HEAD` also passed.
### Local synthetic benchmark
A local-only benchmark harness (not included in this commit) compared the previous per-measurement request pattern with the batch request under a simulated 5 ms response delay:
| Measurements per tablet | Previous RPCs | Batch RPCs | Previous median | Batch median | Speedup |
| ---: | ---: | ---: | ---: | ---: | ---: |
| 100 | 100 | 1 | 1547.574 ms/tablet | 15.329 ms/tablet | 100.96x |
The benchmark test passed (1 test, 0 failures/errors/skips). This is a synthetic RPC-count/latency comparison rather than a measurement of production OPC UA server throughput.
<hr>
This PR has:
- [x] been self-reviewed.
- [x] added unit tests for the new batch and recovery paths.
<hr>
##### Key changed/added classes
- `IoTDBOpcUaClient`
- `IoTDBOpcUaClientTest`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] [To dev/1.3] [Pipe] Batch OPC UA sink writes [iotdb]
Posted by "jt2594838 (via GitHub)" <gi...@apache.org>.
jt2594838 merged PR #18380:
URL: https://github.com/apache/iotdb/pull/18380
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org