The online encyclopedia site has dropped MySQL in favor of MariaDB to take advantage of its improved query optimizer.
The news of the changeover came in a blog post by Wikipedia project leader Asher Feldman. The announcement said that the Wikimedia Foundation has migrated the English and German language editions of Wikipedia from MySQL 5.1 to MariaDB 5.5. Wikidata has also moved to MariaDB.
The news comes hot on the heels of news of a deal between SkySQL and Monty Program to merge the two MySQL forks.
Until now Wikipedia has used a version of MySQL customized by Facebook, and while Feldman acknowledges this version had a number of improvements over the code from Oracle’s MySQL, MariaDB is even better. The reasons for the change include MariaDB’s optimizer enhancements and the feature set of Percona’s XtraDB.
Feldman says that many of the features overlap with those developed in the Facebook version, but he particularly likes add-ons such as the ability to save the buffer pool LRU list, avoiding costly warm-ups on new servers.
While the move to MariaDB highlighted some code incompatibilities, and two bugs in MariaDB, the problems were quickly ironed out with the help of the MariaDB team. On testing MariaDB in production, the team at Wikipedia found MariaDB to be faster, with average response times down to 12.7ms from 15.4ms.
An 18-page pdf with statistics and charts makes the comparison between the Facebook MySQL and MariaDB performance:
The blog says that as a read-heavy site, Wikipedia aggressively uses edge caching. Approximately 90% of pageviews are served entirely from the edge while at the application layer, Wikipedia uses both memcached and redis in addition to MySQL. The databases reach a daily peak of ~50k queries/second for English Wikipedia alone. The team found that many query types were between four and 15 percent faster with MariaDB under production load, though a few ran five percent slower.
The fact that MariaDB is free software is another reason behind the migration decision, according to Feldman:
“As supporters of the free culture movement, the Wikimedia Foundation strongly prefers free software projects; that includes a preference for projects without bifurcated code bases between differently licensed free and enterprise editions."
Oracle’s enterprise edition of MySQL has a number of features missing from the free version. When asked in a comment about MySQL 5.6 as a possible alternative, Feldman replied:
“Since MySQL 5.6 has had some initial performance (vs. 5.5) and stability issues, so waiting to adopt doesn’t seem to be a bad approach for a high trafficked site.”
The team is now looking forward to the future release of MariaDB 10 which is expected to introduce global transaction IDs and further improve read query performance.