DB-EnginesExtremeDB: mitigate connectivity issues in a DBMSEnglish
Deutsch
Informationen zu relationalen und NoSQL DatenbankmanagementsystemenEin Service von solid IT

Enzyklopädie > Artikel

Two-Phase-Commit
weitergeleitet von Zwei-Phasen-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

Ontotext logo

GraphDB allows you to link diverse data, index it for semantic search and enrich it via text analysis to build big knowledge graphs. Get it free.

SingleStore logo

The database to transact, analyze and contextualize your data in real time.
Try it today.

Milvus logo

Vector database designed for GenAI, fully equipped for enterprise implementation.
Try Managed Milvus for Free

Datastax Astra logo

Bring all your data to Generative AI applications with vector search enabled by the most scalable
vector database available.
Try for Free

Neo4j logo

See for yourself how a graph database can make your life easier.
Use Neo4j online for free.

Präsentieren Sie hier Ihr Produkt