Tzu-Li (Gordon) Tai created FLINK-11917:
-------------------------------------------

             Summary: Allow state schema migration from Kryo to POJO / Avro
                 Key: FLINK-11917
                 URL: https://issues.apache.org/jira/browse/FLINK-11917
             Project: Flink
          Issue Type: Improvement
          Components: API / Type Serialization System
            Reporter: Tzu-Li (Gordon) Tai


In Flink, it has been commonly advertised that users should try to avoid Kryo 
for state serialization since it doesn't work out-of-the-box well for schema 
evolution stories. Kryo, in the first place, wasn't designed with that in mind.

In light of this, Flink should provide a migration path for state that were 
default to be serialized by the {{KryoSerializer}} to other serializers that 
now support better schema evolution capabilities, such as {{PojoSerializer}} 
and {{AvroSerializer}}.

Essentially, what this means is that in the {{KryoSerializerSnapshot}} class's 
{{resolveSchemaCompatibility}} method, we identify if the new serializer is 
either {{PojoSerializer}} or {{AvroSerializer}}; if so, we return 
{{TypeSerializerSchemaCompatibility.compatibleAfterMigration()}} as the result.

For the user, this would allow them to simply upgrade their state types to be 
Avro-generated {{SpecificRecord}} or a qualified POJO.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to