Hi all,

Here is first test for compatibility: https://github.com/apache/paimon/pull/3404

Best,
Jingsong

On Tue, May 28, 2024 at 12:01 PM Jingsong Li <jingsongl...@gmail.com> wrote:
>
> Hi Xintong,
>
> @Public annotation is for users.
>
> @StateCompatibility annotation is for the developers. Furthermore, we
> can have @StorageCompatibility.
>
> I'm not sure if there can be some mechanism, such as automatically
> collecting changed files during CI and labeling them.
>
> But we should add **all** compatibility tests first, and then see if
> it can work very well.
>
> Best,
> Jingsong
>
> On Mon, May 27, 2024 at 7:33 PM Xintong Song <tonysong...@gmail.com> wrote:
> >
> > +1 for providing state compatibility guarantees for Flink jobs.
> >
> > +1 for leveraging tests to prevent accidental state compatibility breaking
> > changes, as Yong suggested.
> >
> >
> > Jingsong, it's not very clear to me what are the semantics of the proposed
> > new annotation. I'm not saying we should not introduce it. Just trying to
> > be more specific. E.g., is it equivalent to `@Public` in terms of
> > compatibility except that the annotated classes are not public interfaces?
> > Any rule of thumb on when should developers annotate new classes with this,
> > and what needs to be done when modifying a class with such an annotation?
> >
> >
> > If this annotation is only to bring state compatibility to developers's
> > attention, I wonder if the above mentioned compatibility test can already
> > serve that purpose?
> >
> >
> > Best,
> >
> > Xintong
> >
> >
> >
> > On Mon, May 27, 2024 at 3:55 PM Jingsong Li <jingsongl...@gmail.com> wrote:
> >
> > > Thanks all for your feedback.
> > >
> > > Yong, I think we should add tests to cover state compatibility. We
> > > should store old version serialized bytes in our test resources. I
> > > think unit test is OK.
> > >
> > > Best,
> > > Jingsong
> > >
> > > On Mon, May 27, 2024 at 3:45 PM Yong Fang <zjur...@gmail.com> wrote:
> > > >
> > > > Thanks Jinsong for initiating this discussion. I agree that it's very
> > > > important to upgrade the Paimon version when we restart our flink jobs
> > > with
> > > > the new Paimon version. Is it necessary for Paimon to introduce some 
> > > > unit
> > > > tests or e2e tests in addition to annotations to enforce compatibility?
> > > >
> > > > Best,
> > > > Fang Yong
> > > >
> > > > On Mon, May 27, 2024 at 3:25 PM yu zelin <yuzelin....@gmail.com> wrote:
> > > >
> > > > > Hi Jingsong,
> > > > >
> > > > > +1 for this. Just find a state compatibility problem:
> > > > > https://github.com/apache/paimon/issues/3401.
> > > > > It's important to ensure users can stop a Flink job which uses lower
> > > > > version Paimon and restart it with latest version Paimon.
> > > > >
> > > > > Best regards,
> > > > > Zelin Yu
> > > > >
> > > > > On Mon, May 27, 2024 at 2:32 PM Jingsong Li <jingsongl...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hi Paimon Dev,
> > > > > >
> > > > > > We have made many changes that do not guarantee the compatibility of
> > > > > > Flink job state, but in fact, we can guarantee it. We only need to
> > > > > > consider the design of VersionedSerializer when making 
> > > > > > modifications.
> > > > > >
> > > > > > I plan to introduce an annotation that reminds contributors to 
> > > > > > ensure
> > > > > > compatibility when making subsequent modifications to annotated
> > > > > > classes.
> > > > > >
> > > > > > For example, StateCompatibility annotation.
> > > > > >
> > > > > > What do you think?
> > > > > >
> > > > > > Best,
> > > > > > Jingsong
> > > > > >
> > > > >
> > >

Reply via email to