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)