Introduction
MariaDB est une base de données SQL open source populaire qui a commencé comme une fork de MySQL. Le cluster Galera de MariaDB est un système de réplication active-active qui permet des lectures et des écritures sur chaque nœud. Dans cet article, nous allons analyser les mécanismes et les limites de MariaDB Galera Cluster 12.1.2.
Contexte Technique
Galera Cluster est basé sur un cadre de communication de groupe à synchronie virtuelle appelé gcomm. Les transactions sont exécutées de manière optimiste sur n'importe quel nœud, puis répliquées de manière synchrone sur les autres nœuds. Les conflits entre transactions sont identifiés à l'aide d'un numéro de séquence. La documentation de MariaDB affirme que Galera utilise une réplication unanime, mais cela est contredit par le fait que le cluster continue à fonctionner même si un nœud échoue.
Analyse et Implications
Nos tests ont révélé que MariaDB Galera Cluster 12.1.2 peut perdre des transactions valides en cas de crash de processus coordonné. Cela contredit les affirmations de la documentation de MariaDB selon lesquelles les transactions sont répliquées de manière synchrone sur tous les nœuds. De plus, les tests ont montré que le cluster peut présenter des anomalies de cohérence, notamment des pertes d'écriture et des lectures non répétables.
Perspective
Il est important de noter que les limites de MariaDB Galera Cluster 12.1.2 peuvent avoir des implications importantes pour les applications qui requièrent une forte cohérence des données. Les utilisateurs doivent être conscients de ces limites et prendre des mesures pour les atténuer, telles que l'utilisation de mécanismes de verrouillage explicites ou la mise en œuvre de stratégies de réplication personnalisées. De plus, il est essentiel de surveiller les mises à jour et les correctifs de MariaDB pour améliorer la cohérence et la fiabilité du cluster.