MariaDB in 2021
At Vettabase we support various databases,and in particular we are MariaDB enthusiasts. Even more, we’re proud to be MariaDB Foundation Technology Partners. So I’m happy to write this small wrap-up about the MariaDB Foundation public activities in 2021! Just a disclaimer before starting: this is not an official retrospective, it’s a subjective, opinionated one. My opinions represent myself alone. So here is my favourite 2021 news in the MariaDB world…
MariaDB 10.6 went Generally Available in November (I wrote a summary on Vettabase website). A couple of unmaintained storage engines were removed, as well as 23 InnoDB variables. That’s good: cleanups help make the code more maintainable. And amongst other things MariaDB 10.6 introduced:
- Atomic DDL: CREATE, DROP, ALTER statements are now crash-safe!
- More performance_schema tables for Galera and replication
- InnoDB: First INSERT into an empty table is faster and writes to temporary tablespaces are deferred
- SKIP LOCKED
- FETCH ROWS WITH TIES
- MariaDB finally has a sys schema
This year MariaDB 10.7 and 10.8 went, respectively, GA and Preview. But before talking about them, I want to mention the new MariaDB release model. The new model is being used for these versions, and was announced by Kaj Arnö in the post MariaDB Announces New Innovation Release Model. I recommend reading Kaj’s post for the details and the motivations, but basically MariaDB adopted this new model that consists in releasing previews of its main new features before releasing a release candidate. Each important feature has a separate preview: a git branch and a binary. We can test a feature we need before it goes GA, and give our feedback in the usual ways: bug reports, mailing lists, Slack, and so on. The MariaDB team, in my experience, is always open to listen to feedback.
Daniel Black also announced new MariaDB Quay.io containers. New code pushed to MariaDB stable branches goes into these containers, allowing us to test it before an official release is published. The idea seems to me very similar to dear old nightly builds, but releasing the changes as containers makes the testing faster and easier. The new release model and Quay.io containers go in the same direction: releasing code more often, and making community testing easier.
Now, back to technical changes introduced by MariaDB branches. MariaDB 10.7, currently a release candidate, introduced some features that I really like:
- Improved performance for ASCII supersets, when working with ASCII characters
- Data compression is now delegated to compression plugins
- UUID data type and SYS_GUID()
- Natural sort, to order strings like file names or version numbers, that wouldn’t benefit from pure alphabetical order
- JSON_NORMALIZE() and JSON_EQUALS()
- InnoDB: improved performance for bulk inserts into empty tables
Finally, here’s my list of favourites in MariaDB 10.8:
- Lag-free ALTER TABLE replication: now the beginning and the end of ALTER TABLE are written into the binary log
- JSON histograms
- ASC and DESC indexes
- InnoDB: redo log changes
Here I wanted to focus on the great news in the code and in the release model. But the MariaDB Foundation and the MariaDB team did much more than this in 2021, and I need to mention at least the several MariaDB MiniFests they’ve been holding since the beginning of the panemics. Great talks from the past editions can be found in the Foundation’s YouTube channel. Again: this is just a review of the things that are most important to me.
Thank you, MariaDB Foundation and MariaDB, for the great work you did in 2021! I’m we’ll see more great things happen in 2022, as well!
Federico Razzoli
Vettabase founder