 ##  [Zweiphasen-Commit](/de/node/58889) 

 Definition

Ein verteiltes Protokoll, das einen atomaren Commit über mehrere Teilnehmer koordiniert, indem die Entscheidung in eine Prepare-Phase (Sammeln von Commit-/Abort-Stimmen) und eine Commit-Phase (Anweisung zur Finalisierung) aufgeteilt wird, mit dem Ziel, die Atomizität einer verteilten Transaktion sicherzustellen.

 

 

 

 

 

 





## Prinzip

Prinzip

Ein Koordinator fordert die Teilnehmer auf, sich vorzubereiten und ihre Bereitschaft zu persistieren; stimmen alle für Commit, weist der Koordinator zum Commit an, andernfalls zum Abort. Dauerhafte Logs und deterministische Recovery bei Teilnehmern sind erforderlich, um Korrektheit bei Ausfällen zu wahren.

 

 

 

 

 





## Demonstration

Demonstration

Eine Transaktion aktualisiert zwei Datenbank-Shards: der Koordinator sendet Prepare an beide; jeder Shard schreibt einen 'prepared'-Eintrag und antwortet 'yes'; der Koordinator sendet dann Commit und beide Shards machen die Änderungen dauerhaft und geben Locks frei, wodurch garantiert wird, dass beide entweder committen oder beide abbrechen.

 

 

 

 

## Fehlanwendung

Fehlanwendung

2PC ohne dauerhafte Logs oder ohne Behandlung des Koordinator-Ausfalls einzusetzen, zu erwarten, dass es nicht blockiert, oder es unter häufigen Partitionen ohne Verfügbarkeitsmaßnahmen zu gebrauchen — das kann zu unendlichem Blockieren oder fehlendem Fortschritt führen.

 

 

 

 

 





## Konsequenz

Konsequenz

Starke atomare Commit-Semantik über Teilnehmer hinweg (entweder alle committen oder alle aborten) auf Kosten möglicher Blockierung und Koordinations-Overhead; es vereinfacht das Korrektheitsdenken, kann aber die Verfügbarkeit bei Ausfällen verringern.

 

 

 

 

## Umkehrung

Umkehrung

Optimistische oder eventual-commit-Ansätze (z. B. eventual consistency oder Kompensation), die Verfügbarkeit und Liveness über global atomare Commits stellen und temporäre Inkonsistenzen akzeptieren.

 

 

 

 

 





## Abgrenzung

Abgrenzung

Stellt eine atomare Entscheidung sicher, wenn Teilnehmer antworten und Zustand dauerhaft ist, garantiert aber keinen Fortschritt bei Koordinator-Ausfall (Blockierung möglich) und toleriert nicht automatisch Netzwerkpartitionen; Verbesserungen (3PC, konsensbasierte Commits) sind für nicht blockierende Garantien nötig.

 

 

 

 

 





## Semantische Spannung

Semantische Spannung

Atomare, blockierende Koordination (2PC) versus nicht blockierende, konsensbasierte Commit-Protokolle (oder eventual consistency): Abwägungen zwischen starker Konsistenz und Verfügbarkeit/Liveness in verteilten Systemen.

 

 

 

 

 





## Synthese

Synthese

Ein vom Koordinator gesteuerter zweistufiger Handshake — Prepare dann Commit — der Atomizität verteilter Transaktionen durch einstimmige Prepared-Stimmen und dauerhafte Protokollierung durchsetzt und dabei mögliche Blockierung und Verfügbarkeitsauswirkungen gegen globale Korrektheit eintauscht.