Zwei-Phasen-Commit (2PC)

Was ist Zwei-Phasen-Commit (2PC)?
Ein zweiphasiges Commit ist ein standardisiertes Protokoll, das sicherstellt, dass ein Datenbank-Commit in der Situation implementiert wird, in der eine Commit-Operation in zwei separate Teile aufgeteilt werden muss.

In der Datenbankverwaltung wird das Speichern von Datenänderungen als Commit und das Rückgängigmachen von Änderungen als Rollback bezeichnet. Beides kann leicht erreicht werden, indem die Transaktionsprotokollierung verwendet wird, wenn ein einzelner Server beteiligt ist, aber wenn die Daten über geografisch verschiedene Server verteilt verteilt werden (dh jeder Server ist eine unabhängige Einheit mit separaten Protokolldatensätzen), kann der Prozess schwieriger werden.

Ein spezielles Objekt, das als Koordinator bekannt ist, wird in einer verteilten Transaktion benötigt. Wie der Name schon sagt, organisiert der Koordinator Aktivitäten und Synchronisation zwischen verteilten Servern. Das zweiphasige Commit wird wie folgt implementiert:

Phase 1 – Jeder Server, der Daten festschreiben muss, schreibt seine Datensätze in das Protokoll. Wenn ein Server nicht erfolgreich ist, antwortet er mit einer Fehlermeldung. Bei Erfolg antwortet der Server mit einer OK-Nachricht.

Phase 2 – Diese Phase beginnt, nachdem alle Teilnehmer mit OK geantwortet haben. Dann sendet der Koordinator ein Signal an jeden Server mit Commit-Anweisungen. Nach dem Festschreiben schreibt jeder das Festschreiben als Teil seines Protokolldatensatzes als Referenz und sendet dem Koordinator eine Nachricht, dass sein Festschreiben erfolgreich implementiert wurde. Wenn ein Server ausfällt, sendet der Koordinator Anweisungen an alle Server, um die Transaktion zurückzusetzen. Nachdem die Server zurückgesetzt wurden, sendet jedes Feedback, dass dies abgeschlossen wurde.


War die Erklärung zu "Zwei-Phasen-Commit (2PC)" hilfreich? Jetzt bewerten:

Weitere Erklärungen zu