MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Quoi de neuf dans MySQL Galera Cluster 4.0

MySQL Galera Cluster 4.0 est le nouveau venu dans le domaine des bases de données avec de nouvelles fonctionnalités très intéressantes. Actuellement, il n'est disponible que dans le cadre de MariaDB 10.4, mais à l'avenir, il fonctionnera également avec MySQL 5.6, 5.7 et 8.0. Dans cet article de blog, nous aimerions passer en revue certaines des nouvelles fonctionnalités fournies avec Galera Cluster 4.0.

Réplication Galera Cluster Streaming

La nouvelle fonctionnalité la plus importante de cette version est la réplication en continu. Jusqu'à présent, le processus de certification du Galera Cluster fonctionnait de telle sorte que des transactions entières devaient être certifiées une fois terminées.

Ce processus n'était pas idéal dans plusieurs scénarios...

  1. Hotspots dans les tableaux, les lignes qui sont très fréquemment mises à jour sur plusieurs nœuds - des centaines de transactions rapides s'exécutant sur plusieurs nœuds, la modification du même ensemble de lignes entraîne des blocages fréquents et l'annulation des transactions
  2. Transactions de longue durée - si une transaction prend beaucoup de temps à se terminer, cela augmente sérieusement les chances qu'une autre transaction, entre-temps, sur un autre nœud, puisse modifier certaines des lignes qui ont également été mises à jour par la transaction longue. Cela a entraîné un blocage lors de la certification et l'une des transactions a dû être annulée.
  3. Transactions importantes - si une transaction modifie un nombre important de lignes, il est probable qu'une autre transaction, au même moment, sur un nœud différent, modifie une des lignes déjà modifiée par la grande transaction. Cela entraîne un blocage lors de la certification et l'une des transactions doit être annulée. En plus de cela, les transactions importantes prendront plus de temps pour être traitées, envoyées à tous les nœuds du cluster et certifiées. Ce n'est pas une situation idéale, car cela retarde les validations et ralentit l'ensemble du cluster.

Heureusement, la réplication en continu peut résoudre ces problèmes. La principale différence est que la certification se produit par tranches où il n'est pas nécessaire d'attendre que toute la transaction soit terminée. Par conséquent, même si une transaction est importante ou longue, la majorité (ou la totalité, selon les paramètres dont nous parlerons dans un instant) des lignes sont verrouillées sur tous les nœuds, empêchant les autres requêtes de les modifier.

Options de réplication en continu du cluster MySQL Galera

Il existe deux options de configuration pour la réplication en continu : 

wsrep_trx_fragment_size 

Cela indique la taille d'un fragment (par défaut, il est défini sur 0, ce qui signifie que la réplication en continu est désactivée)

wsrep_trx_fragment_unit 

Cela indique ce qu'est réellement le fragment. Par défaut, il s'agit d'octets, mais il peut également s'agir d'une "instruction" ou d'une "ligne".

Ces variables peuvent (et doivent) être définies au niveau de la session, ce qui permet à l'utilisateur de décider quelle requête particulière doit être répliquée à l'aide de la réplication en continu. Définir l'unité sur "instructions" et la taille sur 1 permet, par exemple, d'utiliser la réplication en continu uniquement pour une seule requête qui, par exemple, met à jour un point d'accès.

Vous pouvez configurer Galera 4.0 pour certifier chaque ligne que vous avez modifiée et saisir les verrous sur tous les nœuds ce faisant. Cela rend la réplication en continu idéale pour résoudre les problèmes de blocages fréquents qui, avant Galera 4.0, ne pouvaient être résolus qu'en redirigeant toutes les écritures vers un seul nœud.

Tableaux WSREP

Galera 4.0 introduit plusieurs tableaux, qui aideront à surveiller l'état du cluster :

  • wsrep_cluster
  • wsrep_cluster_members
  • wsrep_streaming_log

Tous sont situés dans le schéma 'mysql'. wsrep_cluster fournira un aperçu de l'état du cluster. wsrep_cluster_members vous donnera des informations sur les nœuds qui font partie du cluster. wsrep_streaming_log aide à suivre l'état de la réplication en continu.

Fonctionnalités à venir du cluster Galera

Codership, la société derrière la Galera, n'est pas encore terminée. Nous avons pu obtenir un aperçu de la feuille de route du PDG, Seppo Jaakola, qui a été donnée à Percona Live plus tôt cette année. Apparemment, nous allons voir des fonctionnalités telles que la prise en charge des transactions XA et le cryptage gcache. C'est une très bonne nouvelle.

La prise en charge des transactions XA sera possible grâce à la réplication en streaming. En bref, les transactions XA sont les transactions distribuées qui peuvent s'exécuter sur plusieurs nœuds. Ils utilisent une validation en deux phases, qui nécessite d'abord d'acquérir tous les verrous requis pour exécuter la transaction sur tous les nœuds, puis, une fois cela fait, de valider les modifications. Dans les versions précédentes, Galera n'avait pas les moyens de verrouiller les ressources sur les nœuds distants, avec la réplication en continu, cela a changé.

Gcache est un fichier qui stocke les jeux d'écriture. Son contenu est envoyé aux nœuds de jonction qui demandent un transfert de données. Si toutes les données sont stockées dans le gcache, joiner ne recevra que les transactions manquantes dans le processus appelé Incremental State Transfer (IST). Si gcache ne contient pas toutes les données requises, le transfert d'instantané d'état (SST) sera requis et l'ensemble de données devra être transféré au nœud de jonction.

Gcache contient des informations sur les modifications récentes, il est donc formidable de voir son contenu crypté pour une meilleure sécurité. Avec de meilleures normes de sécurité introduites par de plus en plus de réglementations, il est crucial que le logiciel devienne meilleur pour atteindre la conformité.

Conclusion

Nous sommes vraiment impatients de voir comment Galera Cluster 4.0 fonctionnera sur des bases de données que MariaDB. Pouvoir déployer MySQL 5.7 ou 8.0 avec Galera Cluster sera vraiment génial. Après tout, Galera est l'une des solutions de réplication synchrone les plus largement testées disponibles sur le marché.