Accueil Nos publications Blog Du dauphin à l’otarie

Du dauphin à l’otarie

MariaDB versus MySQL

La nouvelle est tombée le 11-12-2012 : Wikipedia délaisse MySQL au profit de MariaDB.
En ces temps de fin du monde, rien ne semble effrayer ce grand du web. Mais les raisons ne sont pas uniquement liées à des soucis de performances. L’impact de cette décision sur la communauté a aussi son importance.
Voyons plus en détails les tenants et aboutissants de cette affaire.

Back to basics

Un petit historique s’impose pour suivre les évolutions de la chose.
MySQL est né en 1995 dans le garage de son créateur, et est passé en Licence GPL à partir de la version 3.23.19 en juin 2000. La version 5.1 date de novembre 2005 et est distribuée en release candidate depuis septembre 2007. La V6 (initialement 5.2) a été abandonnée par Oracle en 2010 suite au rachat de Sun Microsystems (en 2009) alors détenteurs des droits sur MySQL. Ouf ! Ce petit côté Dallas n’est pas pour me déplaire, mais ça devient délicat de s’y retrouver au final.

Si on ajoute à ça la timeline des dernières versions de MySQL, on peut s’y perdre :

  • La 5.2 a été renommée 6.0,6.0 annulée par Oracle,
  • La 5.4 a remplacé la 6.0,
  • La 5.4 a été renommée 5.5,
  • MySQL NDB cluster a son propre système de version (7.2 aux dernières nouvelles),
  • InnoDB a aussi sa propre numérotation,
  • MySQL 5.0 a eu un pre-InnoDB v1.0,
  • MySQL 5.1 tourne avec InnoDB v1.0.xx,
  • Tandis que MySQL 5.0 tourne avec InnoDB v1.1.x.x

MySQL 5.6 sera la prochaine release fournie par Oracle.

Craignant pour son bébé, le créateur de MySQL, Michael “Monty” Widenius a créé en 2009 MariaDB pour continuer à développer un SGBD Open Source, via Monty Program (une entreprise employant la plupart des personnes ayant travaillé sur MySQL avant le rachat) et l’Open Database Alliance qu’il a contribué à fonder.

De l’inertie des acteurs importants

Facebook s’appuie sur la v5.1 de MySQL et y a intégré de nombreux patchs qui ne sont pas encore remontés en totalité dans Oracle MySQL ce qui fait que la version actuelle du SGBD ne profite pas de toutes les améliorations et optimisations développées et validées par facebook.

Est-ce du fait de Facebook qui fait de la rétention d’informations ou d’Oracle qui ne veut pas que sa branche OpenSource risque de supplanter son système payant ? Nous ne le saurons sans doute jamais. Néanmoins, d’autres utilisateurs sont soumis à des contraintes de charges au moins aussi importantes (twitter, flickr, youtube…) et nécessitent ces évolutions.

Course à la performance ou coup de pub ?

Wikipedia est le premier à mettre les pieds dans le plat.Un des noeuds anglais de l’encyclopédie est passé sous MariaDB 5.5.28., et la migration complète du site devrait se faire dans les mois à venir. C’est donc plus une évolution qu’une révolution, MariaDB étant basé sur MySQL.

C’est dans un message envoyé à la Ops Mailing List (lien vers l’archive du message : https://www.gossamer-threads.com/lists/wiki/wikitech/319987) que Asher Feldman (Ingénieur performance de la Fondation Wikimedia) annonce la migration ainsi qu’un gain moyen de 8% par rapport à MySQL 5.1. ; ce qui est loin d’être négligeable compte tenu de la masse de requêtes et de données en cause.
Note : Les passages entre guillemets sont des traductions du message de Asher Feldman.

Il précise cependant : “L’objectif principal de la migration vers MariaDB n’est pas motivé par la performance. J’ajoute même qu’il est dans l’intérêt commun de la Wikimedia Fondation et de la communauté OpenSource de se rassembler autour de la MariaDB Fondation afin d’assurer un avenir vraiment Open(source) et bien supporté pour toutes les technologies de BDD dérivées de MySQL. Les gains de performances obtenus sur le chemin sont des cerises sur le gâteau.”

Il n’en demeure pas moins que les gains sont appréciables. Feldman ajoute : “Certaines requêtes sont 10 à 15% plus rapides, d’autres 3% plus lentes, et aucune aberration n’est apparue en deçà. Globalement, les indicateurs notés en ‘requêtes par seconde’ sont améliorés de 2 à 10%. Je me garderai bien de tirer des conclusions de ces données pour le moment, il reste à éliminer les bruits de mesure, mais c’est positif.”
Il est aussi très enthousiaste quant aux améliorations envisageables à l’avenir. Les futurs gains sont à chercher du côté de l’optimisation des requêtes, de l’utilisation des index dans les jointures, de la gestion des sous-requêtes, mais aussi dans l’utilisation optimale des clefs primaires embarquées dans les index secondaires qui pourrait leurs permettre d’améliorer leur schéma de BDD autour de cette idée une fois la solution de production entièrement migrée (espéré pour le premier trimestre 2013).

Ce choix semble donc quelque peu ambigu. Sans soi-disant être motivé par les performances, Asher Feldman annonce quand même une moyenne de 8% de gain, mais il tient aussi à souligner l’importance de ce rapprochement entre différentes communautés du libre (Wikimedia, Open Database Alliance).

Wikipedia, reconnu par Alexa Internet comme le 6eme site au monde le plus populaire (en moyenne 12.8% des internautes y naviguent tous les mois) pourrait bien donner des idées à d’autres géants du web désireux de s’affranchir des marques commerciales bien implantées, et voir dans cette démarche on moyen d’initier un tournant vers le logiciel et les systèmes libres.

Affaire à suivre…

Lexique :
Alexa Internet : Succursale d’Amazon.com, cette entreprise fournit une barre d’outils qui une fois installée collecte des données de navigation et les envoie au site d’Alexa pour stockage et analyse. Alexa fournit des données de trafic, des classements et d’autres informations pour des milliers de sites web. [wiki]

Bibliographie :
https://lists.wikimedia.org/mailman/listinfo/ops
https://www.zdnet.com/wikipedia-moving-from-mysql-to-mariadb-7000008912/

https://montyprogram.com/about/
https://odba.org/
https://kb.askmonty.org/en/
https://www.rackspace.com/blog/navigating-the-various-versions-of-mysql/
https://www.facebook.com/MySQLatFacebook
https://blog.wikimedia.org/c/technology/
https://en.wikipedia.org/wiki/MySQL
https://en.wikipedia.org/wiki/MariaDB
https://en.wikipedia.org/wiki/Michael_Widenius