-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PIP-75: Perform serialization/deserialization with LightProto #9046
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM
I find it very nice that we are creating less builders and in general the overall simplification of the codebase.
Thank you for providing this improvement.
Most of the CI jobs failed, please take a look
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice work. I think such changes should be merged after extensive testing. Is it already running in any of your test env?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a great contribution! Thanks for working on this! But before merging this pull request, can you share some benchmark results between before this change and after this change? Because it changes the entire serialization and deserialization framework.
@rdhabalia Not yet, this is a big change against a target that is moving very fast (master). There is no way this can go to production before getting merged to master first, though it will surely get extensively tested before the 2.8 release. Also, we need to differentiate the 2 aspect:
@sijie Good point, the micro-benchmark in https://github.com/splunk/lightproto is based on the default Protobuf 3.13. I've added a new benchmark targeting Pulsar specific serizalization at https://github.com/merlimat/LightProtoPulsarBenchmark
|
@sijie PTAL since every days there are new conflicts to fix |
@merlimat sorry. I am reviewing it today. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
--- *Motivation* We introduce a new way to handle the proto and remove the 'protobuf-shaded/pom.xml' in the PR apache#9046. We need to remove the set version in the scripts.
--- *Motivation* We introduce a new way to handle the proto and remove the 'protobuf-shaded/pom.xml' in the PR #9046. We need to remove the set version in the scripts.
Fixes: #10097 ### Motivation See #10097 for the issue. It seems that the code broke when the switch was made to LightProto in #9046. ### Modifications It is necessary to use `msg.getMessageBuilder().hasReplicatedFrom()` and use logic that only calls `msg.getMessageBuilder().getReplicatedFrom()` if `hasReplicatedFrom()` returns true.
Motivation
As explained in https://github.com/apache/pulsar/wiki/PIP-75%3A-Replace-protobuf-code-generator , replace the patched Google Protobuf serialization with LightProto.