Historical background and differences between MySQL and MariaDB version management

In this article, we'll explore the current state and historical background of how MySQL and MariaDB service lifecycles and versions are managed.

By Peter Zaitsev

Source of this article: Percona official website blog

  • Produced by the Ecoson open source community.

It should be noted that both MySQL and MariaDB have community editions and enterprise editions. For MySQL, both versions are provided by the same company (Oracle) and follow the same version numbering system, with the Enterprise Edition containing more features. For MariaDB, the Community Edition is provided by the MariaDB Foundation, while the Enterprise Edition is provided by MariaDB PLC, with a unique life cycle and function configuration. For simplicity, we will focus on the community edition.

MariaDB

As you probably know, MariaDB started out as a fork of MySQL. early days. The development patterns of the two are similar. But starting with MariaDB version 10 in 2014 , the situation is very different. This time, MariaDB no longer matches the MySQL version, dropping the previous schema that was consistent with MySQL 5.1 and MySQL 5.5 versions.

Having a separate versioning system allows MariaDB to innovate independently at a faster pace without misleading users by having the same version number as MySQL. For example, MariaDB used to have versions 5.2 and 5.3, but MySQL did not have corresponding version numbers.

MariaDB is growing rapidly. Then MariaDB 10.1 was released in 2015, and MariaDB 10.2 was released in 2017. Thereafter, major releases are made every 1-2 years, with MariaDB version 10.6 released in 2021. However, each release comes with a 5-year long-term support period, which places an additional burden on the engineering team.

In order to solve this problem, MariaDB will implement the "innovative version model" from the end of 2021 . Similar to the Ubuntu Linux release model, a short-term support release (supported for 1 year) is released quarterly, with optional LTS releases (at least 5 years). Short-term support releases and long-term support releases follow the same version numbering scheme.

Recently, MariaDB also changed the major version from 10 to 11. Product Manager Kaj Arno explained that this was mainly due to the planned complex modifications to the optimizer and its cost model. At present, there is no LTS version for the new 11 series. The latest LTS version is MariaDB 10.11 , and the support cycle is until February 2028.

MySQL

Initially, under the leadership of Oracle, MySQL continued to follow the original release cycle. Every few years, there are major feature releases, and there are minor "bug fixes only" releases. This is the case for MySQL 5.5, MySQL 5.6, and MySQL 5.7.

The benefit of this release cycle is stability! The risk of minor version upgrades is fairly low, and if a rollback is required, it can be done by quickly swapping binaries without any action on the data. However, as with everything, there are trade-offs. The downside of this approach is the slow rollout of new features and the large changes between major releases, making upgrading potentially confusing and time-consuming.

In MySQL 8 a huge change has taken place. MySQL 8 looks like a "long term iteration". While the original GA release was released in April 2018, we haven't seen a new major release in five years! This doesn't mean that MySQL 8 isn't innovative; rather, MySQL 8 is very different now than it was in 2018, as in each minor release, new features are introduced and bugs fixed.

If you like getting new features faster, you'll love this new release method. In theory, this also means that these "feature release" upgrades are less risky, requiring only a few months of development work compared to years of work for major releases in the past. However, this is not the case, as some releases contain new features that are buggy enough to cause a release recall. To make matters worse, once MySQL 8 is upgraded to a new version, there is no guarantee that the previous version can operate on the same data.

The MySQL team also recognizes issues with the way MySQL 8 is released; therefore, a new release model will be introduced next . This model introduces Innovation releases , released approximately quarterly, and only supports the latest Innovation release (i.e., any bug fixes are rolled out with new features and rolled out as the next Innovation release, similar to how MySQL 8.0 operates now ). The other version is the LTS version , which is released every few years and supported by Oracle for 8 years (5 years standard + 3 years extended).

MySQL LTS releases operate in a similar way to MySQL prior to MySQL 8. Innovation releases are somewhat similar to "milestone releases" that the MySQL team has used at some point, but milestone releases are not considered "production-ready" but for development and preview releases, and innovation releases are considered "production-quality".

MySQL 8.0 has a special place in this release model. Currently, it's basically an innovation style release, but with the release of MySQL 8.0.34, it will be a bugfix-only LTS release.

difference

Interestingly, both communities seem to recognize that we need both high-velocity innovation and stability , but can't really have both in the same release series. Support and maintenance costs also need to be contained; therefore, one cannot have too many actively supported versions.

Both MariaDB and MySQL have concluded that they need both LTS releases and releases that focus on speed of innovation.

LTS release cadences for MySQL and MariaDB are also likely to be similar. MySQL's LTS releases are released approximately every two years, similar to MariaDB's "at least every other year". The difference is that MariaDB also works with major Linux distributions to align MariaDB LTS releases with the Linux distribution LTS release schedule, whereas MySQL does not state any such goals.

Where there is a difference is in how non-LTS releases are handled.

While "bug fixes only" releases are released for a limited time, MariaDB goes the "short-term support" route, while MySQL chooses the path of supporting rolling innovation releases, where bug fixes are only included in the latest innovation release. It will be interesting to see how these options play out:

  • MariaDB's approach is more "user-friendly" because it gives users more control over when to upgrade to the next feature release.
  • MySQL's approach reduces the work required to support versions.

Another important difference is what types of upgrades are supported.

  • MySQL only supports upgrading to the next major version (ie, you cannot upgrade directly from MySQL 5.6 to MySQL 8).
  • MariaDB supports skipping major versions in upgrades.

For more technical articles, please visit: https://opensource.actionsky.com/

About SQLE

The SQLE of the Akson open source community is a SQL auditing tool for database users and managers, which supports multi-scenario auditing, supports standardized online processes, natively supports MySQL auditing, and has scalable database types.

SQLE get

type address
Repository https://github.com/actiontech/sqle
document https://actiontech.github.io/sqle-docs/
release news https://github.com/actiontech/sqle/releases
Data audit plug-in development documentation https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
Redis 7.2.0 was released, the most far-reaching version Chinese programmers refused to write gambling programs, 14 teeth were pulled out, and 88% of the whole body was damaged. Flutter 3.13 was released. System Initiative announced that all its software would be open source. The first large-scale independent App appeared , Grace changed its name to "Doubao" Spring 6.1 is compatible with virtual threads and JDK 21 Linux tablet StarLite 5: default Ubuntu, 12.5-inch Chrome 116 officially released Red Hat redeployed desktop Linux development, the main developer was transferred away Kubernetes 1.28 officially released
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/actiontechoss/blog/10100495