J'ai entendu parler de deux types d'architectures de base de données.
maître-maître
Maître d'esclave
Le maître-maître n'est-il pas plus adapté au web d'aujourd'hui car c'est comme Git, chaque unité a l'ensemble des données et si l'une d'entre elles tombe en panne, cela n'a pas vraiment d'importance.
Le maître-esclave me rappelle SVN (que je n'aime pas) où vous avez une unité centrale qui gère les choses.
Des questions:
Quels sont les avantages et les inconvénients de chacun?
Si vous souhaitez avoir une base de données locale dans votre téléphone mobile comme l'iPhone, laquelle est la plus appropriée?
Le choix de l'un de ces éléments est-il un facteur critique à considérer à fond?
Réponses:
Nous négocions disponibilité, cohérence et complexité. Pour répondre d'abord à la dernière question: est-ce important? Oui beaucoup! Les choix concernant la façon dont vos données doivent être gérées sont absolument fondamentaux, et il n'y a pas de «meilleure pratique» pour éviter les décisions. Vous devez comprendre vos besoins particuliers.
Il y a une tension fondamentale:
Une copie: la cohérence est facile, mais si elle est en panne, tout le monde est hors de l'eau, et si les gens sont éloignés, ils peuvent payer des frais de communication horribles. Apportez des appareils portables, qui peuvent devoir fonctionner déconnectés, dans l'image et une copie ne la coupera pas.
Master Slave: la cohérence n'est pas trop difficile car chaque élément de données a exactement un maître propriétaire. Mais alors que faites-vous si vous ne pouvez pas voir ce maître, une sorte de travail reporté est nécessaire.
Master-Master: eh bien si vous pouvez le faire fonctionner, il semble tout offrir, pas de point de défaillance unique, tout le monde peut travailler tout le temps. Le problème avec ceci est qu'il est très difficile de préserver une cohérence absolue. Consultez l' article de wikipedia pour en savoir plus.
Wikipédia semble avoir un bon résumé des avantages et des inconvénients
la source
Tout en recherchant également les différentes architectures de bases de données. J'ai compilé un bon nombre d'informations qui pourraient être pertinentes pour quelqu'un d'autre effectuant des recherches à l'avenir. Je suis tombé sur
J'ai décidé de me contenter d'utiliser MySQL Cluster pour mon cas d'utilisation. Cependant, veuillez voir ci-dessous les différents avantages et inconvénients que j'ai compilés
1. Réplication maître-esclave
Avantages
Les inconvénients
2. Réplication maître-maître
Avantages
Les inconvénients
3. Cluster MySQL
Le petit nouveau de la ville basé sur la conception de cluster MySQL. Le cluster MySQL a été développé dans un souci de haute disponibilité et d'évolutivité et constitue la solution idéale à utiliser pour les environnements qui ne nécessitent aucun temps d'arrêt, une disponibilité élevée et une évolutivité horizontale.
Voir MySQL Cluster 101 pour plus d'informations
Avantages
Les inconvénients
Vous pouvez visiter pour mon blog la ventilation complète, y compris les diagrammes d'architecture qui vont dans plus de détails sur les 3 architectures mentionnées.
la source