We’re quite happy that we’ve released four major releases that are production ready (better known as generally available or GA in the MySQL world) in the last 26 months. That is just a little over two years, and a whole lot of features. In that same time, MySQL has seen one GA release (MySQL 5.5) and we’re all eagerly awaiting the upcoming MySQL 5.6.

You’ll note that we built MariaDB 5.1, 5.2, and 5.3 based on the MySQL 5.1 codebase. A significant number of features went into MariaDB 5.3 (our biggest GA release to date), with the biggest changes in the optimizer in over a decade. There were also many replication based changes included like the now famous group commit for the binary log. Our Knowledgebase has a summary of MariaDB 5.3 features.

Work on MariaDB 5.3 started long before MySQL 5.5 went GA. It was a huge task to move all these 5.3 features into MariaDB 5.5 and at the same time merge MariaDB 5.5 with MySQL 5.5. It caused a significant delay in us getting a release of MariaDB 5.5 out there as production ready software. By now it must be clear that we included all changes in MariaDB 5.5 from 5.3, 5.2, and 5.1. We spent the time developing new features and keeping it current against current versions of MySQL.

We released MariaDB 5.5 in April and we have always aimed for short release cycles where possible to keep up with rapidly changing distributions. With this in mind many have been thinking about the release cycle from now onwards.

What will the next release of MariaDB, which we are working on, be called? We want to release our new features in a GA version soon and not wait for MySQL 5.6 to reach GA quality. But if we release a GA version before MySQL 5.6 is GA, it will be very confusing to call our release 5.6. In addition, this time there are no free version numbers between 5.5 and 5.6 like there were between 5.1 and 5.5 when we could use 5.2 and 5.3.

We are thinking of calling it MariaDB 10.0. It will include stable GA-ready features from MySQL 5.6 (these will be backported), as well as encompass some of our plans for the next release. It will be based on the MySQL 5.5 codebase. Then we plan to release MariaDB 10.1, MariaDB 10.2 and so on.

What happens when MySQL 5.6 is GA-ready? We’ll release a MariaDB version 11.0. It will include all the features of MariaDB 10, and encompass the features from the MySQL 5.6 codebase (that weren’t already backported into MariaDB in a previous release).

Does this mean we are veering away from being a backward compatible branch to MySQL? Of course not. We will be feature complete. We’re just in the lull of time between MySQL releases, in a similar fashion to what we did for MariaDB 5.2 and MariaDB 5.3. Astute followers will note that there is no MySQL 5.2 and 5.3.

Essentially this is just a change in the numbering scheme. A change which allows us to release more often than MySQL does. You are invited to contribute to the conversation on the maria-discuss mailing list.

We are pleased to announce the immediate availability of MariaDB 5.3.6. This stable (GA) release incorporates MySQL 5.1.62, some performance improvements, and several bug fixes.

Most importantly, MariaDB 5.3.6 includes a fix for a bug which, under certain rare circumstances, allowed a user to connect with an invalid password. This is a serious security issue. We recommend upgrading from older versions as soon as possible.

Please see the What is MariaDB 5.3 page for an overview of MariaDB 5.3.

Sources, binaries, and package downloads are available from our network of MariaDB mirrors. Debian and Ubuntu packages are available from our mirrored apt repositories. We have a sources.list generator for creating sources.list entries.

One could say that MariaDB now is 2 years old as a packaged product. The latest version, MariaDB 5.3 Beta, is the culmination of many years of hard work. We believe it contains the largest and most significant change to the code of MySQL since the launch of MySQL 5.0. I’m talking about the changes made to the central product component called the Optimizer.

Why did we touch something so central to the product? The fast answer is that the original Optimizer is about 17 years old. Prior to the work we did for MariaDB 5.3, the Optimizer hadn’t had any huge evolutionary improvements or changes in a decade (except for some features that were added in 2003-2005). It was missing basic functionality that one can expect in any 2010s relational database. Things like hash joins or efficient handling of subqueries.

We’ve also wanted to gradually make MariaDB better at handling bigger tables and bigger queries. This requires query plans to have better access locality. Batched Key Access and to some extent hash join give us that. Another important aspect is that there were a vast amount of not-so-good performance related issues with the old optimizer.

An overview of all changes can be found at http://kb.askmonty.org/en/what-is-mariadb-53.

The development of many of the new optimizer features that now appear in MariaDB 5.3 were started in 2006-2008 as part of a future version of MySQL. In MariaDB 5.3 these features were polished and in some cases completely redone.

We also believe this code to be the best tested code ever released in either MySQL or MariaDB. This is important since MySQL is a widely adopted product. We cannot and will not introduce a whole bunch of new bugs in a central component of MariaDB. We could never live with such a product, and no one else could either.

The beta version of MariaDB 5.3 including these changes has now been available for almost two months and we recently released our second beta version. We have been continuing the stabilization of the product during this time with the help of the growing community around MariaDB which has been reporting issues they have found. A huge thanks to all of you!

It will still take a while until we declare 5.3 stable, but all the effort is starting to pay off. In addition to positive end-user feedback we have also seen the first signs of success through early benchmarking tests like these:
- DBT-3 tests,
https://lists.launchpad.net/maria-developers/msg04278.html
- Group commit,
https://www.facebook.com/#!/notes/mysql-at-facebook/group-commit-again/10150261692455933

It should be noted that the Optimizer changes I’ve talked about above are not the only things new in MariaDB 5.3. There are a lot of other improvements and new features as well. Things like the improved Group commit I refer to in the above link and microsecond support that deserves a special mentioning:

- The support for microseconds in TIMESTAMP, DATETIME, and TIME
A feature that has been requested for many years – http://bugs.mysql.com/8523

Lastly, while stabilization work on MariaDB 5.3 continues we’re also working on MariaDB 5.5, which is MariaDB 5.3 merged with MySQL 5.5. This is something the community has been waiting for for a long time. I’m happy to tell you that we’re not far away from a beta of MariaDB 5.5. It’s going to be an interesting end of the year.