flink-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tzu-Li (Gordon) Tai" <tzuli...@apache.org>
Subject Re: [DISCUSS] Backwards compatibility policy.
Date Mon, 22 May 2017 05:39:34 GMT
Hi Kostas,

Thanks for bringing this up!
I think it is reasonable to keep this coherent with our timely-based release model guarantees.

With the timely-based release model, there is a guarantee that the current latest major version
and the previous one is supported.
For example, upon releasing 1.3, only 1.3 and 1.2 will still be supported by the community
for any required bug fixes.
I think this was initially decided not only to ease old version maintenance efforts for the
community, but also as a means to let users upgrade their Flink versions in a reasonable pace
(at least every other major release.)

Therefore, I think its also reasonable to also clearly state that savepoints compatibility
will only be guaranteed for the previous release.
Although I think at the moment almost, if not all, of the current code still maintains compatibility
for 1.1, in the long run these migration codes would definitely start to pile up and pollute
the actual codebase if we try to always be compatible with all previous versions.


On 21 May 2017 at 2:24:53 AM, Kostas Kloudas (k.kloudas@data-artisans.com) wrote:

Hi Chesnay, 

I believe that for APIs we already have a pretty clear policy with the annotations. 
I was referring to savepoints and state related backwards compatibility. 

> On May 20, 2017, at 7:20 PM, Chesnay Schepler <chesnay@apache.org> wrote: 
> I think it would be a good to clarify what kind of backwards-compatibilitiy we're talking
about here. As in are we talking about APIs or savepoints? 
> On 20.05.2017 19:09, Kostas Kloudas wrote: 
>> Hi all, 
>> As we are getting closer to releasing Flink-1.3, I would like to open a discussion

>> on how far back we provide backwards compatibility for. 
>> The reason for opening the discussion is that i) for the users and for the 
>> adoption of the project, it is good to have an explicitely stated policy that implies

>> certain guarantees, and ii) keeping code and tests for backwards compatibility with

>> Flink-1.1 does not offer much. On the contrary, I think that it leads to: 
>> 1) dead or ugly code in the codebase, e.g. deprecated class fields that could go
away and 
>> ugly if() loops (see aligned window operators that were deprecated in 1.2 and are
>> normal windows), etc 
>> 2) expensive tests (as, normally, they read from a savepoint) 
>> 3) binary files in the codebase for holding the aforementioned savepoints 
>> My proposal for such a policy would be to offer backwards compatibility for one previous
>> This means that 1.3 will be compatible with 1.2 (not 1.1). This still allows a clear

>> "backwards compatibility" path when jumping versions (a user that goes 
>> from 1.1 to 1.3 can go initially 1.1 -> 1.2, take a savepoint, and then 1.2 ->
>> while also allowing us to clean up the codebase a bit. 
>> What do you think? 
>> Kostas 

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message