Dead database walking: MySQL's creator on why the future belongs to MariaDB
- 28 March, 2013 13:33
It's fair to say that MySQL creator Michael "Monty" Widenius is not a fan of Oracle. When the company announced in April 2009 that it was purchasing Sun, Widenius saw a bleak future ahead for the (still) wildly popular open source database, which Sun had snapped up in 2008.
The day the Sun purchase was announced, Widenius responded in the tried and true open source fashion — he forked MySQL, launching MariaDB, and took a swathe of MySQL developers with him.
"Many of the original MySQL core developers, including me, didn't believe that Oracle would be a good owner of MySQL and we wanted to ensure that the MySQL code base would be free forever," Widenius explains.
Some of the new code by Oracle is surprisingly good, but unfortunately the quality varies and a notable part needs to be rewritten before we can include it in MariaDB
Widenius and a number of other MySQL developers started a company, Monty Program Ab "to provide a home both for MariaDB — the new MySQL — and for all MySQL core developers".
"Monty Program Ab is owned by the employees and uses the 'hacking business model' as a way to drive the company," Widenius says.
Although MySQL is still widely used — Db-engines.com ranks it as the third most popular RDBMS after Oracle and Microsoft SQL Server, compared to MariaDB coming in at #35 — Widenius still believes the database has a bleak future under Oracle's stewardship.
Oracle's treatment of MySQL and its community since its purchase of Sun has proved Widenius' original fears correct, the developer says. Not mincing words, Widenius says that Oracle has made it clear "that they have no love for open source, working with the community, or MySQL in general".
Widenius cites as examples of Oracle's disregard for open source principles the September 2011 announcement of commercial extensions to MySQL, the bugs database not being public any more, and a lack of test cases for new code in MySQL 5.5 and 5.6.
Drupal 8: Re-architecting for world domination
Linux distro spotlight: Mageia
Contiki: An operating system for the 'Internet of Things'
AmigaOS 4 developer interview: Why it endures and what the future holds
Widenius is also scathing of the quality of Oracle's MySQL development efforts. "Some of the new code by Oracle is surprisingly good, but unfortunately the quality varies and a notable part needs to be rewritten before we can include it in MariaDB," he says.
He also says that security issues are not addressed quickly enough.
"Instead of fixing bugs, Oracle is removing features," Widenius says.
"The MySQL documentation was never made open source, even [though] it was promised in the MySQL conference in April 2009," he adds.
"Flagship features promised for MySQL 6.0 have never been released, even if they were fully developed and ready to be released," he says, referring to online backup for all storage engines and foreign keys for all storage engines.
"Most of the original MySQL developers have left Oracle. Without people that can understand and explain the code it's almost impossible for Oracle to develop MySQL further even if they wanted to."
As further evidence of disdain for MySQL users, Widenius cites what he describes as "sharp" increases in licence and support fees, a lack of an open roadmap and no way for the community to participate in the database's development.
"Why is the price for a MySQL OEM license higher than for Oracle Express?" Widenius asks.
MariaDB was created to be a drop-in replacement for MySQL. Widenius says that as long as MySQL has a larger user base than MariaDB, remaining drop-in compatibility will be essential, in order to make the transition between the databases trivial.
"However, being a drop-in replacement doesn't stop us from changing the underlying code to make it faster and better or add new features," he says.
He makes the bold claim that MariaDB is some 30 developer-years in front of Oracle's MySQL efforts. "MariaDB 5.5 has everything that MySQL 5.5 Enterprise has, plus a lot more," he says.
The code base has begun to diverge significantly from MySQL in some areas, such as in replication and the optimiser, he says, while other areas it remains close, such as InnoDB.
"This allows us to take most of the MySQL bug fixes and apply them quickly to MariaDB."
Widenius says when it comes to areas such as NoSQL extensions and storage engine support (MariaDB includes support for Aria, XtraDB, FederatedX, SphinxSE, Cassandra and OQgraph, for example), MySQL has been overtaken.
Other areas where MariaDB has the lead include "dynamic columns, which allows you to store a different set of columns per row and provide an interface to NoSQL storage engines; pool of threads (similar to what you have in MySQL Enterprise Edition); virtual columns, much better GIS functionality; multi-source replication; and multi-master setup (with Galera)."
MariaDB developers have made a lot of speed improvements, especially in the optimiser, Widenius says, and applied a number of security and bug fixes to the RDBMS.
The simple truth is that there is no reason to use MySQL over MariaDB anymore, while there are plenty of reasons to choose MariaDB
Widenius says MariaDB has enough momentum that the project won't be affected by Oracle's continuing ownership of MySQL.
"MariaDB is not depending on MySQL for future development," he says.
"If Oracle tomorrow closed the code base or stop developing MySQL, we can continue to develop MariaDB as if nothing had happened. This is because almost all of the original core engineers, including all MySQL architects and the original MySQL optimiser experts are now working on MariaDB."
By Widenius' estimates there are now 1 million MariaDB installations, and the decision by RedHat's Fedora and SUSE's Open SUSE Linux distributions to include the newer database by default will bring this install base close to 10 million by the end of the year. Slackware announced on 23 March that it was ditching MySQL in favour of MariaDB.
"It's my belief that the MariaDB Foundation will do a better job with the code, be more responsive to security concerns, and be more willing to work with the open source community," a post on Slackware's site explained.
"And while I don't think there is currently any issue with MySQL's licensing of the community edition for commercial uses, several threads on LQ [Linuxquestions.org] showed that there is confusion about this, whereas with MariaDB the freedom to use the software is quite clear."
Widenius says that the "simple truth is that there is no reason to use MySQL over MariaDB any more, while there are plenty of reasons to [choose MariaDB]". These include the database's features, security and speed, but also that it is not encumbered by its association with Oracle.
"There are some people who don't trust Oracle and prefer MariaDB because it's not controlled by Oracle," he says. "MariaDB is truly open source — not open core as MySQL [is]. MariaDB is also developed by the community, not just one company," he adds.
Learning from the MySQL experience
Looking back on the experience with Sun and Oracle, Widenius says it's a lesson for other open source projects that they should always be prepared "that someone may try to take over the project and kill it as a way to get rid of competition".
"This is especially important for projects with a dual licensing model where a big part of the income needed to develop the project comes from licensing. It's these kinds of projects that can be bought or killed."
"Another way to kill an open source project is to contract all the main developers and somehow get them moved to other projects. Without the main developers, it's very likely that the project will die," he adds.
The problem was that we never thought that someone would like to buy MySQL to kill it and we never added protection for that
The problem wasn't that MySQL was too closely aligned to a single commercial entity (first MySQL Ab, then Sun). "The problem was that we never thought that someone would like to buy MySQL to kill it and we never added protection for that," he says.
"That we were able to fork MySQL successfully was only possible because we have some people that were willing to spend a lot of money, without big hopes of ever getting it back, just to save MySQL.
"Open source doesn't guarantee that a project can be forked and saved. This is especially hard for an infrastructure open source project that is GPL [licensed] and where a lot of development money came from licences."
The developers around MariaDB have established a non-profit foundation, which owns the trademark for mariadb.org and for the MariaDB server.
"This means that there will never be a need to change the name of MariaDB to something else," says Widenius.
"It's the community that will decide which is the official MariaDB release and that release will always be open source."
However, "MariaDB can only evolve if there are companies that are prepared to either do the development of MariaDB or fund it," he says. "The MariaDB Foundation is there to make it possible for companies to easily do this."
Alongside this, the foundation has responsibility to strengthen the community around the project, helping developers understand the code base and keeping an eye on code review and QA.
The foundation is actively seeking sponsors, Widenius says. "In principle, anyone who has an interest in MySQL and MariaDB surviving should contact the MariaDB foundation and ask about sponsoring it, either with money or with resources. That is the best way to ensure that the MySQL code base will survive !"
"We have some big sponsors already, but not as many as we originally hoped for," Widenius says.
"Many of the possible sponsors we have talked have wanted to wait until the MariaDB Foundation has a final governance structure in place. This is now finally done and we expect that we will now get these in soon."
Code committed to MariaDB needs to be under the Monty Program Ab contributor agreement (MCA) or the BSD-new licence. Widenius says that this is so that code contributed to MariaDB, such as bug fixes, can still be used by MySQL and so that companies that have bought MySQL licences can easily switch to MariaDB.
In addition, "if Oracle ever donates the MySQL code to a foundation, like the Apache foundation, we can donate the MariaDB code under the same licence to the foundation," he adds.
MariaDB 5.2 was almost totally developed by the MariaDB community outside of Monty Program Ab, according to Widenius. "Of the 33 people that have commit access to MariaDB, 15 are from Monty Program Ab," he adds, and he expects the community of developers outside the company to grow.
He says he's happy with the pace of development. The team is currently working on the next version of MariaDB - 10.0 (10.0.1 — an alpha version — was released in February). The new version adds multi-source replication, "truly" parallel replication, the LevelDB storage engine and more.
Monty Program, the company established by Widenius to push MariaDB forward, has been focussed on feature development, delivering support for companies such as SkySQL and developer support for MySQL companies.
"One problem we had was that we needed to prove that MariaDB is 'good enough' to be able to attract paying customers," he says. "This was something that took us 3 years to do on a larger scale. Now when MariaDB is going to be default in a lot of distributions it's much easier to attract customers!
"Together with SkySQL we have built a customer base of 300-plus quite big customers. The main services we have provided is development services. SkySQL has been doing front support to companies and we have provided that back support both for MariaDB and MySQL."
The company is "very like" the original MySQL business, "minus OEM licences and end-user support. For the end user support we use partners like SkySQL.
"You could say that Monty Program Ab plus SkySQL is very much like MySQL, except that the MariaDB is now always open source."
The company has a Google-esque 40/40/20 per cent split for employees' time: 40 per cent of their time is spent on new development, mainly customer projects; 40 per cent is spent working with the MariaDB community on code reviews, bug fixing and merging new code into MariaDB; and 20 per cent is spent on projects chosen by the individual.
"One could say that Monty Program Ab has donated 40 % of its developers' time to the community for making the MariaDB project possible," Widenius say.
"Now the MariaDB foundation will take over some of the community time and free Monty Program Ab to concentrate on serving customers."
Follow Rohan on Twitter: @rohan_p