[
https://issues.apache.org/jira/browse/FLINK-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tzu-Li (Gordon) Tai updated FLINK-6190:
---------------------------------------
Description:
In order for serializers to be able to be reconfigured on restore, we need
knowledge of the previous serializer configurations, e.g. what types were
registered, with which specific / default serializers, and especially for Kryo,
the order they were registered.
For this, we will need serializer configuration metainfo to be self-contained
within the written state.
For the implementation, we propose the following:
- Have a new separate {{SerializersConfig}} class that is extracted from
{{ExecutionConfig}}. This new class should contain only the serializer-related
configurations (e.g., {{registeredKryoTypes}}, {{registeredPojoTypes}}, etc.).
- Introduce {{SerializersConfigSerializationProxy}}, which is in charge of
serializing the current {{SerializersConfig}} when writing state to streams.
This proxy defines the the serialized format of serializer configurations,
therefore should be a {{VersionedIOReadableWritable}} as we may change the
format / information written in the future.
- Add {{SerializersConfigSerializationProxy}} into state backends serialization
proxies (e.g. {{KeyedBackendSerializationProxy}}) so that the serializer
configuration is written into state. Need to additionally make sure backwards
compatibility of previous-version backend serialization proxies.
was:
In order for serializers to be able to be reconfigured on restore, we need
knowledge of the previous serializer configurations, e.g. what types were
registered, with which specific / default serializers, and especially for Kryo,
the order they were registered.
For this, we will need serializer configuration metainfo to be self-contained
within the written state.
For the implementation, we propose the following:
- Have a new separate `SerializersConfig` class that is extracted from
`ExecutionConfig`. This new class should contain only the serializer-related
configurations (e.g., `registeredKryoTypes`, `registeredPojoTypes`, etc.).
- Introduce `SerializersConfigSerializationProxy`, which is in charge of
serializing the current `SerializersConfig` when writing state to streams. This
proxy defines the the serialized format of serializer configurations, therefore
should be a `VersionedIOReadableWritable` as we may change the format /
information written in the future.
- Add `SerializersConfigSerializationProxy` into state backends serialization
proxies (e.g. `KeyedBackendSerializationProxy`) so that the serializer
configuration is written into state. Need to additionally make sure backwards
compatibility of previous-version backend serialization proxies.
> Write "Serializer Configurations" metainfo along with state
> -----------------------------------------------------------
>
> Key: FLINK-6190
> URL: https://issues.apache.org/jira/browse/FLINK-6190
> Project: Flink
> Issue Type: Sub-task
> Components: State Backends, Checkpointing, Type Serialization System
> Reporter: Tzu-Li (Gordon) Tai
> Assignee: Tzu-Li (Gordon) Tai
>
> In order for serializers to be able to be reconfigured on restore, we need
> knowledge of the previous serializer configurations, e.g. what types were
> registered, with which specific / default serializers, and especially for
> Kryo, the order they were registered.
> For this, we will need serializer configuration metainfo to be self-contained
> within the written state.
> For the implementation, we propose the following:
> - Have a new separate {{SerializersConfig}} class that is extracted from
> {{ExecutionConfig}}. This new class should contain only the
> serializer-related configurations (e.g., {{registeredKryoTypes}},
> {{registeredPojoTypes}}, etc.).
> - Introduce {{SerializersConfigSerializationProxy}}, which is in charge of
> serializing the current {{SerializersConfig}} when writing state to streams.
> This proxy defines the the serialized format of serializer configurations,
> therefore should be a {{VersionedIOReadableWritable}} as we may change the
> format / information written in the future.
> - Add {{SerializersConfigSerializationProxy}} into state backends
> serialization proxies (e.g. {{KeyedBackendSerializationProxy}}) so that the
> serializer configuration is written into state. Need to additionally make
> sure backwards compatibility of previous-version backend serialization
> proxies.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)