Monty Widenius, MariaDB : « Oracle a perdu la confiance de la communauté »
Monty Widenius, l'un des pères de MySQL, de passage à Paris pour une rencontre utilisateurs avec SkySQL, est revenu avec la rédaction sur la MariaDB Foundation, la décision d’OpenSUSE et de Fedora de remplacer MySQL par MariaDB, sur Oracle et la qualité du code de MySQL et sur le rapprochement de MariaDB avec le monde NoSQL.
LeMagIT : MariaDB est aujourd’hui sous le contrôle d’une fondation. Pouvez-vous nous expliquer les raisons premières de ce changement de statut?
Monty Widenius : La MariaDB Foundation a été créée pour que ce qui s'est passé avec MySQL ne se reproduise pas. Nous ne pouvons plus contribuer à MySQL sans qu'Oracle en ait le contrôle. La fondation représente ainsi un garde-fou pour MariaDB. Une fondation sans volonté de profit qui ne peut pas être rachetée. La volonté derrière la fondation est également de participer au développement en agissant auprès de la communauté Open Source. Et la communauté a bien accueilli cette fondation car elle sait qu'elle peut avoir confiance en elle. La fondation est donc soutenue par la communauté.
Certaines distributions Linux, comme Slackware, Fedora, OpenSuse, pensent également que nous avançons dans la bonne direction [Ces distributions ont fait le choix de proposer MariaDB comme la base de données par défaut de leur OS, en remplacement de MySQL, NDLR]. Elles pensent qu’avec Oracle, le code source devient de plus en plus fermé. Il ne s'agit pas uniquement de sa stratégie Open Core ; il semble également fermer plusieurs éléments comme la bases de données de rapports de bugs. Ces distributions lui reprochent également de ne pas mener une politique de mises à jour convenable, ni même en matière de correction de failles de sécurité. Elles ont ainsi estimé qu'elles ne pouvaient plus tolérer cela en matière de sécurité. Un fondation est ainsi la meilleure chose qui pouvait arriver à MariaBD. Et cela est bon pour nous.
LeMagIT : Pensez-vous qu'il s'agisse là uniquement d'une affaire de sécurité ou d’un différend comportemental avec Oracle ? Cela ne pourrait-il pas être du au fait que MariaDB est également meilleure que MySQL?
M.W : Selon moi, nous sommes bien meilleurs depuis deux ou trois ans. Mais les distributions Linux ont un esprit très conservateur. Et elles veulent s'assurer que leurs utilisateurs le savent bien. Même si un élément est meilleur, il est difficile d'en apporter la preuve à tous les utilisateurs. Certaines ne sont pas utilisées dans des applications critiques. Pour elles, l'ouverture et le fait que nous offrons toutes les mêmes fonctionnalités que MySQL est important. Elles veulent une version qui ne pousse pas à se rapprocher d’une version plus fermée, comme Oracle peut le proposer. MariaDB dispose du bon profil, celui dont elles ont besoin. Fedora, de son côté, a été motivé par des problèmes de sécurité, car cela n'entrait pas dans sa politique. Ils n'avaient pas le choix.
LeMagIT : Et les autres distributions comme Ubuntu?
M.W : Les plus importantes qui manquent aujourd'hui à l'appel sont Debian et Ubuntu. Mais nous travaillons bien avec eux. Il existe des problèmes politiques liés notamment à leur façon de packager les applications. Le problème est que vous ne pouvez pas avoir MariaDB et MySQL installés en même temps. Le conflit de paquets est un point que Debian ne tolère pas. Mais nous travaillons sur cela depuis 3 ans. La solution la plus facile pour eux est de ne plus supporter MySQL. Mais il s'agit d'une décision difficile. Et si Debian et Ubuntu s'y mettent, cela devrait contribuer à la fin de MySQL car si on ne peut obtenir MySQL qu'à partir de MySQL et d'Oracle, tout le monde basculera vers MariaDB. C'est donc très important pour nous.
LeMagIT : La fondation a-t-elle est bénéfique à la base de données MariaDB?
M.W : La fondation a apporté une notion de confiance dans la communauté. L'adoption de MariaDB devrait être multipliée par 10 durant les 12 prochains mois. Nous avons recensé aujourd'hui près de 1 million d'installations, d'après ce que j'en sais. Mais sauf chez OpenSuse, MariaDB n'est pas encore intégrée aux versions de Fedora et de Slackware. D'ici à la fin de l'année, MariaDB devrait totaliser entre 2 et 3 millions d'installations. A la fin de l'année prochaine, et parce que tout le monde ne migre pas au même rythme, on devrait atteindre les 10 millions.
LeMagIT : Et qu'en est-il des entreprises?
M.W : Ce sont les migrations les plus importantes pour MariaDB, car les entreprises sont à la recherche des performances et elles visent à réduire leurs coûts de licences. Elles réalisent ainsi des économies en passant à MariaBD car Oracle les pressure beaucoup. Nous les aidons à s'extirper des griffes d'Oracle qui leur propose des tarifs de support élevés. Nous offrons également davantage performances, notamment en matière de réplication. Elles réalisent qu'elles peuvent aller 10 fois plus rapidement avec MariaDB et elles apprécient cela. La communauté a réagi très positivement envers MariaDB.
LeMagIT : Quel est le niveau de qualité du code de MySQL aujourd'hui produit par Oracle?
M.W : Cette question me rend particulièrement triste, car nous avions historiquement chez MySQL un processus de contrôle de la qualité très performant. Oracle a perdu toutes les compétences d'ingénierie du code pour la partie principale. Leur équipe n'est pas très performante sur le code MySQL. La seule équipe qui fonctionne véritablement est celle travaillant sur InnoDB et ils font du très bon travail.
Nous avons constaté que le code s'est rapidement détérioré entre les versions 5.1 et 5.5. Pour une dizaine de correction de bugs, un nouveau bug était introduit. Nous devions tout revoir et les corriger. Des centaines de bugs critiques sont corrigés dans MariaDB alors qu'il ne le sont pas dans MySQL, et ne le seront probablement jamais. Ils ont assurément corrigé des centaines de bugs mais en ont ré-introduit d'autres également. Et ils ne s'en sont probablement pas aperçus [...].
Est arrivée alors la 5.6. Personne ne peut aujourd'hui faire fonctionner la version 5.6 de MySQL sans avoir de problème, si la fonction de ‘fast replication’ est activée. C'est vraiment du très mauvais code. Il n'y a eu aucun test ni contrôle de qualité sur l'une des fonctions les plus importantes de la version 5.6. Je ne peux recommander à personne d'utiliser MySQL 5.6. Vous pouvez regarder le code et vous rendre compte qu'il s'agit d'un code Alpha. [...] Entre les version RC et GA, la différence de code était de 63 Mo et le niveau de qualité de code n'a pas été revu par la communauté. Nous ne faisons pas ça de notre côté.
LeMagIT : Il s'agit d'un vrai manque de transparence?
M.W : Oracle affirme que MySQL est un projet Open Source, dispose d'un Open Core. Il y a quelques semaines, un développeur a soumis un patch pour InnoDB à l'équipe d’Oracle. Il était censé améliorer les performances d'environ 10%. La réponse des équipes d'Oracle a été : ‘Désolé nous ne pouvons pas prendre votre patch’. Le développeur leur en a demandé la raison et ce qu'il devait modifier. La réponse d'Oracle ? ‘Désolé, nous ne pouvons rien vous dire’. C'est ainsi qu'Oracle travaille avec la communauté.
LeMagIT : Comment fait alors la communauté pour poursuivre sa collaboration avec Oracle?
M.W : Elle ne le fait pas. Oracle gagne certainement quelques clients entreprises car ils ont de bons commerciaux, mais ils n'ont aucun avenir en tant que projet Open Source car Oracle a perdu toute la confiance de la communauté en agissant de la sorte.
LeMagIT : Vous pensez toujours qu'Oracle devrait revendre MySQL?
M.W : Oui, mais avec la qualité de la version 5.6, personne ne l'achèterait. Oracle devrait donner MySQL à Apache ou encore à la FSF (Free Software Foundation).
LeMagIT : MariaDB a évolué vers le monde NoSQL. Pourquoi avoir construit une passerelle vers ce nouveau monde de la donnée?
M.W : Je ne pense pas que la plupart des entreprises ait besoin d'une base de données NoSQL à part entière. SQL est en fait un élément central, mais il y manque quelque chose. Vous ne pouvez pas résoudre toutes les problématiques d'applications avec SQL. Vous ne pouvez pas créer facilement un Web Store par exemple. Comment par exemple stocker des gigaoctets de données liées à la taille ou à la couleur de T-shirts ? Vous ne pouvez pas avoir une table pour chaque article. Et il n'existe aucun moyen simple pour réaliser cela avec une base de données relationnelle. NoSQL est pour cela beaucoup plus flexible dans le sens où vous n'avez pas de schémas de données. Tout est stocké dans un Blob et vous n'avez pas à vous soucier de vos données. Le programme le fait pour vous.
J'ai réalisé qu'il était alors temps de faire quelque chose. J'ai développé il y a deux ans "dynamic columns" , ce qui permet d'avoir plusieurs colonnes par ligne. Cela règle en partie le problème. Mais à ce stade il était également facile de créer une interface NoSQL. Ma vision est la suivante : la plupart des entreprises qui essaient de passer à l'échelle, particulièrement dans le cloud, essaieront probablement NoSQL. Que ce soit bon ou mauvais pour eux, ce n'est pas le problème. Car NoSQL ne peut traiter qu'une partie de leurs activités. Et ils ont toujours besoin d'une base SQL à leur côté. Parce que SQL est meilleur pour gérer toute la problématique relationnelle. Avec MariaDB, elles n'ont pas à switcher. Elles disposent d'une interface standard. Parce que l'un des gros problèmes avec NoSQL est qu'il n'existe pas d'interface standard . Vous disposez de votre propre code ou de vos propres librairies. Si vous souhaitez passer d'une technologies à l'autre, c'est l'enfer. Si vous utilisez l'interface NoSQL pour seulement un élément critique en conjonction avec MariaDB, vous n'êtes lié à aucune technologie NoSQL.
LeMagIT : C’est ainsi que vous abordez le Big Data?
M.W : Très peu d'entreprises ont véritablement besoin des Big Data. Facebook et Google en ont certes besoin car ils s'adossent notamment à des media sociaux ou de la publicité contextuelle. Je ne pense pas que beaucoup d'entreprises ont aujourd'hui besoin d’exploiter quelque 60 To de données. La question est davantage de savoir comment utiliser les données et non 'stockons en le plus possible, nous déciderons plus tard'. J’ai déjà vu cela dans les années 90, lorsque les entreprises essayaient de tout stocker. Le problème est que quand vous stockez mais que vous n'avez aucune idée de la structure des données, vous ne pouvez pas les utiliser [...] Avec NoSQL et le Big Data, on revient à l'ère du 'vous placez tout dans la poubelle et espérez qu'un jour, vous aurez à y chercher quelque chose'. Mais le problème est qu'il y aura trop de données [et que sans structure ni contrôle de version, impossible de les manipuler, d'en tirer de la valeur, NDLR].