I think it is probably acceptable to prevent downgrades once a new feature is 
enabled, as the exposure risk is limited to that one feature. The user can test 
the new version to ensure everything else works satisfactorily before 
committing to this one feature.

A downgrade tool would also be possible to produce, but probably the additional 
utility is limited.

I think this particular feature is probably easy enough to maintain as 
permanently optional, simply maintaining two system tables: one for the old 
generation format, one for the new. So long as the user doesn’t use the new 
format, it remains forever downgradeable. Though perhaps one day we may want to 
force users to migrate, I don’t think there’s any rush, and the important thing 
to avoid is providing users no version buffer to escape new bugs – if a major 
version later we force upgrade, then they have a whole range of major versions 
to downgrade to that still support this feature (but perhaps avoid some other 
new issue)



From: Jacek Lewandowski <lewandowski.ja...@gmail.com>
Date: Tuesday, 26 October 2021 at 12:01
To: dev@cassandra.apache.org <dev@cassandra.apache.org>
Subject: Re: [DISCUSS] How to implement backward compatibility (CASSANDRA-17048)
Though, the user is unable to test the new feature without enabling it. And
when it is enabled, the user is unable to revert it.

- - -- --- ----- -------- -------------
Jacek Lewandowski


On Tue, Oct 26, 2021 at 12:54 PM Bowen Song <bo...@bso.ng.invalid> wrote:

> Personally, I would prefer a transition period in which the new feature
> is not enabled by default. This not only makes version upgrading easier,
> it also allows the user to stay on the old behaviour if they experience
> any issue with the new feature (e.g.: bugs in the new feature, or edge
> use cases / 3rd party tools depending on the old behaviour) until the
> issue is resolved.
>
> On 26/10/2021 10:21, Jacek Lewandowski wrote:
> > Hi,
> >
> > In short, we are discussing UUID based sstable generation identifiers in
> https://issues.apache.org/jira/browse/CASSANDRA-17048.
> >
> > The question which somehow hold us is support for downgrading. Long
> story short, when we generate new sstables with uuid based ids, they are
> not readable by older C* versions.
> >
> > 1. should we implement a downgrade tool? (it may be quite complex)
> > 2. should we let users enable the new uuid ids later when they are sure
> they will not downgrade in the future?
> >
> > Thanks,
> > Jacek
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> > For additional commands, e-mail: dev-h...@cassandra.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
>
>

Reply via email to