Hi Xintong!

The PR is basically ready and CI almost passes (e2es work but there were
some minor checkstyle and related errors).
I will go through it and also test it manually a little today / tomorrow.

Unless something very unexpected comes up during the review and testing I
would expect to be able to merge this by Friday to the master.

Regarding the compatibility/migration tooling, I think this could be
possible based on what I have read so far but I am not completely sure how
the 2 different Kryo versions will interplay in the tooling.
Maybe Nick or Kurt can chime in here but I imagine we could move the
backward compatibility logic into this tool that was originally built into
the Kryo upgrade PR directly.

Cheers
Gyula

On Wed, Feb 26, 2025 at 1:07 PM Xintong Song <tonysong...@gmail.com> wrote:

> Hi Gyula,
>
> Sorry for chime in late, just noticed the thread. And thanks for bringing
> this up.
>
> As one of the release managers, +1 for including this in Flink 2.0.
>
>    - Flink 2.0 does not guarantee state compatibility. We've mentioned that
>    in the 2.0-preview release announcement. In addition to the Scala
> upgrading
>    as Martijn mentioned, we also introduced built-in serializer for
>    collections types as default, which is also compatibility breaking.
>    - Although the feature freeze date has already passed, I think there's a
>    good reason to make this effort an exception. We've been preparing this
>    release for ~2 years. Why not wait for another 1-2 weeks, if that really
>    helps?
>
> IIRC, this has come up somewhere when we plan the release, and was not
> included only because no one was driving the effort. So it's really nice to
> see it being picked up.
>
> Just for managing the expectation, do we have an estimation on how long
> this may take?
>
> A related topic is, can we provide a state migration tool to help users
> migrate across incompatible checkpoints / savepoints? I.e., deserialize the
> states into in-memory objects with old serialization setups, and serialize
> them with new setups. Such a tool can be helpful not only in a
> state-incompatible major version bump, but also in scenarios such as:
>
>    - The user wants to change the serialization setups
>    - State incompatibility due to user logic change, which the user knows
>    how to deal with but lacks methods to do it. E.g., adding a new field to
>    the state data type, where a certain default value can be applied to the
>    previous states.
>
> I'm not entirely sure whether this can work or not. Just lack the capacity
> to look into it.
>
> Best,
>
> Xintong
>
>
>
> On Wed, Feb 26, 2025 at 6:02 PM Gyula Fóra <gyula.f...@gmail.com> wrote:
>
> > Thank you all for your feedback.
> >
> > Let's leave this open for another day and unless there is any negative
> > feedback we can go ahead with merging the PR to bump the version for 2.0
> >
> > Cheers
> > Gyula
> >
> > On Wed, Feb 26, 2025 at 10:56 AM Jing Ge <j...@ververica.com.invalid>
> > wrote:
> >
> > > Thanks for bringing this to our attention! I would choose simplicity
> over
> > > backward compatibility given Flink 2.0 offers the opportunity for
> > breaking
> > > changes. We will benefit from it from long-term's perspective. +1 for
> > > upgrading Kryo in Flink 2.0 in a non compatible way.
> > >
> > > Best regards,
> > > Jing
> > >
> > > On Wed, Feb 26, 2025 at 5:37 AM Nick Nezis <nickne...@apache.org>
> wrote:
> > >
> > > > Thanks Martijn.
> > > >
> > > > That's really great context. In that case, then I'll change my
> previous
> > > > opinion. I agree that we should proceed with the simpler pull request
> > and
> > > > get it into the Flink 2.0 release.
> > > >
> > > > On 2025/02/25 14:06:20 Martijn Visser wrote:
> > > > > Hi all,
> > > > >
> > > > > For the record, I don't think we have a guarantee around backwards
> > > > > compatibility for Flink 2.0 anyway, given that we upgraded Scala to
> > the
> > > > > latest version (because of the bump to JDK 17) and that will
> > > potentially
> > > > > break savepoints when using Scala. So I think we should also put
> this
> > > in
> > > > > for Flink 2.0, and just have the right release notes/documentation
> > for
> > > > this.
> > > > >
> > > > > Best regards,
> > > > >
> > > > > Martijn
> > > > >
> > > > > On Tue, Feb 25, 2025 at 3:31 AM Zhanghao Chen <
> > > zhanghao.c...@outlook.com
> > > > >
> > > > > wrote:
> > > > >
> > > > > > Hi Gyula,
> > > > > >
> > > > > > Thanks for bringing this up! Definitely +1 for upgrading Kryo in
> > > Flink
> > > > > > 2.0. As a side note, it might be useful to introduce customizable
> > > > generic
> > > > > > serializer support like Spark, where you can switch to your own
> > > > serializer
> > > > > > via the "spark.serializer" [1] option. Users starting new
> > > applications
> > > > can
> > > > > > introduce their own serialization stack in this case to resolve
> > Java
> > > > > > compatibility issue is this case or for other performance issues.
> > > > > >
> > > > > > [1] https://spark.apache.org/docs/latest/configuration.html
> > > > > >
> > > > > >
> > > > > > Best,
> > > > > > Zhanghao Chen
> > > > > > ________________________________
> > > > > > From: Gyula F?ra <gyula.f...@gmail.com>
> > > > > > Sent: Friday, February 21, 2025 14:04
> > > > > > To: dev <dev@flink.apache.org>
> > > > > > Subject: [DISCUSSION] Upgrade to Kryo 5 for Flink 2.0
> > > > > >
> > > > > > Hey all!
> > > > > >
> > > > > > I would like to rekindle this discussion as it seems that it has
> > > > stalled
> > > > > > several times in the past and we are nearing the point in time
> > where
> > > > the
> > > > > > decision has to be made with regards to 2.0. (we are already a
> bit
> > > > late but
> > > > > > nevermind)
> > > > > >
> > > > > > There has been numerous requests and efforts to upgrade Kryo to
> > > better
> > > > > > support newer Java versions and Java native types. I think we can
> > all
> > > > agree
> > > > > > that this change is inevitable one way or another.
> > > > > >
> > > > > > The latest JIRA for this seems to be:
> > > > > > https://issues.apache.org/jira/browse/FLINK-3154
> > > > > >
> > > > > > There is even an open PR that accomplishes this (currently in a
> > state
> > > > > > incompatible way) but based on the discussion it seems that with
> > some
> > > > extra
> > > > > > complexity compatibility can even be preserved by having both the
> > old
> > > > and
> > > > > > new Kryo versions active at the same time.
> > > > > >
> > > > > > The main question here is whether state compatibility is
> important
> > > for
> > > > 2.0
> > > > > > with this regard or we want to bite the bullet and make this
> > upgrade
> > > > once
> > > > > > and for all.
> > > > > >
> > > > > > Cheers,
> > > > > > Gyula
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to