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

Un aperçu de MariaDB Xpand (anciennement ClustrixDB)

MariaDB Xpand est un nouveau produit de MariaDB. Il était auparavant connu sous le nom de ClustrixDB qui a été acquis en septembre 2018 par MariaDB Corporation.

ClustrixDB n'est plus disponible en tant qu'entité distincte, mais est désormais inclus dans MariaDB Enterprise Server. Désormais appelé Xpand, il étend MariaDB Enterprise Server avec un traitement distribué des données et des transactions, le transformant en une base de données SQL distribuée capable de s'adapter à des millions de transactions par seconde avec une architecture sans partage. Cependant, Xpand n'est pas un tout ou rien, car les DBA peuvent choisir d'utiliser à la fois des tables répliquées et distribuées. Xpand convient aux requêtes complexes et au traitement analytique, car il peut effectuer des requêtes parallèles sur les nœuds disponibles au sein du cluster.

Fondamentalement, Xpand est une architecture sans partage et conçue comme une base de données SQL évolutive, construite à partir de zéro qui pouvait à l'origine fonctionner sur du matériel standard avec redistribution automatique des données (vous n'avez donc jamais besoin de partitionner ). Il dispose d'une tolérance aux pannes intégrée, le tout accessible par une simple interface SQL et prend en charge les fonctionnalités MySQL critiques pour l'entreprise (réplication, déclencheurs, routines stockées, etc.). Sa licence n'est disponible qu'en tant que propriétaire, donc si vous souhaitez profiter de ce produit, vous devez d'abord contacter les ventes de MariaDB afin d'acquérir une licence valide.

Quand utiliser MariaDB Xpand

Xpand est conçu pour gérer de gros volumes de données et vous permet de faire évoluer votre base de données plus efficacement. Cela signifie que la mise à l'échelle de votre cluster est effectuée facilement et automatiquement par Xpand lui-même. Depuis la sortie de MariaDB Platform X5, Xpand fait déjà partie de la plateforme fournie aux clients dans le cadre de la solution SQL distribuée. Le moteur intelligent Xpand permet aux clients d'évoluer au-delà du point idéal du moteur de stockage InnoDB pour les charges de travail de lecture/écriture mixtes hautes performances sur un seul nœud avec la possibilité d'ajouter une échelle via la réplication et d'utiliser une solution distribuée hautement disponible et tolérante aux pannes pour les grandes faire évoluer les charges de travail.

Avec Xpand, vous avez la possibilité d'évoluer sur une base par table. Commencez par utiliser Xpand pour une seule table et développez l'utilisation à mesure que vos besoins dépassent ce qu'un seul nœud peut gérer. Augmentez l'utilisation du SQL distribué à mesure que les besoins de votre entreprise vont au-delà de la réplication ou du clustering. Lorsque les volumes de données ou de requêtes augmentent au point de dégrader les performances, vous pouvez utiliser Xpand pour distribuer des tables ou la totalité de la base de données afin d'améliorer le débit et la simultanéité. Xpand est doté d'une haute disponibilité et d'une élasticité intégrées, de sorte que des nœuds peuvent être ajoutés ou supprimés de manière transparente selon les besoins pour évoluer.

Tout comme avec MariaDB ColumnStore, le moteur intelligent en colonne, les JOIN inter-moteurs sont possibles (et encouragés) entre les tables répliquées et distribuées. Contrairement à d'autres implémentations de SQL distribué qui distribuent l'intégralité de la base de données et ont, par conséquent, une surcharge importante sur des tables plus petites, MariaDB permet l'utilisation combinée d'InnoDB pour de petits ensembles de données répliqués et des ensembles de données distribués massifs via Xpand.

Malheureusement, il n'y a pas de documentation formelle concernant l'état du changement de ClustrixDB vers MariaDB Xpand, vous pouvez donc toujours vous fier à https://docs.clustrix.com/ pour obtenir de la documentation sur le fonctionnement de ClustrixDB. Il est également connu que GTID n'est pas pris en charge par ClustrixDB, bien que cela ait pu changer depuis la sortie de MariaDB 10.5.

Comment fonctionne MariaDB Xpand ?

Le déploiement à l'aide de MariaDB Xpand nécessite que vous ayez des serveurs MariaDB Enterprise avec le plug-in Xpand installé, puis les nœuds Xpand en cours d'exécution. C'est similaire à la façon dont vous configurez la configuration de la réplication MaxScale et MariaDB Server pour la haute disponibilité et vous pouvez placer MaxScale au-dessus pour gérer les connexions et basculer de manière transparente entre les instances frontales Enterprise Server avec des ensembles de données répliqués plus petits dans InnoDB. Il est également recommandé que pour une meilleure expérience de performance avec Xpand, les serveurs frontaux et les nœuds doivent être exécutés sur des serveurs physiques distincts. Voir l'architecture de topologie MariaDB Xpand ci-dessous de MariaDB pour savoir comment cela fonctionne :

https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /

Pour expliquer plus en détail ci-dessus, Xpand divise un certain nombre de tranches pour chaque table construite à l'aide de Xpand. Chaque tranche est stockée sur un nœud principal, puis répliquée sur un ou plusieurs autres nœuds pour garantir la tolérance aux pannes. Chaque nœud Xpand peut effectuer à la fois des lectures et des écritures. Et chaque nœud a une carte de la distribution des données.

Pour les opérations de lecture, la majeure partie de la requête est transmise à Xpand où la requête est évaluée et les parties pertinentes de la requête sont ensuite envoyées aux nœuds Xpand appropriés. MariaDB Enterprise Server collecte les données de retour des nœuds Xpand pour générer un ensemble de résultats.

Pour les opérations d'écriture, MariaDB Xpand utilise un composant appelé « rééquilibreur » pour distribuer automatiquement et de manière transparente les données sur les nœuds Xpand disponibles.

MariaDB Xpand en SQL distribué

Chaque nœud Xpand est capable d'effectuer à la fois des lectures et des écritures. Lorsqu'une requête est reçue par MariaDB Enterprise Server, elle est évaluée par un optimiseur de requête et des parties de la requête sont envoyées aux nœuds Xpand concernés. Les résultats sont collectés et un ensemble de résultats unique est renvoyé au client.

MariaDB Xpand exploite une architecture sans partage ; un seul nœud gère chaque requête, et la mémoire et le stockage ne sont pas partagés.

MariaDB Xpand HA et tolérance aux pannes

MariaDB Xpand est tolérant aux pannes de par sa conception. Xpand conserve deux répliques de toutes les données à l'aide d'un processus de rééquilibrage qui s'exécute en arrière-plan. Xpand peut subir une défaillance d'un seul nœud ou d'une seule zone sans perte de données.

En cas de défaillance d'un nœud, les données sont rééquilibrées à partir des nœuds restants, réparant automatiquement la protection des données sans intervention. En cas de défaillance d'une zone, le rééquilibreur effectue la même opération entre les nœuds et les zones restantes.

Lorsque le nœud défaillant est remplacé, le rééquilibreur redistribue les données, restaurant MariaDB Xpand au nombre de nœuds prévu.

Évolutivité horizontale avec MariaDB Xpand

MariaDB Xpand est flexible de par sa conception. Si la charge sur MariaDB Enterprise Server augmente, vous pouvez ajouter des serveurs supplémentaires à votre déploiement, en équilibrant la charge entre eux à l'aide de MariaDB MaxScale. Chaque serveur peut se connecter aux nœuds Xpand pour accéder aux données stockées sur les tables Xpand.

Si la charge sur MariaDB Xpand augmente, vous pouvez évoluer en ajoutant de nouveaux nœuds. Lorsque vous ajoutez un nœud Xpand au déploiement, le processus de rééquilibrage redistribue les données des nœuds existants. Une fois terminé, le nœud Xpand peut désormais gérer les opérations de lecture et d'écriture à partir des serveurs MariaDB Enterprise.

Si la charge sur MariaDB Xpand diminue, vous pouvez réduire la charge en supprimant des nœuds. Lorsque vous supprimez un nœud Xpand du déploiement, le processus de rééquilibrage redistribue les données aux nœuds restants, garantissant la tolérance aux pannes.

Qu'est-ce qui rend MariaDB Xpand évolutif ?

Il n'y a pas de goulots d'étranglement ni de points de défaillance uniques. Tous les processeurs sont enrôlés pour prendre en charge le traitement des requêtes. Les requêtes sont parallélisées et distribuées dans le cluster aux données pertinentes. Les nouveaux nœuds sont automatiquement reconnus et intégrés au cluster. Les charges de travail et les données sont automatiquement équilibrées sur tous les nœuds du cluster. Le calcul relationnel SQL à l'échelle du cluster et les propriétés ACID éliminent la complexité multinœud du développement et de la gestion d'applications multiniveaux. La complexité généralement requise pour mettre à l'échelle les modèles de base de données existants afin de gérer de gros volumes de données est éliminée. Et à mesure que votre base de données grandit, ajoutez simplement des nœuds.

Plusieurs éléments affectent l'évolutivité et les performances :

  • Architecture sans partage, qui élimine les goulots d'étranglement potentiels. Comparez cela avec les architectures de disque partagé/cache partagé qui goulotent d'étranglement, ne s'adaptent pas et sont difficiles à gérer.
  • Parallélisation des requêtes, qui sont distribuées au(x) nœud(s) avec les données pertinentes. Les résultats sont créés aussi près que possible des données, puis renvoyés au nœud demandeur pour consolidation et renvoyés au client.

Ceci est très différent des autres systèmes, qui déplacent régulièrement de grandes quantités de données vers le nœud qui traite la requête, puis éliminent toutes les données qui ne correspondent pas à la requête (généralement beaucoup de données) . En déplaçant uniquement les données qualifiées sur le réseau vers le nœud demandeur, Xpand réduit considérablement le goulot d'étranglement du trafic réseau. De plus, davantage de processeurs participent au processus de sélection des données. En sélectionnant des données sur plusieurs nœuds en parallèle, le système produit des résultats plus rapidement que si toutes les données étaient sélectionnées par un seul nœud, qui doit d'abord collecter toutes les données requises de l'autre. nœuds dans le système.

Étant donné que chaque nœud se concentre sur une partition particulière et envoie des éléments de travail à d'autres nœuds plutôt que de demander des données brutes à d'autres nœuds, le cache de chaque nœud contient plus de données de ce nœud et moins de données redondantes provenant d'autres nœuds. Cela signifie que les taux d'accès au cache seront beaucoup plus élevés, ce qui réduira considérablement le besoin d'accès au disque lents.

Déployer MariaDB Xpand

Il existe deux déploiements MariaDB Xpand distincts pour commencer à utiliser MariaDB Xpand. Les déploiements Xpand consistent en des instances MariaDB Enterprise Server, appelées serveurs frontaux, sur lesquelles le plug-in Xpand est installé, puis les nœuds Xpand s'exécutent parallèlement à ces serveurs frontaux. Pour des performances optimales, le serveur d'entreprise et le nœud Xpand peuvent être installés sur des serveurs physiques distincts.

  1. Vous devez configurer le nœud MariaDB Xpand. Les nœuds Xpand sont configurés dans un déploiement pour fournir le back-end de stockage pour les serveurs MariaDB Enterprise avec le plug-in de moteur de stockage Xpand. Les serveurs stockent les données des tables Xpand sur les nœuds Xpand plutôt que sur le système de fichiers local. L'installation du nœud Xpand nécessite une licence, qui est un objet JSON, et vous ne pouvez l'acquérir qu'en contactant MariaDB Sales. Le processus d'installation n'est pas aussi rapide qu'une simple commande ou un seul clic, nous vous suggérons donc de consulter leur guide d'installation pour le nœud Xpand.
  2. Déployez un serveur frontal. Comme ce que j'ai remarqué ici au cours des modifications qu'ils ont apportées, il semble que la manière la plus recommandée d'utiliser Xpand utilise MariaDB Enterprise Server 10.5. L'Xpand 

Compatibilité matérielle MariaDB Xpand

Si vous êtes curieux de connaître sa compatibilité matérielle, la plate-forme MariaDB peut fonctionner dans une variété d'environnements. Tant que vos serveurs MariaDB peuvent fonctionner ou être hébergés sur les environnements que vous utilisez actuellement, tant que vous êtes en mesure de configurer les nœuds Xpand avec les serveurs MariaDB et que les plugins Xpand sont installés, cela fonctionnera certainement. D'après leur documentation, la liste des environnements physiques et cloud est répertoriée ci-dessous :

  • Sur site (sur site)
  • Colocalisé (colo)
  • Cloud privé
  • Cloud public
  • hybride

Pour l'architecture matérielle, il convient de noter qu'à partir de MariaDB Enterprise Server 10.4.10-4 (2019-11-18), MariaDB Enterprise Server ne prend en charge que les plates-formes d'architecture matérielle x86_64.

Conclusion

MariaDB Xpand simplifie l'efficacité et l'évolutivité de manière très pratique. L'aspect le plus attrayant de ce produit est que vous pouvez également utiliser les fonctions SQL standard de MariaDB. Il peut être intégré à votre environnement MariaDB existant, qui peut tirer parti de ses fonctionnalités et de son évolutivité. Bien que cela puisse être attrayant, cela nécessite une licence spéciale et des frais importants pour que vous puissiez tirer parti de ce produit. Si cela sert un objectif pour votre application d'entreprise, alors ce MariaDB Xpand pourrait valoir la peine d'être essayé.