Théorème CAP et MySQL
Il existe un théorème CAP: R + W> N. Disons que j'ai W = 1 (maître), R = 6 (esclaves), N = 6, donc un esclave peut écrire et lire. Comme le dit le théorème, nous pouvons être sûrs d'une cohérence forte (nous obtiendrons toujours la valeur la plus récente).
J'ai lu que le stockage de données pouvait vérifier la version et renvoyer la plus récente. Mais est-ce vrai d'utiliser MySQL? Ou peut-être devons-nous utiliser n'importe quel type d'intermédiaire? Comment le théorème CAP s'applique-t-il à MySQL?
Réponses
Ce que vous proposez n'est pas vraiment le théorème CAP, à moins que le cluster ne soit totalement une architecture sans partage. Veuillez noter quel théorème CAP provient de mon ancien post de Jan 01, 2013: La cohérence dans le théorème ACID et CAP, sont-ils identiques?
CASQUETTE
- Cohérence (tous les nœuds ont les mêmes données via une cohérence éventuelle)
- Disponibilité
- Partition-Tolerance: le système continue de fonctionner malgré une perte de message arbitraire ou une panne d'une partie du système
Chaque nœud aurait une copie complète de l'ensemble de données complet. Le cluster de base de données donné devrait être compatible avec l'éventuelle cohérence, c'est-à-dire avoir une prise en charge de la conformité ACID à l'échelle du cluster.
VOTRE VÉRITABLE QUESTION
Mais est-ce vrai d'utiliser MySQL? Ou peut-être avons-nous besoin d'un quelconque intermédiaire? Comment le théorème CAP s'applique-t-il à MySQL?
Les configurations MySQL qui fonctionnent sur le théorème CAP sont les suivantes:
- Cluster InnoDB
- Cluster MariaDB Galera
- Cluster Percona XtraDB
Votre meilleur intermédiaire ??? Si les données que vous écrivez sont critiques et doivent être disponibles, lisez les données du maître que vous avez écrit. Dans l'une des configurations de cluster susmentionnées, n'importe quel nœud peut être un maître. Si les données sont écrites sur un maître, ils doivent tous les avoir et être prêts à être relus à condition que tous les nœuds d'un cluster exécutent COMMIT sur cette même transaction donnée .
Si vous avez des esclaves attachés à ces maîtres, chaque esclave doit attendre sur son Master COMMIT pour que les données soient répliquées et deviennent visibles sur un esclave.