Ein Einblick in das Gebiet der Verteilten Datenbanksysteme
Ein Einblick in das Gebiet der Verteilten Datenbanksysteme
Ein Einblick in das Gebiet der Verteilten Datenbanksysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5.3 Drei-Phasen-Commit(3PC)<br />
<strong>E<strong>in</strong></strong>e Hauptschwäche des 2PC-Protokolls ist die starke Abhängigkeit <strong>der</strong><br />
Agenten vom Koord<strong>in</strong>ator und die damit verbundene Blockierungen bei<br />
e<strong>in</strong>em Ausfall. Als Verbesserung entwickelten D. Skeen und M. Stonebreaker<br />
1983 <strong>in</strong> ihrer Arbiet ”A Formal Model of Crash Recovery <strong>in</strong> a<br />
Distributed System” <strong>das</strong> 3PC-Protokoll, welches <strong>das</strong> Blockadeproblem auf<br />
Kosten e<strong>in</strong>es gesteigerten Aufwands und zwei Annahmen abschwächt.<br />
1. Ke<strong>in</strong>e Partitionierung des Netzwerks(völlig getrennte Bereiche/Cluster)<br />
2. Höchstens K gleichzeitige Rechnerausfälle, bei N Sites mit K < N<br />
Der Abortfall läuft genau wie beim 2PC-Protokoll ab. Erhält <strong>der</strong> Koord<strong>in</strong>ator<br />
nach dem Prepare e<strong>in</strong> Ready von allen beteiligten Agenten, so<br />
verschickt er e<strong>in</strong>e Pre-Commit-Nachricht an alle Agenten, worauf diese<br />
mit e<strong>in</strong>er Pre-Ack-Nachricht antworten müssen. Erhält <strong>der</strong> Koord<strong>in</strong>ator<br />
m<strong>in</strong>destens K Pre-Ack-Nachricht, so trifft er die Entscheidung e<strong>in</strong>es Commits<br />
und verschickt diese nach e<strong>in</strong>er Protokollierung an alle Agenten. Bei<br />
e<strong>in</strong>em Koord<strong>in</strong>ator-Ausfall(z.B. Timeout) während <strong>der</strong> Prozedur muss e<strong>in</strong><br />
neuer Koord<strong>in</strong>ator ermittelt werden. Dieser fragt die Commitzustände <strong>der</strong><br />
verbliebenen Agenten ab und globalisiert e<strong>in</strong>e gefundene Entscheidung<br />
falls e<strong>in</strong>er <strong>der</strong> Beteiligten bereits e<strong>in</strong>e Commit o<strong>der</strong> e<strong>in</strong>e Abort Meldung<br />
vor dem Ausfall erhalten hat. Sollte noch ke<strong>in</strong>er <strong>der</strong> Verbliebenen e<strong>in</strong>e<br />
Entscheidung erhalten haben, aber m<strong>in</strong>destens e<strong>in</strong>er bef<strong>in</strong>det sich im Status<br />
Pre-Commit, dann setzt <strong>der</strong> neue Koord<strong>in</strong>ator den Vorgang mit e<strong>in</strong>er<br />
neuen Serie von Pre-Commit-Nachrichten fort. Falls ke<strong>in</strong>er <strong>der</strong> Agenten<br />
zuvor e<strong>in</strong> Pre-Commit erhalten hat, so entscheidet <strong>der</strong> neue Koord<strong>in</strong>ator<br />
e<strong>in</strong>en Abort und verbreitet diese Entscheidung im Netzwerk. So ist unter<br />
den obigen Vorraussetzung gewährleistet, <strong>das</strong>s gesperrte Resourcen nach<br />
e<strong>in</strong>er bestimmten Zeit wie<strong>der</strong> freigegeben wird und e<strong>in</strong>e Verbesserung im<br />
Vergleich zum 2PC erreicht.<br />
19