Caideyipi opened a new pull request, #18248: URL: https://github.com/apache/iotdb/pull/18248
## Description ### Reduce temporary allocations in the RPC insert path - Canonicalize tree-model tablet measurements in the mutable lists created by Thrift instead of allocating replacement lists. - Reuse canonical measurement string instances within batched tablet requests. - Preallocate the insert-tablet statement list to the request size. ### Speed up tablet deserialization - Decode uncompressed PLAIN tablet timestamps and value columns directly, avoiding a decoder allocation and virtual decoder calls per column. - Deserialize each tablet's data type list once and reuse the resulting array for value decoding and statement construction. - Keep compressed and non-PLAIN decoding behavior unchanged. ### Compatibility and verification This change does not modify the Thrift IDL, wire format, configuration, or public insert behavior. The external RPC service already uses the zero-copy transport for binary fields, so this PR focuses on the remaining service-layer allocations and decoding work. Verified with: - `mvn test -pl iotdb-core/node-commons -Dtest=PathUtilsTest` - Targeted compilation and JUnit execution of `TabletDecoderTest` - `mvn spotless:apply -pl iotdb-core/node-commons,iotdb-core/datanode` - `mvn checkstyle:check -pl iotdb-core/node-commons,iotdb-core/datanode` The normal DataNode test command is currently blocked by unrelated existing compilation errors in generated Mode/Fill classes and locally installed Config APIs. <hr> This PR has: - [x] been self-reviewed. - [x] added unit tests to cover the new code paths. - [x] added comments/Javadocs for the non-trivial in-place canonicalization methods. <hr> ##### Key changed/added classes - `ClientRPCServiceImpl` - `StatementGenerator` - `TabletDecoder` - `PathUtils` -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
