Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Annotations should be utilized to generate more efficient serialization code.
Planned improvements:
- Using never null annotations on a field, the serialized representation can omit the 1 byte null tags and the serializer code handling this tag.
- Using never null annotiation on the POJO, we can omit the top level null tag.
- Making a POJO final we can omit the subclass tag.
The very same annotations can be used to make the getLength method much smarter.
Code generation is a prerequisite, to avoid runtime checks which could make the common codepath (without annotations) slower.
I could also annotate some internal Flink types to make them more efficient.
The main risk: it would break savepoints created with a Flink version that did not have annotation. We could either introduce a compatibility mode, or force users to recreate those save points.
Attachments
Issue Links
- Blocked
-
FLINK-3671 Code generation for POJO serializer
- Open