Yesterday evening I had the privilege of hearing tech legend Michael “Monty” Widenius, founder of MySQL, give a presentation on MariaDB at the AppNexus headquarters to an audience of 300+. MySQL is the world’s pre-eminent open source database, and Monty’s contributions still make up 60% of the current source code!
The purpose of Monty’s talk was to promote MariaDB, a new community-based open source alternative to MySQL. Since MySQL was purchased by Oracle in 2010 (via Sun), things have gotten worse for the famous open source project. Being that MySQL is a direct competitor to Oracle, the company has at best half-heartedly improved the product, and at worst deliberately stymied its progress. For example, Oracle made a controversial decision not to publish regression tests or revision histories with the core MySQL source code. Regression tests insure that bugs are correctly fixed and to prevent new features from breaking old code. Revision histories are essential to explain what bugs were fixed and why. Losing both was a huge blow to the open-source community.
In response, Monty has re-grouped the original MySQL engineering team using his own funds and forked MySQL into MariaDB (named after his younger daughter). It is designed to be a community-driven, open-source binary-compatible superset of MySQL. Because MariaDB is created and maintained by same engineers that created MySQL, it promises more features, speed, better code, and more plugins. In fact, Monty claims that MariaDB has 30 cumulative man-years more development than MySQL and is often ”more compatible with MySQL than MySQL itself.” MariaDB is licensed using the liberal GPL server license, which prohibits closed-source extensions. Because of this, Oracle cannot copy MariaDB’s new code back into their MySQL source. However, Monty’s team can and does merge code from MySQL. But MariaDB is a truly independent fork, meaning it is not dependent on MySQL for future development. Once a month, select MySQL code is merged from Oracle’s repository. However, about 10% of that code is buggy and is discarded because, according to Monty, the new MySQL programmers simply “don’t understand the current code.” The MariaDB team also promises to re-engineer any closed-source enterprise features brought to MySQL by Oracle. There is no “Enterprise” or paid version of MariaDB with any extra features.
MariaDB boasts many improvements over MySQL. Out of the box, it using the Percona XtraDB storage engine instead of InnoDB and as a result is 5 times faster. MariaDB also features support for 17 different storage engines including Apache Cassandra, a NoSQL data store that is integrated with MariaDB via its new support for dynamic columns (where each row can have different set of columns). Monty sees MariaDB as a bridge between SQL and NoSQL, which he believes can and should co-exist because the SQL language is more expressive and doesn’t require custom programming to be useful. The team is also working on incorporating the popular MongoDB, as well as a new CONNECT storage engine that can read and write to standard DBF, CSV, INI, XML documents. The MariaDB Galera Project is another fascinating initiative that aims for the holy grail of databases: an easy, scalable, transactional, fail-safe, synchronous database cluster. Released this past February, Galera is a multi-master replication system for MariaDB, meaning that one slave server can have many masters.
So if MariaDB is the next best thing to come to databases, who is using it? As of December 2012, Wikipedia is moving its massive data store to MariaDB. Mozilla, Fedora, OpenSuse, and Slackware have also publicly switched. Even Google just announced that all future development will be using MariaDB instead of MySQL! Amazon will also start offering MariaDB as its hosted cloud solution. It’s clear that MariaDB rekindles the original flame behind the original MySQL project, promising better code, more features, and faster releases. It’s also evident that the fate of MySQL is an emotional subject for Monty. When asked if he sees MariaDB and MySQL merging in the future, he wistfully states that he would love to see them as one repository again, provided that MySQL goes back to the BSD license and into the hands of the open-source community. As long as Oracle is around, though, that doesn’t seem likely. Right now, Monty’s new MariaDB Foundation is the custodian of the new code, and the guardian of the contributing community. The Foundation ensures that MariaDB will be self-sustaining and never controlled by a single entity or person, and that it always remains compatible with MySQL. In short, the Foundation is designed to never allow what happened to MySQL to happen again. Even for gray-haired tech legends, life has a way of serving up valuable lessons.