Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-30 Thread Hangxiang Yu
gt; > proposal also looks good to me. > > Thanks Hangxiang for driving this. > > Best, > > Yun Gao > > -- > > From:Yuan Mei > > Send Time:2022 Oct. 26 (Wed.) 12:20 > > To:dev > > Subject

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-28 Thread Dawid Wysakowicz
:2022 Oct. 26 (Wed.) 12:20 To:dev Subject:Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility Hey Huangxiang, The section of `Rejected Alternatives` may also need an update. Current plan sounds like a reasonable one. I am fine with it. Thanks for driving this. Best Yuan On Tue, Oct 25

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-27 Thread Yun Gao
] FLIP-263: Improve resolving schema compatibility Hey Huangxiang, The section of `Rejected Alternatives` may also need an update. Current plan sounds like a reasonable one. I am fine with it. Thanks for driving this. Best Yuan On Tue, Oct 25, 2022 at 5:11 PM Hangxiang Yu wrote: > (Resend the m

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-25 Thread Yuan Mei
Hey Huangxiang, The section of `Rejected Alternatives` may also need an update. Current plan sounds like a reasonable one. I am fine with it. Thanks for driving this. Best Yuan On Tue, Oct 25, 2022 at 5:11 PM Hangxiang Yu wrote: > (Resend the mail to fix the format issue) > Hi, everyone. >

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-25 Thread Hangxiang Yu
(Resend the mail to fix the format issue) Hi, everyone. Thanks for your suggestions! Let me summarize the remaining questions in the thread and share my ideas based on your suggestions: 1. Should we put the new opposite interface in TypeSerializer or TypeSerializerSnapshot ? Just as I

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-24 Thread Hangxiang Yu
Hi, everyone. Thanks for your suggestions! Let me summarize the remaining questions in the thread and share my ideas based on your suggestions: 1. Should we put the new opposite interface in TypeSerializer or TypeSerializerSnapshot ? Just as I replied to Dawid, I'd like to put it in

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-24 Thread Yuan Mei
Hey Hangxiang, Thanks for driving this issue. I've read through all the discussions and suggestions in this thread, and here is my take: 1. I agree that the compatibility check should be done in the opposite direction. The current interface *causes some real issues* for users using their own

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-20 Thread godfrey he
Hi Hangxiang, Dawid, I also prefer to add method into TypeSerializerSnapshot, which looks more natural. TypeSerializerSnapshot has `Version` concept, which also can be used for compatibility. ` TypeSerializerSnapshot { TypeSerializerSchemaCompatibility resolveSchemaCompatibility(

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-20 Thread Dawid Wysakowicz
That's the final status we will arrive at. IIUC, we cannot just remove the original method but just mark it as deprecated so two methods have to exist together in the short term. Users may also need to migrate their own external serializers which is a long run. I'd like to

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-18 Thread Hangxiang Yu
Hi, Dawid. Thanks for your reply. Should we introduce the new method to the TypeSerializerSnapshot instead? You provided a valuable option, let me try to list the benefit and cost. benefit: 1. TypeSerializerSnapshot still owns the responsibility of resolving schema compatibility so

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-17 Thread Dawid Wysakowicz
Hi Han, I think in principle your proposal makes sense and the compatibility check indeed should be done in the opposite direction. However, I have two suggestions: 1. Should we introduce the new method to the TypeSerializerSnapshot instead? E.g.    TypeSerializerSnapshot {       

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-16 Thread Hangxiang Yu
Hi, Zakelly. Good point. +1 it makes code more straightforward. I have modified the FLIP to make the new interface call the old interface as default. On Fri, Oct 14, 2022 at 4:46 PM Zakelly Lan wrote: > Hi Hangxiang, > > I'm ok with your proposed Step 2, but I'm afraid you missed my point. >

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-16 Thread Hangxiang Yu
Hi, Han. Both the old method and the new method can get previous and new inner information. The new serializer will decide it just like the old serializer did before. The method just specify the schema compatibility result so that other behaviours is same as before. On Fri, Oct 14, 2022 at

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-14 Thread Zakelly Lan
Hi Hangxiang, I'm ok with your proposed Step 2, but I'm afraid you missed my point. As I described in the option 2, it is unnecessary to call the new and old interface both. Instead of that, replace any use of the old interface with the new interface, and call the old interface in the default

RE: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-13 Thread Han Yin
Hi Hangxiang, Thanks for the proposal. It seems more reasonable to let the new serializer claim the compatibility in the cases you mentioned. I have but one question here. What happens in the case of “compatibleAfterMigration” after we completely reverse the direction (in step 3)? To be

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-13 Thread Hangxiang Yu
Hi, Zakelly. Thanks for your suggestion and I think it makes sense. I think both two options should be adopted. The option 2 is just what I mentioned in step 2. At the same time, we still need option 1 because we should make sure the existing user code could run normally without modifying any

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-12 Thread yanfei lei
Hi Hangxiang, Thanks for raising the discussion, +1 for reversing the direction of resolving schema compatibility. As you described, in 'Step 1', Typeserializer#resolveSchemaCompatibility will return TYPE.INCOMPATIBLE default, Typeserializer#resolveSchemaCompatibility is a default method; in

Re: [DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-12 Thread Zakelly Lan
Hi Hangxiang, Thanks for driving this. It is reasonable to let the new serializer claim its compatibility with the old serializer. However, I think there is a little confusion as you described in your proposed change 'Step 1'. You mean that we let the new serializer check the compatibility first,

[DISCUSS] FLIP-263: Improve resolving schema compatibility

2022-10-12 Thread Hangxiang Yu
Dear Flink developers, I would like to start a discussion thread on FLIP-263[1] proposing to improve the usability of resolving schema compatibility. Currently, the place for compatibility checks is TypeSerializerSnapshot#resolveSchemaCompatibility which belongs to the old serializer, There are