-
Notifications
You must be signed in to change notification settings - Fork 13.4k
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
[FLINK-34440][formats][protobuf-confluent] Protobuf confluent dynamic format #25114
base: master
Are you sure you want to change the base?
[FLINK-34440][formats][protobuf-confluent] Protobuf confluent dynamic format #25114
Conversation
de53e42
to
c40a4e4
Compare
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.
Looks good to me as a draft, interested to see what the community thinks of the approach. Great to see the existing Protobuf code being re-used.
Structuring of method and classes made it easy to follow the code, with lots of thorough testing 🚀 .
9efe7a9
to
4044a8d
Compare
1e04397
to
4d1249a
Compare
@rmetzger @anupamaggarwal do you have time to review? Since you were involved in the Protobuf Confluent Format discussions earlier. |
@libenchao @MartijnVisser : as reviewers of the original flink-protobuf format, I was wondering if you'd be open to reviewing this PR 🙏🏻 |
Hi @klam-shop apologies for missing your message earlier, I won't be able to look into this in the coming weeks :( |
c0e710a
to
1ecc3c2
Compare
@rmetzger , do you think you could provide feedback? |
@dmariassy Can you rebase? Without a passing CI, it will be impossible to merge it. It will also be good to follow the naming conventions around commits, see the guide at https://flink.apache.org/how-to-contribute/code-style-and-quality-pull-requests/ for that. |
…sions The test confluentTagsWithImportProto3 would fail with the following error: [libprotobuf FATAL src/google/protobuf/compiler/java/file.cc:150] CHECK failed: CollectExtensions(*dynamic_file_proto, extensions): Also used this as an opportunity to add support for including custom proto descriptors during the protoc compilation process.
1ecc3c2
to
1cc421e
Compare
Hey @MartijnVisser , I rebased the branch and CI is now passing. The commit message titles have also been updated. I'd be really grateful for a review 🙂 |
Great, thanks a lot! I will try to find a reviewer. |
Looks like I failed so far, sorry. |
Thanks @rmetzger ! We'd love to get this reviewed and merged 🙂 |
Still no luck @rmetzger ? |
What is the purpose of the change
Out of scope for this PR
Brief change log
My intention was to:
Deserializer
byte[]
s to the generatedprotobuf.Message
type using aio.confluent.kafka.serializers.protobuf.KafkaProtobufDeserializer
protobuf.Message
and aRowData
object to the existing flink-protobuf formatSerializer
RowType
to a protobuf descriptorRowData
->AbstractMessage
conversion to the existing flink-protobuf formatAbstractMessage
object using aio.confluent.kafka.serializers.protobuf.KafkaProtobufSerializer
Verifying this change
Please make sure both new and modified tests in this PR follow the conventions for tests defined in our code quality guide.
This change added tests and can be verified as follows:
Performance
We saw a 2-4X performance boost when using this implementation over our previous in-house serdes that used
DynamicMessage
types for the conversion rather than generated Java objects.Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: noDocumentation