La disponibilité, l'homogénéité et la complexité font l'objet de négociations. 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 esquiver les décisions. Vous devez comprendre vos besoins particuliers.
Il y a une tension fondamentale:
Une copie: la cohérence est facile, mais si cela arrive à être en panne tout le monde est hors de l'eau, et si les gens sont alors à distance peut payer les frais de communication affreuses. Amenez les appareils portables, qui peuvent avoir besoin de fonctionner déconnectés, dans l'image et une copie ne le coupera pas. Maître esclave: la cohérence n'est pas trop difficile car chaque élément de données possède exactement un maître propriétaire. Mais alors que faites-vous si vous ne pouvez pas voir ce maître, une sorte de travail différé est nécessaire. Master-Master: bien si vous pouvez le faire fonctionner, il semble offrir tout, pas de point de défaillance unique, tout le monde peut travailler tout le temps. Le problème est très difficile de préserver la cohérence absolue. Voir le wikipedia article pour plus.
Wikipedia semble avoir un bon résumé des avantages et des inconvénients
Avantages
Si un maître échoue, d'autres maîtres continueront de mettre à jour la base de données .
Les maîtres peuvent être situés dans plusieurs sites physiques, c'est-à-dire répartis sur le réseau.
Inconvénients
La plupart SYSTÈMES DE réplication multi-maîtres ne sont que faiblement cohérente, à savoir paresseux et asynchrone, violant des propriétés acides.
Les systèmes de réplication complexes sont complexes et introduisent une certaine latence de communication .
Des problèmes tels que la résolution de conflits peuvent devenir insolubles car le nombre de nœuds impliqués augmente et la latence requise diminue.
CouchDB utilise MVCC. Est-ce que ce genre de gérer le problème de cohérence face à plusieurs maîtres cause quand un que j'ai mis en ligne à nouveau, le système de gestion des versions gère la cohérence et ce maître obtiendra les données mises à jour correctes. –
Mais que se passe-t-il lorsque deux utilisateurs font quelque chose de contradictoire - comme deux utilisateurs tentent d'acheter le dernier article en stock? Imaginez un scénario où nous avons deux maîtres et chaque utilisateur touche un maître différent, alors nous obtenons une sorte de pépin de communication - à la fin il y aura soit un compromis d'intégrité, soit une disponibilité réduite - on dit à un utilisateur "désolé compagnon, Je ne sais vraiment pas ce qui se passe jusqu'à ce que je parle à l'autre maître », ou nous avons un méchant conflit lorsque les communications sont rétablies - et celles-ci peuvent devenir vraiment compliquées. – djna
Qu'utilisent les marchés financiers ou les marchés boursiers? Ils seraient frapper ce problème tout le temps? – CMCDragonkai