2018-02-01 13:29 GMT+01:00 Sijie Guo <guosi...@gmail.com>: > On Thu, Feb 1, 2018 at 2:51 AM, Ivan Kelly <iv...@apache.org> wrote: > > > > We have switched to Time Based Release Schedule > > > <https://cwiki.apache.org/confluence/display/BOOKKEEPER/ > > BP-13+-+Time+Based+Release+Plan> > > > since > > > 4.6.0 and we have 3 successful releases since then - 4.5.1, 4.6.0 and > > > 4.6.1. And the 4.7.0 release is coming in a month or so. According to > > > BP-13, we need to enforce an EOL policy for our releases: keep the > > releases > > > in one year and mark the releases older than one year as EOL, no BC > would > > > be considered with those versions. > > Perhaps we should define an EOL policy before EOLing releases. As part > > of this, we should define what we support for BC and what we don't. > > For example, do we support BC on all ledger managers? Just > > hierarchical and flat? > > > > > I would like to propose we start enforcing EOL at 4.7.0 release: > > +1 > > > > > - we only keep all the releases higher than 4.4.0 (4.4.0 was released > > about > > > one year and half ago). > > inclusive or exclusive of 4.4.0? > > > > Inclusive. > > > > > > - stop supporting BC with releases smaller than 4.4.0. This includes: > > move > > > the documentation of those releases as archived, remove them from BC > > tests, > > > delete the legacy code that was there for supporting BC with these > > releases. > > What do we mean by stopping support for BC? > > > It means we will NOT consider BC problems with those old releases. > > > > We haven't broken client > > compatibility since 4.1.0. I don't think we have any special code for > > handling it. But I think there is special code for handling old ledger > > metadata formats (which haven't been upgrades). If someone started > > their cluster on version 4.1.0, and upgraded version by version to > > 4.6, then the ledger metadata from 4.1.0 will still be there, and > > their 4.6.0 client will be depending on the legacy code paths to > > function. > > I don't think it's as simple as just removing the legacy > > code, and it's something we need to be very careful about. > > > It is case by case. > > 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. > > > > 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. > That is the whole point of having EOL. >
I agree with Ivan, there can be old clusters with legacy metadata. We should provide some tool to upgrade ZK (meta) data to the latest version. I think that local Bookie data are not a issue as bookie usually automatically upgrades data on first boot with new version (I can be wrong, I am following BK only since 4.3) Enrico > > > > > > -Ivan > > >