Hi Sergei!

From a user's perspective I support that position. It is quite friendly. It also gives users a very simple way out if we ever do a "bad release", until we release the hotfix patch. (not that we should be doing bad releases in general, but we know it happens)

From a server developer's perspective, it does come with some care needed when doing bug fixing, yet it really aligns well with the ideals of Semantic Versioning and that I like.

The challenge for this approach lies in testing it.
Let's take a fictitious example such as: 10.11.5 (GA) as an older version and 10.11.10 (GA).

Pragmatically, what we can do in our CI/CD is test downgrading from the current version to the previous point version. Doing it from the current version to all past versions would be rather expensive I would think.

So in this scenario, we test downgrade from 10.11.10 to 10.11.9 and it works fine. In the past we would have tested 10.11.9 downgrade 10.11.8 and it should've also worked fine.

Now, given this testing chain, can we guarantee 10.11.10 -> 10.11.5 is safe? Is this a transitive property? Probably not always, but very likely.

Another aspect of difficulty in testing is *what* are the actual requirements to be "downgrade safe"? Starting the server on a data dir is one thing. Ensuring all functionality is present is another. Additionally, ensuring no data incompatibilities exist is hard to test for.

Despite these potential challenges, I'm all for this approach as it makes our user's lives easier.

Vicentiu


On Tue, 1 Aug 2023 at 16:00, Sergei Golubchik via developers <developers@lists.mariadb.org> wrote:
Hi, Vicențiu,

Monty voiced his opinion too, by editing the knowledge base page
here: https://mariadb.com/kb/en/downgrading-between-major-versions-of-mariadb/

It seems that he prefers the "compromise approach", downgrade is
supported between versions that only differ in the third version
component (patch version) as long as both are RC or GA.

Opinions?

On Jul 29, Sergei Golubchik wrote:
> Hi, Vicențiu,
>
> There's a compromise approach - mariadb-upgrade is required (and thus
> downgrade does not work) between major versions, but mariadb-upgrade is
> not needed (and downgrade works) between minor versions.
>
> So, again, to summarize:
>
> Premise: if mariadb-upgrade is required between versions X and Y, the
> downgrade from Y to X is impossible
>
> * Option 1: mariadb-upgrade is never required, for any X and Y
>
> * Option 2: mariadb-upgrade may be required for any X and Y
>
> * Option 3: mariadb-upgrade is required when X and Y differ in the first
>   two components and not required if they differ only in the third
>   component
>
> On Jul 28, Sergei Golubchik wrote:
> > >
> > > Rather than offer a half-truth, I would us just take a clear
> > > stance. We either fully support downgrading between minor versions
> > > officially (which has implications on how we approach bug fixes,
> > > especially on the storage side), or we don't even encourage it at
> > > all, stating "at your own risk", or do a full dump and restore as
> > > the only recovery method.
> >
> > Yes, this is exactly what I meant in my email too. We should make a
> > decision and then it will determine what we'll do.

Regards,
Sergei
VP of MariaDB Server Engineering
and security@mariadb.org
_______________________________________________
developers mailing list -- developers@lists.mariadb.org
To unsubscribe send an email to developers-leave@lists.mariadb.org