(Almost) one year of MariaDB

Most of this year I have been working on the MariaDB project. So it is interesting to look back and see what has been achieved.

For those that do not know, MariaDB is a project to create a community-oriented branch of the MySQL code base. We want MariaDB to be developed for the community, by the community, and driven by the needs of the community.

Turns out that a lot has been achieved already:

  • We have had three releases (and a fourth is being prepared currently). The code is getting close now to release candidate.
  • We have apt-able (and yum-able on Centos/RHEL) repositories for the releases. These are based on the OurDelta infrastructure (scripts, build machines, etc). This means MariaDB installation and upgrade can be done the prefered way using the built-in package management tools of Linux distributions, without having to wait for MariaDB to be included in the next release of ones favorite distribution.
  • We have collected a lot of the exiting external patches and storage engines floating around in the community and put them together in a single MariaDB package. Want to test out PBXT and XtraDB against each other in the same server process? This is now just an apt-get install or ./configure away; no need to collect multiple source trees/patches together manually.
  • We have the basic infrastructure up for developing the MariaDB project: Web site, mailing list, Launchpad project, Source code repository, IRC channel #maria on FreeNode with archive, Continuous integration testing framework (using Buildbot), development procedures etc. etc.
  • We are continually merging the latest changes from MySQL 5.1, so MariaDB can keep track with any bug fixes and changes (the upcoming MariaDB release will include MySQL 5.1.41).
  • We have a company Monty Program AB employing a number of the old MySQL core hackers and driving development of MariaDB. We have Open Query engineers working on binary packages of MariaDB, through OurDelta. We have PrimeBase developing the PBXT storage engine and making it work well in MariaDB. We have Percona developing XtraDB and the Percona patches and helping making them work well with MariaDB. We have Patrick Galbraith andAntony Curtis working on getting things like FederatedX and OQGraph working well in MariaDB. And many others.
  • We have numerous new features and bug fixes, available in a MariaDB release that is a plug-in replacement for MySQL for those who need it or just want to try out the new stuff.
  • And lots more …

So overall I am really pleased with what we have achieved since the start around March this year. Working day-to-day with much too many tasks to do and much too little time, it is easy to only focus on the things that were not done. Then it is really good to look back some months and see what has actually been achieved.

One thing I see we have not been doing much of so far is speading the word that MariaDB is here and ready to try and use for everyone interested. So this is something we need to put more focus on going forward. I guess we have all just been too busy initially getting things running, and then as MariaDB started to get into shape we just continued as before without realising that we have moved into the next phase.

We have already planned that developers from MariaDB and PBXT will be manning a stand and presenting at FOSDEM 2010, so if you are there and want to hear about what we are doing, be sure to connect up with us! We are also planning a presence at the 2010 O’Reilly MySQL Conference & Expo.

If anyone wants to follow the day-to-day activity of MariaDB development, the best place is probably the IRC channel #maria on FreeNode (archive). The mailing list maria-developers@lists.launchpad.net is also a good place to follow development (requires Launchpad and membership approval, but we approve everyone who is interested!)


    1. Yes, we continually merge new MySQL releases into MariaDB. The version number reflect this. So MariaDB 5.1.39 has all code from MySQL 5.1.39 (plus some extra stuff). The upcoming MariaDB 5.1.41 will include all MySQL changes up to 5.1.41.

      In fact the bzr repository of MariaDB on Launchpad, lp:maria, includes all of the history of MySQL. So you can do eg. `bzr branch -rtag:mysql-5.1.41 lp:maria` and you will get an exact clone of the MySQL 5.1.41 release.

    1. Re: storage engines

      It is indeed possible to have them both as plugins. MySQL does this since 5.1.38 with the built-in innodb and the innodb plugin.

      But changing the build and test system to support both is some work. XtraDB was merged when MariaDB had MySQL 5.1.34 AFAIR, so this work was not yet done from the MySQL side. Also, the test results from builtin innodb are somewhat different from XtraDB; I believe there are a number of tests that are disabled in MySQL still for the innodb plugin for similar reasons. And maintaining both the built-in innodb and XtraDB seemed just too much work for too little benefit.

      Is there some reason one would want to use the built-in innodb instead of XtraDB? If so, we can re-enable it; the code for the built-in innodb is still included in the MariaDB repository, just disabled from the build system.

  1. I replaced MySQL with MariaDB – is XtraDB now working instead of Innodb?

    I am on Ubuntu 9.10 (Karmic) and just used aptitude to remove mysql-server and install mariadb-server. My app works without a hitch and actually SQL optimizer uses a better path, so it is faster. But how do I confirm that XtraDB is now being used instead of Innodb? Or do I need change config to switch to XtraDB?

    1. Re: I replaced MySQL with MariaDB – is XtraDB now working instead of Innodb?

      For example like this; if the table xtradb_enhancements exists, you are using xtradb: select * from information_schema.xtradb_enhancements;

      1. Re: I replaced MySQL with MariaDB – is XtraDB now working instead of Innodb?

        select * from information_schema.xtradb_enhancements;
        returns resultset which among all Innodb rows has this XtraDB row:

        ‘xtradb_show_enhancements’, ‘I_S.XTRADB_ENHANCEMENTS’, ”, ‘http://www.percona.com/docs/wiki/percona-xtradb’

        so, I assume I am using XtraDB.
        Thank you.

        Might be worth noting that the main reason we switched from mysql to mariadb was because of a seeming change in MySQL optimizer behavior in Ubuntu 9.10 Karmic after apt-get upgrade. mysql-server 5.1.37 version did not change but apparently upgrade brought some extra patches and sql optimizer stopped using the proper index in many of our queries. Replaced with MariaDB and old behavior got restored. In the coming days we will explore what other speedup we gained but this was a major one getting back from 8sec to almost 0ms queries.

Leave a comment

Your email address will not be published. Required fields are marked *