www.wikidata.de-de.nina.az
Dieser Artikel erlautert das Daten Verarbeitungsprotokoll Das kryptographische Protokoll wird unter Commitment Verfahren erlautert Commit Protokolle regeln die Festschreibung Commit von Daten die durch eine verteilte Transaktion beispielsweise in einem Datenbankmanagementsystem verandert werden sollen Inhaltsverzeichnis 1 Notwendigkeit und Anforderungen 2 Grundprinzip 3 Varianten 3 1 Zwei Phasen Commit Protokolle 3 1 1 Algorithmus 3 1 2 Korrektheit 3 2 Drei Phasen Commit Protokolle 4 Siehe auch 5 EinzelnachweiseNotwendigkeit und Anforderungen BearbeitenDie wunschenswerten Eigenschaften verteilter Transaktionen werden durch ACID definiert Das Commit Protokoll ist fur die Gewahrleistung dieser Eigenschaften zustandig Je nach Commit Protokoll mussen nicht alle Eigenschaften verpflichtend erfullt werden Grundprinzip BearbeitenZur Erfullung ihrer jeweiligen Anforderungen beschreiben Commit Protokolle wie die an einer Transaktion teilnehmenden Prozesse uber einen Koordinator miteinander kommunizieren mussen wie Informationen protokolliert geloggt werden und wie schliesslich die betroffenen Daten festgeschrieben werden Dabei werden verschiedene Fehlersituationen durch das Protokoll abgefangen wie z B ein Absturz des Koordinators wahrend einer Phase abhangig vom Protokoll Varianten BearbeitenIn verteilten Systemen erstreckt sich eine Transaktion haufig uber mehrere Prozesse im Englischen in diesem Zusammenhang auch als agents bezeichnet die gemeinsam und voneinander abhangig Daten verandern Zur Gewahrleistung der Atomaritat ist hier ein verteiltes Commit Protokoll erforderlich Zwei Phasen Commit Protokolle Bearbeiten Das bekannteste und uber X Open XA standardisierte Verfahren ist das sogenannte Two Phase Commit oder Zwei Phasen Commit 2PC Dabei holt ein Koordinator meist der Prozess der die Festschreibung einleitet in der ersten Phase des Protokolls die Zustimmung oder Ablehnung zur Festschreibung der Datenveranderungen aller beteiligten Prozesse ein auch Abstimmungsphase Nur dann wenn alle Teilnehmer zustimmen entscheidet der Koordinator auf Commit ansonsten lautet die Entscheidung Rollback Zurucksetzen Ist die Entscheidung gefallen unterrichtet der Koordinator in der zweiten Phase Commit Phase des Protokolls die Teilnehmer uber das Ergebnis Gemass diesem gemeinsamen Ergebnis wird entweder die gesamte Transaktion zuruckgesetzt oder alle Teiltransaktionen werden zum erfolgreichen Ende gefuhrt indem die zwischenzeitlich gesperrten Ressourcen wieder freigegeben werden Algorithmus Bearbeiten Wahrend der beiden Phasen werden die folgenden Nachrichten zwischen den Teilnehmern ausgetauscht 1 nbsp Zwei Phasen Commit Protokoll Nachrichten zwischen Koordinator und TeilnehmerCommit request Phase Der Koordinator sendet ein prepare an alle Teilnehmer und wartet auf Antworten aller Teilnehmer Die Teilnehmer verarbeiten die Transaktion bis zu dem Punkt wo die Transaktion entweder mit commit oder rollback abgeschlossen wird Dabei schreiben sie Eintrage in ihr undo log und in ihr redo log Die Teilnehmer antworten mit ready wenn die Transaktion erfolgreich war oder sie antworten mit failed wenn die Transaktion fehlgeschlagen ist Commit Phase Wenn der Koordinator von allen Teilnehmern eine ready Meldung bekommen hat Der Koordinator sendet commit an alle Teilnehmer Die Teilnehmer schliessen die Transaktion mit commit ab und geben alle Sperren und Ressourcen frei Die Teilnehmer senden ein acknowledgment zuruck Der Koordinator beendet die Transaktion wenn er von allen Teilnehmern die Bestatigung erhalten hat Wenn zumindest einer der Teilnehmer ein failed schickt Der Koordinator sendet abort an alle Teilnehmer Die Teilnehmer schliessen die Transaktion mit rollback ab mittels des undo logs und geben alle Sperren und Ressourcen frei Die Teilnehmer senden ein acknowledgment zuruck Der Koordinator beendet die Transaktion ebenso mit rollback wenn er von allen Teilnehmern die Bestatigung erhalten hat Beim Zwei Phasen Commit besteht das grundsatzliche Problem dass Teilnehmer zwischenzeitlich blockiert werden Das passiert sobald ein Teilnehmer seine lokale Commit Entscheidung dem Koordinator mitgeteilt hat Danach wartet der Teilnehmer auf die globale gemeinsame Entscheidung Das wird vor allem dann problematisch wenn der Koordinator zwischenzeitlich ausgefallen ist In dieser Situation kann der Teilnehmer weder die gesperrten Ressourcen freigeben noch die lokale Transaktion zurucksetzen Allenfalls kann der Teilnehmer die globale Commit Entscheidung von einem anderen Teilnehmer in Erfahrung bringen Korrektheit Bearbeiten Das 2PC Protokoll garantiert die Korrektheit auch dann wenn einzelne oder mehrere Rechner ausfallen oder wenn Netzwerkpartitionierungen auftreten so dass die Kommunikation zwischen lauffahigen Rechnern unterbunden wird Korrektheit bedeutet dabei Es kann nicht vorkommen dass eine Transaktion bei verschiedenen Teilnehmern zu unterschiedlichen Ergebnissen kommt Drei Phasen Commit Protokolle Bearbeiten Zur Reduzierung der Zahl der notwendigen Protokollierungsvorgange der Zahl der erforderlichen Nachrichten sowie zur Steigerung der Robustheit werden in der Fachliteratur zahlreiche Varianten des 2PC Protokolls diskutiert So zielt etwa das sogenannte Drei Phasen Commit Protokoll 3PC darauf ab das Risiko der Blockierung zu vermeiden Dazu ist eine Erhohung der Zahl der Nachrichtenrunden erforderlich damit bei einem zwischenzeitlichen Ausfall des Koordinators das Protokoll durch einen neuen Koordinator zu Ende gefuhrt werden kann Siehe auch BearbeitenDatenqualitat NetzprotokollEinzelnachweise Bearbeiten Alfons Kemper Andre Eickler Datenbanksysteme Eine Einfuhrung 6 Auflage Oldenbourg Munchen 2006 ISBN 978 3 486 57690 0 Abgerufen von https de wikipedia org w index php title Commit Protokoll amp oldid 216412550