DB-EnginesInfluxDB download bannerEnglish
Deutsch
Informationen zu relationalen und NoSQL DatenbankmanagementsystemenEin Service von solid IT

Enzyklopädie > Artikel

Two-Phase-Commit

Das Two-Phase-Commit, auf Deutsch manchmal Zwei-Phasen-Commit genannt, ist ein Protokoll für den sicheren Abschluss einer Transaktion in einem verteilten Datenbanksystem.

Bei einer auf mehrere Knoten verteilten Transaktion stellt die Einhaltung der ACID Kriterien eine besondere Herausforderung dar, da die selbständig agierenden Knoten entsprechend koordiniert werden müssen. Das übernimmt beim Two-Phase-Commit ein Koordinator-Knoten auf folgende Art:

  • Nach Beendigung aller Bearbeitungsschritte der Transaktion sendet der Koordinator eine PREPARE Nachricht, an alle beteiligten Knoten, welche üblicherweise Agenten genannt werden. Diese PREPARE Nachricht leitet die erste Phase, die sog. Abstimmungsphase ein.
  • Alle Agenten versuchen die Wiederholbarkeit und die Rückgängigmachung der Transaktion sicherzustellen, indem sie entsprechende Undo- und Redo-Logs erstellen. Falls dies gelingt schicken sie eine READY Nachricht and den Koordinator, sonst eine FAILED Nachricht.
  • Der Koordinator sammelt alle Nachrichten. Falls alle Agenten READY signalisiert haben, sendet der Koordinator eine COMMIT Nachricht an jeden Agenten, sonst eine ABORT Nachricht. Mit dieser zweiten Nachricht an die Agenten beginnt die Commitphase.
  • Alle Agenten schließen die Transaktion entsprechend ab, entweder indem sie fertiggestellt oder rückgängig gemacht wird. Erst jetzt werden eventuelle Locks aufgehoben und abschließend eine Bestätigung (ACK Nachricht) an den Koordinator geschickt.
  • Der Koordinator beendet die Commit Phase und damit die gesamte Transaktion nach Erhalt aller ACK Nachrichten.

Die hier beschriebene Variante ist das sog. Basis-Protokoll des Two-Phase-Commits, es gibt verschiedene Verfeinerungen und Abwandlungen, aber das hier beschriebene Grundprinzip ist allen Varianten gemeinsam.



Featured Products

Neo4j logo

Get your free copy of the new O'Reilly book Graph Algorithms with 20+ examples for
machine learning, graph analytics and more.

RavenDB logo

Runs on Windows, Linux, Raspberry Pi. Easy to Operate, Fast Performance.
APIs for JS, .NET, Python.
Take a Free Download

Redis logo

Start now with Redis Cloud
Secure, highly available Redis as a serverless, hosted, fully managed cloud service.
Sign up here.

Couchbase logo

SQL + JSON + NoSQL.
Power, flexibility & scale.
All open source.
Get started now.

Präsentieren Sie hier Ihr Produkt