Ich habe von zwei Arten von Datenbankarchitekturen gehört.
Meister-Meister
Master-Slave
Ist der Master-Master nicht besser für das heutige Web geeignet, weil es wie Git ist, jede Einheit hat den gesamten Datensatz und wenn einer ausfällt, spielt es keine Rolle.
Master-Slave erinnert mich an SVN (was ich nicht mag), wo Sie eine Zentraleinheit haben, die die Sache erledigt.
Fragen:
Was sind die Vor- und Nachteile von jedem?
Wenn Sie eine lokale Datenbank wie das iPhone in Ihrem Mobiltelefon haben möchten, welche ist besser geeignet?
Ist die Wahl eines dieser Faktoren ein kritischer Faktor, der gründlich berücksichtigt werden muss?
Antworten:
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
quelle
Während der Recherche auch die verschiedenen Datenbankarchitekturen. Ich habe ein gutes Stück Informationen zusammengestellt, die für jemanden relevant sein könnten, der in Zukunft forscht. Ich bin rübergekommen
Ich habe mich entschlossen, MySQL Cluster für meinen Anwendungsfall zu verwenden. Die verschiedenen Vor- und Nachteile, die ich zusammengestellt habe, finden Sie weiter unten
1. Master-Slave-Replikation
Vorteile
Nachteile
2. Master-Master-Replikation
Vorteile
Nachteile
3. MySQL Cluster
Das neue Kind in der Stadt basierend auf MySQL-Cluster-Design. Der MySQL-Cluster wurde unter Berücksichtigung der hohen Verfügbarkeit und Skalierbarkeit entwickelt und ist die ideale Lösung für Umgebungen, in denen keine Ausfallzeiten, hohe Verfügbarkeit und horizontale Skalierbarkeit erforderlich sind.
Weitere Informationen finden Sie unter MySQL Cluster 101
Vorteile
Nachteile
Sie können für meinen Blog eine vollständige Aufschlüsselung mit Architekturdiagrammen besuchen , die weitere Details zu den drei genannten Architekturen enthält.
quelle