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

             Summary: Migrate all remaining Flink serializers' snapshot classes 
to the new TypeSerializerSnapshot / TypeSerializerSchemaCompatibility 
abstractions
                 Key: FLINK-11327
                 URL: https://issues.apache.org/jira/browse/FLINK-11327
             Project: Flink
          Issue Type: Task
          Components: State Backends, Checkpointing, Type Serialization System
            Reporter: Tzu-Li (Gordon) Tai
             Fix For: 1.8.0


There are still a few serializers in Flink that needs to be upgraded to use the 
new serialization compatibility APIs (`TypeSerializerSnapshot` and 
`TypeSerializerSchemaCompatibility`).

By doing this as soon as possible (ideally all are migrated for the 1.8 
release), state serializers would no longer be written via Java serialization 
into savepoints, and in general allowing serializer upgrades more future-proof.

To split up the efforts, the remaining serializers can be categorized as 
follows.
They are categorized because some are fairly straightforward, while some are 
more complex and involves reconfiguration / migration cases.
We should have an independent sub-task JIRA for each category:
* Parameterless serializers / subclasses of `TypeSerializerSingleton`
* Simple composite serializers that contain nested serializers
* Scala-macro generated serializers
* `POJOSerializer`
* Kryo-related serializers
* Enum serializers

After upgrading a serializers' snapshot, the following should be achieved to 
consider the migration completed:
* The serializer should now return a `TypeSerializerSnapshot`, and not a 
subclass of the legacy `TypeSerializerConfigSnapshot` as its snapshot.
* Check whether or not the legacy `TypeSerializer#ensureCompatibility` method 
can be removed from the serializer class.
* There is a corresponding test specification for the migrated serializer that 
uses the `TypeSerializerSnapshotMigrationTestBase`.

Ideally, to complete this JIRA, we should also have some utilities / meta-tests:
* A test that verifies ALL serializers in the Flink codebase have a 
corresponding migration test that uses the 
`TypeSerializerSnapshotMigrationTestBase`.
* A utility script that generates test data and snapshots of all serializers in 
the Flink codebase, to be used by the migration tests. This script should be 
used every time we release a Flink major version.



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

Reply via email to