Moin!
4 Server an verschiedenen Orten, verbunden über Internet
Datenzugriffe/-änderungen erfolgen auf alle 4 Server.Jetzt sollen die Daten (Datenbank, Bilder, Dokumente usw.) möglichst konsistent sein. Eine Verzögerung von 5-10 Minuten ist dabei kein Problem.
CouchDB kann Multi-Master-Replikation sehr gut und einfach. Insbesondere auch bei unzuverlässigen Verbindungen ist die Wiederaufnahme kein Thema, oder alternativ das Anstoßen der Replikation on-demand.
Nur kannst du dann natürlich deine MySQL-DB wegwerfen.
Das kannst du vermutlich aber auch dann, wenn dein Replikationskanal mal abstirbt. Ich erinnere mich, dass MySQL-Replikation nicht ganz so pflegeleicht ist.
Macht es in dem Fall mehr Sinn, Binärdaten als Blob zu speichern, um bei der Replikation die Daten gleich mit zu synchronisieren oder ist es sinnvoller, per rsync über ssh die Dateien extra zu synchronisieren?
Definiere "sinnvoll". Auf welcher Skala wird das bewertet? Geschwindigkeit? Konsistenz? Zuverlässigkeit?
Es ist nicht möglich, dass zwei Personen gleichzeitig das gleiche Dokument bearbeiten. Damit muss dieser Aspekt nicht berücksichtigt werden.
Doch, das ist es grundsätzlich erstmal. Wer verhindert das? Und wie?
Mir geht es in erster Linie um Geschwindigkeit und einfach Handhabung.
Einfache Handhabung: Nimm nur EINS, nicht zwei verschiedene Kanäle. Wenn der eine kaputt ist, merkt man das und repariert ihn.
Geschwindigkeit: Musst du ausmessen. MySQL-Replikation verschickt alle an den Master gesendeten SQL-Kommandos auch an alle Slaves, damit sie dort erneut ausgeführt werden. Das sollte zwar auf Binärebene geschehen, aber Updates schreiben immer alle aktualisierten Daten des Querys nochmal neu auf das Ziel, egal ob die dort schon mal vorlagen.
Gibt es evtl. noch weitere Möglichkeiten für mein Vorhaben? Eine externe Cloud oder sonstige externe Anbieter fallen aus.
CouchDB. ;)
Gibt es noch Aspekte, die ich evtl. nicht berücksichtigt habe?
Du hast behauptet, man könne nicht parallel am gleichen Dokument arbeiten. Das bezweifle ich. Entweder hast du recht große Latenzen, um eine angeforderte Sperrung eines Dokuments erstmal von allen Mastern rückbestätigt zu bekommen, oder das System ist nicht zuverlässig dagegen gesichert.
- Sven Rautenberg