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]

Reply via email to