2010-03-18

Time flies (one year of MariaDB)

It is now one year since a few colleagues and I left Sun to start our own company, Monty Program Ab (after which more have joined). A lot has changed during the year. For instance we ended up producing a full fork of MySQL rather than focusing on the Maria engine as I planned a year ago.

This February we released the first stable version of MariaDB, version 5.1.42, which is our enhanced and backwards compatible MySQL branch/fork. You can download it from the askmonty.org website. Please test it out and comment upon it here or on Launchpad, the code host for the MariaDB project.

The vision for MariaDB is for it to be user and customer driven, as well as more inclusive of community patches and plugins. The 5.1 release already contains, in addition to patches from the community, some features that were sponsored by customers, and wouldn't have happened without that. For instance, Sergey Petrunia recently blogged about a feature we call table elimination that optimizes certain joins by not reading some tables if the information can be inferred from the other table(s). (We've since learned that PostgreSQL 9.0 adds a similar optimization but calls it "join removal"; Oracle 11g also offers table elimination.)

Because of the vision, the roadmap is never set in stone, but will be influenced by user demand, what patches are produced by other developers or what projects customers want to pay for.

I'm planning to spend some time between April 6-21 (right before and after the O'Reilly MySQL Conference) meeting with important MariaDB/MySQL users to define features for the future MariaDB roadmap so that for the next release we can deliver what the MySQL/MariaDB users really want and need.

If you are on the east or west coast of the USA and you think there is something we could do together on MariaDB or MySQL, let me know about your needs at sales@askmonty.org so that we can arrange to meet. I'm especially interested in meeting if you are interested in purchasing some MariaDB/MySQL development to cover your own needs, if you are planning to develop some code of your own that could be contributed to MariaDB, if you want to secure your MySQL investment, or if you want to have advanced end user support backed by the original developers and creators of MySQL.

In MariaDB 5.1 we were able to include a lot of existing work that's been available in the community, such as the PBXT storage engine which is well known and has been RC quality for months already, FederatedX to replace the old MySQL Federated engine, and several patches from Percona and others that add statistics here and there. We also use Percona's XtraDB as the default InnoDB version, which means the InnoDB performance is equal to or better than the InnoDB plugin and the beta versions of MySQL 5.4/5.5.

Since all of this code has been "out there" and even in production for a long time, we believe MariaDB 5.1 is a good and stable product, and brings to you many interesting features now finally in a stable (GA) release. As MariaDB 5.1 is a drop in replacement of MySQL 5.1 (no recompiling of clients or conversion of data is needed) it's trivial to upgrade to MariaDB.

In early March the core developers met in Iceland to plan for the next few MariaDB releases. All MariaDB plans are public, so you can follow and even contribute to them on the askmonty.org wiki: 5.2 plan, 5.3 plan.

For the 5.2 release the focus is still on including remaining existing patches and possibly a few new storage engines.

For 5.3 the optimizer team is focusing on backporting and completing features and optimizations that were left hanging in the cancelled MySQL 6.0 source trees. The MariaDB 5.1 release already contains the "table elimination" I discussed above. When the work for 5.3 is done, MariaDB will finally support the subqueries and JOINs that today are supported on a syntax level, but in practice yield poor performance in some common cases.

Sergei Golubchik is continuing his mission to make the server more pluggable and recently finished a pluggable authentication api (planned for MariaDB 5.2 and also contributed back to MySQL). Kristian Nielsen (the original creator of the Pushbuild system that is used internally for MySQL automated testing) and Hakan Küçükyılmaz are working on further automating MariaDB QA. Much to Kristian's satisfaction, this system is now fully open source and based on Buildbot. Kristian is also working together with Robert Hodges (Tungsten), Seppo Jaakola and Alex Yurchenko (Galera) on a new pluggable replication API. We hope that through this work MySQL replication can take another leap forward, something I've seen many bloggers hoping for.

I hope that you now have a good high level picture of what is going on in MariaDB. If you have comments you are welcome to join the Maria discuss mailing list or #maria on Freenode IRC.

We at Monty Program Ab hope to meet many of you at the upcoming O'Reilly MySQL conference. Almost everyone at Monty Program Ab will be there, holding keynotes, talks, sessions, BoFs (look out for the black vodka) etc. You will, of course, also find many of us at our booth in the Expo hall.