merlimat opened a new pull request, #25332: URL: https://github.com/apache/pulsar/pull/25332
## Motivation Upgrade the LightProto serialization library from 0.4 to 0.6.1. LightProto is used in Pulsar for high-performance, zero-copy serialization of internal protocol buffers (PulsarApi, transaction metadata, delayed message indexes, resource usage). ### Performance improvements in LightProto 0.6.x - **Direct protoc-based code generation**: The new version uses protoc directly to parse `.proto` files and generate descriptor sets, replacing the previous protostuff-based parser. This eliminates the need for the `properties-maven-plugin` workaround to set `proto_path` and `proto_search_strategy` system properties. - **Improved lazy deserialization**: String and bytes fields are deserialized lazily from the underlying buffer, with a new public `materialize()` API to eagerly resolve all fields and release the buffer reference when needed. - **Proto3 support**: LightProto 0.6.x adds support for proto3 syntax, opening up opportunities to standardize more of Pulsar's serialization on LightProto. Currently, Pulsar uses a mix of Google Protobuf (with its higher allocation overhead) and LightProto. With proto3 support, additional proto definitions — such as those used in the client-broker protocol or in managed ledger metadata — could be migrated to LightProto, reducing GC pressure and improving throughput in the hot path. ### Changes in this PR - Update plugin groupId from `com.github.splunk.lightproto` to `io.streamnative.lightproto` - Bump version from 0.4 to 0.6.1 - Remove the `properties-maven-plugin` configuration that was only needed for the old LightProto - Add `extraProtoPaths` configuration for the transaction coordinator module to resolve cross-module proto imports natively - Update SpotBugs exclusions for generated code ### Documentation - [x] `doc-not-needed` ### Matching PR in - https://github.com/streamnative/lightproto -- 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]
