Avec la croissance continue des volumes de données métier et de la pression d'accès, les bases de données mononœud peuvent atteindre leurs limites en matière de capacité de stockage et de performances en lecture/écriture. Les tables partitionnées de cluster multi-master de PolarDB for MySQL divisent horizontalement les données en plusieurs shards physiques selon des clés de distribution, tandis que plusieurs nœuds en lecture/écriture assument conjointement la charge métier. Cette solution combine l'élasticité du stockage partagé avec la capacité de mise à l'échelle horizontale du calcul distribué, améliorant ainsi le débit simultané pour les charges de travail à grande échelle.
Architecture du produit
Les tables partitionnées de cluster multi-master adoptent une architecture dissociant le stockage du calcul :
Couche de stockage : elle mutualise les ressources de stockage (stockage partagé) et assure une allocation des ressources à la demande.
Couche de calcul : elle permet à plusieurs nœuds de lire et d'écrire simultanément (architecture shared-nothing), offrant ainsi une mise à l'échelle horizontale des performances en lecture/écriture.
Champ d'application
Seule la version 8.0.2 du noyau de PolarDB for MySQL prend en charge les tables partitionnées de cluster multi-master.
Principaux avantages et fonctionnalités
-
Fractionnement horizontal automatique
Lors de la création d'une table partitionnée de cluster multi-master, spécifiez une clé de distribution. Le système répartit automatiquement les données sur différents shards physiques selon les règles de distribution définies.
-
Transparence pour l'application
L'utilisation des tables partitionnées de cluster multi-master est similaire à celle des tables classiques. Les applications n'ont généralement pas besoin de connaître la répartition physique des données.
-
Mise à l'échelle horizontale des écritures
Plusieurs nœuds en lecture/écriture peuvent traiter simultanément les tâches d'écriture. Les ressources de calcul s'adaptent avec souplesse à la charge métier.
-
DDL distribué intégré
Un framework DDL distribué entièrement intégré garantit que toutes les opérations connexes, telles que l'ajout ou la suppression d'index et la modification des définitions de colonnes, se déroulent de manière fluide dans un processus unifié et transparent, simplifiant considérablement la maintenance.
-
Capacité de lecture globale
Les nœuds en lecture seule globaux permettent d'accéder aux données de l'ensemble du cluster pour exécuter des requêtes en lecture seule transversales aux bases de données et aux shards, sans avoir à déployer des clusters d'agrégation supplémentaires ni des liens de synchronisation DTS.
Cas d'utilisation
Les tables partitionnées de cluster multi-master constituent une forme d'organisation des données proposée par Multi-master Cluster (Limitless). Elles sont principalement conçues pour les scénarios applicatifs caractérisés par de grands volumes de données et des lectures/écritures hautement concurrentes, tels que le commerce électronique et les jeux vidéo.
-
Scénarios de transactions e-commerce
Pour les tables volumineuses, les écritures hautement concurrentes et les charges de travail présentant des points chauds, les clés de distribution permettent de répartir les données et la pression d'accès sur plusieurs nœuds en lecture/écriture, réduisant ainsi la charge sur un nœud unique.
-
Scénarios de sharding de base de données et de tables
Pour les charges de travail ayant déjà adopté une architecture de sharding de base de données et de tables, cette solution offre un fractionnement transparent des données et des capacités DDL distribuées intégrées, ce qui réduit les coûts liés aux modifications applicatives et à la maintenance quotidienne.
Comparaison des performances
Sysbench a servi à effectuer des tests de charge sur deux bases de données distribuées commerciales majeures du marché (base de données distribuée 1 et base de données distribuée 2), ainsi que sur les tables partitionnées de cluster multi-master de PolarDB :
Description du test : Sur les pages d'achat, souscrivez respectivement à la base de données distribuée 1, à la base de données distribuée 2 et aux tables partitionnées de cluster multi-master de PolarDB, en veillant à ce que les clusters achetés présentent le même coût.
Procédure de test : Sysbench s'exécute sur une instance de test ECS dotée de 32 cœurs et de 128 Go de mémoire. Des tests de performance sont réalisés sur chaque base de données distribuée via 128 threads de requêtes concurrents. Quatre modèles de charge de travail sont évalués : oltp_point_select, oltp_read_only, oltp_write_only et oltp_read_write, afin de mesurer les performances de chaque base de données distribuée.
Résultats des tests : Voici la comparaison des performances de chaque base de données distribuée, illustrée par le QPS (requêtes par seconde) :

Dans l'environnement de test et sous les charges de travail décrits ci-dessus, les tables partitionnées de cluster multi-master de PolarDB affichent de bonnes performances globales. Les performances réelles peuvent varier en fonction de facteurs tels que les spécifications de l'instance, l'échelle des données, leur distribution et la charge métier.