>> What do we mean by stopping support for BC?
>
> It means we will NOT consider BC problems with those old releases.

If EOL means ignoring all BC considerations, then I'm -1 on these
proposals. But I don't think we need to go to those extremes.
I think we need to specify what BC guarantees we give on any version,
and then EOL policies will follow from that. The 3 big BC
considerations, as I see it, are:
1) Data on the bookie
2) Client wire protocol
3) Data shared between bookies and clients (i.e. zookeeper metadata)

For 1 we can have quite a short timeframe for EOL old software.
Bookies can be upgraded individually, and this is controlled by the
administrator.
For 2 we need a bit longer, because within an organisation there may
be many different versions of the client knocking around and it's hard
to get everyone to upgrade.
For 3 we can pretty much never have a hard break. If a cluster was
initialized with an old version, they must be able to able to upgrade
that cluster to the latest version of the software. Otherwise they
will stick with the old version forever.

> for example, the password and digest type was introduced at a very old
> release.
> There is code assuming ledgers might not have password or digest. However,
> the releases onwards would already have those fields.
> If we stop supporting those old version, we can remove that special BC
> code, which will make code clearer to maintain.

This code is in the client. I'm fine with stopping support for all
clients older than a certain era. However, yahoo is still on 4.3, so
we should at least support back that far until they've been migrated
forward.

>> The BC
>> tests should help in this regard, but we need keep testing scenarios
>> where the original cluster was brought up in the oldest version
>> (4.1.0).
>
> If we stop supporting 4.1.0, we don't need to test those scenarios. We
> started with from the lowest version we are claiming to support.

Are we supporting the software or data that was created with that
software? That's two different things. Sure, we're not going to fix
bugs on pre-4.4.0 releases, but there are pre-4.4.0 clusters running
in the wild (yahoo being an example), and they have to be usable with
the latest software, otherwise they will never upgrade. I had this in
my previous job where they made a big breaking BC change in the
metadata between two versions. While it did allow us to delete a lot
of code, we ended up supporting two codebases forever, as customers
were unable to upgrade to the latest version.

> That is the whole point of having EOL.
It's not clear what the point of having EOL is, since we don't have a
clearly defined EOL policy nor BC policy.

-Ivan

Reply via email to