Wir tauschen Verfügbarkeit, Konsistenz und Komplexität aus. Um die letzte Frage zuerst zu beantworten: Ist das wichtig? Ja, sehr! Die Wahl, wie Ihre Daten verwaltet werden sollen, ist absolut grundlegend, und es gibt keine "Best Practice", die den Entscheidungen ausweicht. Sie müssen Ihre speziellen Anforderungen verstehen.
Es gibt eine grundlegende Spannung:
Eine Kopie: Konsistenz ist einfach, aber wenn es nicht funktioniert, sind alle aus dem Wasser, und wenn die Leute fern sind, können schreckliche Kommunikationskosten anfallen. Bringen Sie tragbare Geräte, die möglicherweise getrennt arbeiten müssen, in das Bild ein, und eine Kopie schneidet es nicht.
Master-Slave: Die Konsistenz ist nicht allzu schwierig, da jedes Datenelement genau einen eigenen Master hat. Aber was machst du dann, wenn du diesen Meister nicht sehen kannst? Eine Art von verschobener Arbeit ist erforderlich.
Master-Master: Nun, wenn Sie es zum Laufen bringen können, dann scheint es alles zu bieten, keine einzige Fehlerquelle, jeder kann die ganze Zeit arbeiten. Das Problem dabei ist, dass es sehr schwierig ist, die absolute Konsistenz aufrechtzuerhalten. Weitere Informationen finden Sie im Wikipedia-Artikel .
Wikipedia scheint eine schöne Zusammenfassung der Vor- und Nachteile zu haben
Vorteile
Wenn ein Master ausfällt, aktualisieren andere Master die Datenbank weiter.
Master können sich an mehreren physischen Standorten befinden, dh über das Netzwerk verteilt.
Nachteile
Die meisten Multi-Master-Replikationssysteme sind nur lose konsistent, dh faul und asynchron, was die ACID-Eigenschaften verletzt.
Eifrige Replikationssysteme sind komplex und führen zu einer gewissen Kommunikationslatenz.
Probleme wie die Konfliktlösung können unlösbar werden, wenn die Anzahl der beteiligten Knoten steigt und die erforderliche Latenz abnimmt.