Today, we announced a new release model for MariaDB Community Server that increases the pace of new features we’re able to deliver to the millions of MariaDB users around the world. We’re excited to start rolling out this new model immediately, starting with MariaDB Community Server 10.7, which reached RC status a month ago and includes several important new features. By next week, community members will also get a sneak peek at features for MariaDB Community Server 10.8, and a RC release is expected in the new year. Our hope is that the quicker pace of feature delivery lets the community take advantage of the latest, cutting-edge database trends immediately without having to wait years between new release series.
In addition to developing MariaDB Enterprise and MariaDB SkySQL for customers that have mission critical workload requirements, MariaDB Corporation develops about 95% of the code for MariaDB Community Server, with the rest coming from community contributions. We work closely with MariaDB Foundation who helps to distribute the software to Linux distributions and community users, making MariaDB accessible to roughly tens of millions of Linux users around the world. At this point, MariaDB has replaced MySQL as the default in nearly all the major distributions, including Debian, Red Hat Enterprise Linux, SUSE Enterprise Linux, openSUSE, Fedora and more.
How we develop MariaDB software
In software development and release management there are typically three tunable variables that you can play with, feature set, release date and quality. These variables have intertwined dependencies so that you typically can set 2 strictly but then the third cannot be set. For example if you set the release date and feature set then the quality will suffer, if you have a strict quality requirement and feature set then the release date will be unknown etc. At MariaDB we have at times tried different combinations of these with a varied degree of success. With this new release model, we have adopted a process that gets features out fast while maintaining a high level of quality.
In MariaDB’s early days, we followed a somewhat undefined path for establishing new release series. We would determine a list of flagship features we wanted to develop but as we had strict quality requirements and as these feature sets were large, it would take years to deliver a new release series. We soon realized that with the increase in cloud adoption to achieve faster and more agile development, this model wouldn’t work as it took much too long to deliver new features. We needed to be more agile to match the pace of the rest of the software world.
Starting with MariaDB Community Server 10.3 in 2017, we switched to a time-based release model, where we aimed to deliver a new release series at the same time every year. This achieved our goal of getting new release series out more quickly but there were some major unintended consequences as well. If features did not make the deadline to be included, the feature would be pushed to the next release series a whole year later. In many cases a feature was “almost done” by the deadline but not quite ready. This left us with the following choices: 1) postpone the feature for a whole year, 2) delay the release, or 3) compromise quality. None of which were choices we wanted to make.
For example, MariaDB Community Server 10.5 included a number of new JSON functions. One important feature, JSON-table missed our yearly time-based release deadline by a hair so that feature ended up taking two years to be released, which in principle led us back to the same problems we were encountering with our earlier release model – it was taking far too long to deliver new features.
Under the new model announced today, missing a release deadline only sets us back by a few months, not a whole extra year and with the tight schedules we will never compromise on the dates or quality.
Shifting to a faster pace of innovation
With the new model, we are following a strict “train-based development model” with no exceptions. The feature sets for each release series are smaller, allowing QA to be thorough and we believe this will also increase stability of each release series. For each release series we have a deadline by which the feature must be approved by QA in order to get included in the release. If that does not happen, the feature will move to the next release series which happens three months later. The feature will get three more months to reach the required level of stability. With this, the new release model allows us to get features out at a much faster rate without having to compromise on quality. We believe this is a win-win for everyone!
With new release series coming out quarterly, we will maintain (deliver bug fixes and security patches) each release series for one year after the GA release. If you are running MariaDB Community Server and need longer-term maintenance, please contact us to upgrade to a version that includes longer maintenance windows and database support.
If you get MariaDB Community Server through a Linux distribution, you can expect that the version of MariaDB that’s included will be maintained for a longer period of time. We are working closely with all our distribution partners to deliver a special version that works best for each distribution model.
To summarize, the new community server release model will provide:
- New features more frequently
- More innovation
- Higher overall quality
- Less stress for developers
Connect with us on Slack!
With the new release model, we will get a faster pace of innovation combined with much higher quality releases. This is a great benefit for all users of MariaDB out there. If you’d like to connect with us, please join our newly launched MariaDB community slack to share feedback with us directly.