[ 
https://issues.apache.org/jira/browse/FLINK-29807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Piotr Nowojski updated FLINK-29807:
-----------------------------------
    Release Note: 
Savepoints using `TypeSerializerConfigSnapshot` are no longer supported. That 
means, all savepoints from Flink < 1.8.0 are no longer supported. Furthermore, 
savepoints from Flink < 1.17.0 created with custom serialiser using deprecated 
since Flink 1.8.0 class `TypeSerializerConfigSnapshot` are also no longer 
supported.

If you are only using built-in serialisers (Pojo, Kryo, Avro, Tuple, ...), and 
your savepoint is from 1.8.0 <= Flink, you don't have to do anything.
If you are only using built-in serialisers (Pojo, Kryo, Avro, Tuple, ...), and 
your savepoint is from Flink < 1.8.0, please first upgrade your job to 1.8.x <= 
Flink <= 1.16.x, before upgrading in the second step to Flink >= 1.17.x.
If previously you were using a custom serialiser that depends on 
`TypeSerializerConfigSnapshot`, please first while still using 1.8.x <= Flink 
<= 1.16.x upgrade your serialiser to `TypeSerializerSnapshot`, take a savepoint 
and restore from that savepoint in Flink >= 1.7.0

> Drop TypeSerializerConfigSnapshot and savepoint support from Flink versions < 
> 1.8.0
> -----------------------------------------------------------------------------------
>
>                 Key: FLINK-29807
>                 URL: https://issues.apache.org/jira/browse/FLINK-29807
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Checkpointing
>    Affects Versions: 1.17
>            Reporter: Piotr Nowojski
>            Assignee: Piotr Nowojski
>            Priority: Major
>             Fix For: 1.17
>
>
> The motivation behind this move is two fold. One reason is that it 
> complicates our code base unnecessarily and creates confusion on how to 
> actually implement custom serializers. The immediate reason is that I wanted 
> to clean up Flink's configuration stack a bit and refactor the 
> ExecutionConfig class FLINK-29379. This refactor would keep the API 
> compatibility of the ExecutionConfig, but it would break savepoint 
> compatibility with snapshots written with some of the old serializers, which 
> had ExecutionConfig as a field and were serialized in the snapshot. This 
> issue has been resolved by the introduction of TypeSerializerSnapshot in 
> Flink 1.7 FLINK-9377, where serializers are no longer part of the snapshot.
> TypeSerializerConfigSnapshot has been deprecated and no longer used by 
> built-in serializers since Flink 1.8 FLINK-9376 and FLINK-11323. Users were 
> encouraged to migrate to TypeSerializerSnapshot since then with their own 
> custom serializers. That has been plenty of time for the migration.
> This proposal would have the following impact for the users:
> 1. we would drop support for recovery from savepoints taken with Flink < 
> 1.7.0 for all built in types serializers
> 2. we would drop support for recovery from savepoints taken with Flink < 
> 1.8.0 for built in kryo serializers
> 3. we would drop support for recovery from savepoints taken with Flink < 1.17 
> for custom serializers using deprecated TypeSerializerConfigSnapshot
> 1. and 2. would have a simple migration path. Users migrating from those old 
> savepoints would have to first start his job using a Flink version from the 
> [1.8, 1.16] range, and take a new savepoint that would be compatible with 
> Flink 1.17.
> 3. This is a bit more problematic, because users would have to first migrate 
> their own custom serializers to use TypeSerializerSnapshot (using a Flink 
> version from the [1.8, 1.16]), take a savepoint, and only then migrate to 
> Flink 1.17. However users had already 4 years to migrate, which in my opinion 
> has been plenty of time to do so.
> *As discussed and vote is currently in progress:* 
> https://lists.apache.org/thread/x5d0p08pf2wx47njogsgqct0k5rpfrl4



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to