Réponses:
Ces 3 choses n'ont rien à faire l'une avec l'autre. Je vais vous donner une introduction et vous pouvez rechercher ou demander plus de détails séparément:
MySQL Cluster est le nom marketing de ce que beaucoup d'entre nous appellent - pour éviter les confusions comme celle dont vous souffrez actuellement - "NDB Cluster" ou "MySQL NDB Cluster". Il s'agit d'un magasin de valeurs-clés synchrone, principalement réservé à la mémoire, qui permet une architecture sans partage pour MySQL (fournissant un backend au moteur NDB). Il fournit un partage automatique (donc, un meilleur débit de lecture et d'écriture) et une haute disponibilité. Il fonctionne bien pour les systèmes de petites données à valeur clé et à haut débit, mais il est relativement complexe à configurer (conduisant à des problèmes s'il n'est pas configuré correctement ou s'il est utilisé de manière involontaire) et ce n'est pas la meilleure latence. sage (vitesse brute). Il s'agit d'une version simplifiée (elle peut être utilisée pour autre chose que la mémoire seule et la valeur-clé, mais elle a été conçue autour d'elle). À mon avis, une très bonne pièce d'ingénierie, mais elle a des cas d'utilisation limités, car il s'agit d'un produit différent du serveur MySQL standard avec des téléchargements séparés (et nécessite l'utilisation d'un moteur spécifique).
MySQL Fabric est un ensemble d'outils / middleware écrit en python qui permet la gestion d'un ensemble de serveurs MySQL réguliers dans un environnement GTID répliqué . Ce n'est pas un cluster en soi, mais il en facilite la gestion. Il a des liens vers (pour l'instant) des connecteurs Java et Python, donc il peut gérer automatiquement le partage et la haute disponibilité des serveurs, mais c'est une couche au-dessus des serveurs MySQL réguliers et une réplication régulière (des moteurs de stockage réguliers comme InnoDB peuvent être utilisés) . La réplication, jusqu'à présent, est asynchrone (ou semi-synchrone), de sorte qu'elle peut ne pas fournir à elle seule la meilleure cohérence et sécurité; cela pourrait changer dans les futures versions 5.7. Cependant, cette approche a moins de temps de latence et utilise la technologie de réplication plus familière de MySQL DBA. MySQL Fabric est un enfant relativement nouveau dans le quartier, donc pas encore très étendu, mais il semble que ce soit la réaction d'Oracle (avec la réplication synchrone annoncée) aux clusters concurrents de Galera.
Si vous avez eu besoin de partitionnement et de HA, vous pouvez utiliser l'un des 2 anciens produits, mais probablement pour des scénarios totalement différents.
WebScaleSQL n'est pas une solution HA, comme les précédentes, c'est juste le nom que plusieurs entreprises ont donné à un fork / version de MySQL où elles partagent les correctifs spécifiques dont elles ont besoin et peut-être qu'Oracle n'a pas appliqué. Pour autant que je sache, il a été créé par Facebook, Twitter, LinkedIn et Google, et ils rebasent leurs propres versions de MySQL au-dessus de cette base commune. Ils ne fournissent pas de support ou de versions binaires. Si vous êtes un utilisateur final, vous ne devriez probablement pas vous soucier de l'utiliser, mais vous devez garder un œil sur le projet pour voir ce qui en découlera ou la réponse des autres fournisseurs.
Si vous essayez d'apprendre / commencer avec MySQL HA / scaling, commencez par la réplication de base de MySQL (ce n'est peut-être pas le meilleur, mais c'est la chose la plus simple pour commencer), alors vous pouvez continuer à partir de là vers d'autres solutions: DRBD [ sic], réplication GTID, NDB, Galera, Tungsten.
MySQL Fabric est implémenté en tant que nœud / processus MySQL Fabric (qui exécute des fonctions de gestion) et connecteurs compatibles Fabric capables de router les requêtes et les transactions directement vers le serveur MySQL le plus approprié. Le nœud MySQL Fabric stocke les informations d'état et de routage dans son magasin d'état (qui est une base de données MySQL).
MySQL Cluster est une technologie qui permet le clustering de bases de données en mémoire dans un système de partage rien. L'architecture sans partage permet au système de fonctionner avec du matériel très peu coûteux et avec un minimum d'exigences spécifiques pour le matériel ou les logiciels.