Entwerfen von datenintensiven Anwendungen (German Edition), 2nd Edition
by Martin Kleppmann, Chris Riccomini
Kapitel 10. Konsistenz und Konsens
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Ein altes Sprichwort warnt: „Go niemals mit zwei Chronometern zur See, nimm entweder einen oder drei mit.“
Frederick P. Brooks Jr., The Mythical Man-Month: Essays zur Softwareentwicklung (1995)
Wie in Kapitel 9 besprochen, kann in verteilten Systemen vieles schiefgehen. Wenn wir wollen, dass ein Dienst trotz dieser Probleme weiterhin korrekt funktioniert, müssen wir Wege finden, um Fehler zu tolerieren.
Eines der besten Tools, das wir für die Fehlertoleranz haben, ist die Replikation. Wie wir aber in Kapitel 6 gesehen haben, erhöht sich durch mehrere Kopien der Daten auf mehreren Replikaten das Risiko von Inkonsistenzen. Lesevorgänge könnten von einem Replikat verarbeitet werden, das nicht auf dem neuesten Stand ist, was zu veralteten Ergebnissen führt. Wenn mehrere Replikate Schreibvorgänge akzeptieren können, müssen wir uns mit möglichen Konflikten zwischen Werten befassen, die gleichzeitig auf verschiedene Replikate geschrieben wurden. Auf hoher Ebene gibt es zwei konkurrierende Philosophien für den Umgang mit solchen Problemen:
- Eventuelle Konsistenz
-
Bei dieser Philosophie wird die Tatsache, dass ein System repliziert wird, für die Anwendung sichtbar gemacht, und von dir als Anwendungsentwickler wird erwartet, dass du dich mit den Inkonsistenzen und Konflikten befasst, die dabei auftreten können. Dieser Ansatz ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access