Entwerfen von datenintensiven Anwendungen (German Edition), 2nd Edition
by Martin Kleppmann, Chris Riccomini
Kapitel 8. Transaktionen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Einige Autoren haben behauptet, dass ein allgemeines Zwei-Phasen-Commit aufgrund der damit verbundenen Leistungs- oder Verfügbarkeitsprobleme zu teuer ist. Wir sind der Meinung, dass es besser ist, wenn Anwendungsprogrammierer sich mit Leistungsproblemen aufgrund einer übermäßigen Nutzung von Transaktionen befassen, sobald Engpässe auftreten, anstatt immer um den Mangel an Transaktionen herum zu programmieren.
James Corbett et al., „Spanner: Googles global verteilte Datenbank“ (2012)
In der harten Realität von Datensystemen kann echt viel schiefgehen:
-
Die Datenbank-Software oder -Hardware kann jederzeit fehlschlagen (auch mitten in einem Schreibvorgang ).
-
Die Anwendung kann jederzeit abstürzen (auch mitten in einer Reihe von Vorgängen).
-
Unterbrechungen im Netzwerk können unerwartet die Verbindung zwischen der Anwendung und der Datenbank oder zwischen einem Datenbankknoten und einem anderen unterbrechen.
-
Mehrere Clients können gleichzeitig in die Datenbank schreiben und dabei die Änderungen der anderen überschreiben.
-
Ein Client kann Daten lesen, die keinen Sinn ergeben, weil sie nur teilweise aktualisiert wurden.
-
Wettläufe zwischen Clients können zu überraschenden Fehlern führen.
Um zuverlässig zu sein, muss ein System mit all diesen Arten von Fehlern umgehen können und sicherstellen, dass sie keine katastrophalen ...
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