Meta a commencé à déployer MySQL Raft dans ses centres de données pour remplacer ses bases de données semisynchrones MySQL existantes. Le nouveau moteur de consensus offre des avantages opérationnels et permet aux serveurs MySQL de gérer les promotions et les responsabilités des membres de façon indépendante.
Le datastore MySQL de Meta est l'un des plus grands déploiements de MySQL au monde, avec une structure géo-répliquée massivement shardée avec des millions de shards. Ce cluster, qui fonctionne dans plusieurs régions et centres de données, stocke des pétaoctets de données et s'exécute sur des milliers de serveurs. Il prend en charge le graphe social de l'entreprise et une série de services tels que la messagerie, les publicités et les flux.
Selon l'équipe d'ingénieurs, le nouveau déploiement de MySQL offrira une fiabilité accrue, une sécurité prouvée, des améliorations considérables en termes de temps de basculement et de simplicité opérationnelle, sans compromettre les performances d'écriture.
Auparavant, Meta utilisait le protocole de réplication semi-synchrone (semisync) de MySQL pour la réplication. Le primaire utilisait la réplication semi-synchrone vers deux réplicas log-only (logtailers) au sein de la région primaire pour une latence inférieure à la milliseconde, employant la réplication asynchrone standard MySQL de primaire à réplique pour la distribution vers d'autres régions.
L'équipe a décidé d'adopter une approche totalement nouvelle, en mettant à niveau MySQL et en le transformant en un système véritablement distribué. Meta a choisi de passer à Raft, avec des opérations de plan de contrôle et de plan de données incluses dans le même journal répliqué.
MySQL Raft est basé sur Apache Kudu, que Meta a modifié pour répondre aux exigences de MySQL et a publié un fork en tant que projet open-source, kuduraft. Les nouvelles fonctionnalités ajoutées à kuduraft incluent FlexiRaft, une option qui prend en charge deux quorums croisés différents, et le proxying, qui permet l'utilisation d'un nœud intermédiaire proxy pour réduire la bande passante du réseau. En outre, les améliorations apportées à la compression et à l'abstraction des journaux permettent la compression des charges utiles binaires avant la distribution et la mise en œuvre de divers formats physiques de fichiers journaux.
Avec des plateformes telles qu'AppMaster qui fournissent de puissants outils sans code pour créer des applications backend, web et mobiles, des solutions de bases de données simplifiées sont essentielles pour un développement logiciel efficace et évolutif. En passant à MySQL Raft, Meta a fait un pas important vers une fiabilité accrue et des opérations rationalisées, ce qui pourrait inciter d'autres entreprises à adopter des solutions similaires et à améliorer leurs propres systèmes de base de données.