Hi,

Thanks for the support. It looks like nobody objects to this proposal, so I
will start a formal vote.

Best,
Piotrek

pt., 21 paź 2022 o 08:24 Timo Walther <[email protected]> napisał(a):

> Makes sense to me. The serializer stack is pretty complex right now, the
> more legacy we remove the better.
>
> Regards,
> Timo
>
>
> On 20.10.22 12:49, Chesnay Schepler wrote:
> > +1
> >
> > Sounds like a good reason to drop these long-deprecated APIs.
> >
> > On 19/10/2022 15:13, Piotr Nowojski wrote:
> >> Hi devs,
> >>
> >> I would like to open a discussion to remove the long deprecated
> >> (@PublicEvolving) TypeSerializerConfigSnapshot class [1] and the related
> >> code.
> >>
> >> 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 [2]. 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 [3], 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 [4] and [5]. 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 a side effect, we could also drop support for some of the legacy
> >> metadata serializers from LegacyStateMetaInfoReaders and potentially
> >> other
> >> places that we are keeping for the sake of compatibility with old
> >> savepoints.
> >>
> >> What do you think?
> >>
> >> Best,
> >> Piotrek
> >>
> >> [1]
> >>
> https://nightlies.apache.org/flink/flink-docs-master/api/java/org/apache/flink/api/common/typeutils/TypeSerializerConfigSnapshot.html
> >> [2] https://issues.apache.org/jira/browse/FLINK-29379
> >> [3] https://issues.apache.org/jira/browse/FLINK-9377
> >> [4] https://issues.apache.org/jira/browse/FLINK-9376
> >> [5] https://issues.apache.org/jira/browse/FLINK-11323
> >>
> >
>
>

Reply via email to