Zusammenfassung
- Ein Teilnehmer stimmt erst zu, nachdem er genug dauerhaften Zustand für Redo oder Undo gesichert hat; damit verliert er die Freiheit zur eigenen Entscheidung, kennt das Gesamtergebnis aber noch nicht.
- Die dauerhafte Entscheidung des Koordinators ist eine getrennte Protokolltatsache. Kann ein vorbereiteter Teilnehmer sie nicht erfahren, schützt Warten die Atomarität besser als ein erfundenes lokales Ergebnis.
- Commit gilt für beteiligte Transaktionsressourcen. Es beweist nicht, dass eine E-Mail, menschliche Aufgabe oder physische Aktion außerhalb dieses Bereichs genau einmal ausgeführt wurde.
Nach einem Ausfall findet ein Teilnehmer einen erzwungen geschriebenen prepare-Eintrag. Seine lokale Arbeit war erfolgreich, und er erinnert sich an seine Ja-Stimme. Nur der Beschluss fehlt. „Fast committed“ wäre dafür ein gefährlicher Name. Der genaue Zustand lautet prepared und in-doubt.
Jim Grays Texte über Transaktionen machen aus diesem Unterschied ein Denkwerkzeug. Phase eins schafft die Fähigkeit, zwei mögliche Ausgänge zu befolgen, und nimmt dem Teilnehmer die einseitige Wahl. Erst Phase zwei übermittelt die dauerhafte Entscheidung einer anderen Instanz.
Prepare ist ein Versprechen, kein Urteil
In Notes on Data Base Operating Systems von 1978 lässt Gray den Koordinator jeden Teilnehmer in einen Zustand bringen, aus dem dieser seinen Anteil entweder wiederholen oder rückgängig machen kann. Vor AGREE müssen die nötigen UNDO- und REDO-Informationen sicher gespeichert sein.
Vor dem Ja kann der Teilnehmer ablehnen und abbrechen. Danach muss er Protokoll, Sperren oder Versionen bewahren, die sowohl Commit als auch Abort ermöglichen. Lokaler Erfolg wird nicht zur globalen Entscheidung, sondern zur bedingten, dauerhaften Verpflichtung.
C. Mohan, Bruce Lindsay und Ron Obermarck formulieren die Grenze für IBM R* eindeutig: Der untergeordnete Knoten erzwingt den Prepare-Eintrag, sendet YES und tritt in prepared ein. Danach darf er weder allein committen noch abbrechen.
Der Commit-Punkt liegt beim Koordinator
Der Koordinator sammelt die erforderlichen Stimmen. Sind die Bedingungen erfüllt, erzwingt er seinen globalen Commit-Eintrag und verkündet erst danach das Ergebnis. R* nennt diese Schreiboperation den Commit-Punkt. Das Ja eines einzelnen Teilnehmers liegt also vor der Tatsache, die er später ausführen soll.
Ohne diese Trennung könnten mehrere lokale Erfolge zu widersprüchlichen Wahrheiten werden. Deutet ein Teilnehmer sein Ja als Commit, während ein anderer vor der Vorbereitung ausfällt, könnte der erste Änderungen sichtbar machen, die der zweite zurücknehmen muss. Die zwei Phasen unterstellen alle lokalen Fähigkeiten einer einzigen dauerhaften Entscheidung.
Selbst Wissen über alle Ja-Stimmen verleiht nicht automatisch die Entscheidungsgewalt des Koordinators. Information und Autorität sind verschieden. Wiederanlauf heißt, den echten Beschluss wiederzufinden, nicht den wahrscheinlichsten zu errechnen.
Recovery rekonstruiert Wissen
Grays Regel ist bewusst nüchtern. Ohne erzwungenen Zustimmungsnachweis darf der Teilnehmer abbrechen, weil kein dauerhaftes Versprechen nach außen gelangt ist. Mit diesem Nachweis fragt er den Koordinator oder einen autorisierten Recovery-Pfad und führt anschließend REDO oder UNDO aus.
Eine Betriebsansicht muss working, prepared/in-doubt, committed und aborted getrennt zeigen. Wer prepared als „erfolgreich“ zusammenfasst, verbirgt die entscheidende Ungewissheit. Dienst und lokale Daten können intakt sein, während der globale Ausgang offen bleibt.
Nützliche Belege sind Transaktionskennung, Koordinator oder Recovery-Instanz, Zeitpunkt des Prepare, letzter bestätigter Kontakt und noch gehaltene Ressourcen. Eine Wiederholung der Geschäftsaktion löst den alten Zustand nicht; sie kann eine zweite Wirkung erzeugen.
Blockieren heißt, keine Entscheidung zu erfinden
Fällt der Koordinator nach dem Ja und vor Zustellung des Ergebnisses aus, kann klassisches 2PC blockieren. Gray und Leslie Lamport stellen diese Einschränkung in Consensus on Transaction Commit ausdrücklich heraus: Ein einzelner Koordinator genügt im Normalfall, doch sein Ausfall kann den Fortschritt stoppen.
Die Wartezeit bindet Sperren und Kapazität. Dennoch bewahrt sie zwei Tatsachen: Dem Teilnehmer fehlen Wissen und Entscheidungsbefugnis. Commit zu vermuten riskiert gespaltene Ergebnisse; Abort zu vermuten kann einem andernorts bereits dauerhaften Commit widersprechen.
R* behandelt heuristische Betreiberentscheidungen für Notfälle, warnt aber vor Inkonsistenz mit dem tatsächlichen Gesamtbeschluss. Ein erzwungenes Ergebnis ist daher als Ausnahme zu kennzeichnen und zu bereinigen. Es macht 2PC nicht heimlich blockierungsfrei.
Die Transaktion endet an der Teilnahmegrenze
In „The Transaction Concept: Virtues and Limitations“ trennt Gray geschützte von „real actions“. Ein Protokoll kann Daten zurücksetzen. Es holt kein ausgezahltes Bargeld zurück, widerruft keine zugestellte E-Mail, kehrt keine menschliche Entscheidung und keine Aktion eines unbeteiligten Geräts um.
Solche Wirkungen brauchen ein eigenes Muster: bis nach Commit warten, einen Idempotenzschlüssel verwenden, einen dauerhaften Zustellauftrag speichern oder eine Kompensation festlegen. Kompensation ist eine neue geschäftliche Handlung, kein perfekter Rollback.
Die Datenbank kann deshalb korrekt committed sein, während eine externe Nachricht aussteht, doppelt oder fehlgeschlagen ist. Umgekehrt kann das Gerät gehandelt haben und die Transaktion später abbrechen. Ein ehrlicher Status führt Transaktionsbeschluss und externen Nachweis getrennt.
Eine Geschichte mit mehreren Urhebern
Grays Klarheit begründet keine Erzählung vom Alleinerfinder. Seine historische Notiz nennt Vorarbeiten von Ron Obermarck, Earl Jenner und Steve Weick und die unabhängige Entdeckung von 2PC durch Butler Lampson und Howard Sturgis. Mohan, Lindsay und Obermarck verfassten die R*-Analyse und ihre Optimierungen. Andreas Reuter ist Mitautor des späteren Standardwerks, Leslie Lamport Mitautor von Paxos Commit.
Gerade diese Abgrenzung macht Grays Beitrag präzise: Er lehrt, getrennt zu fragen, was ein System weiß, was es versprochen hat, wer entscheiden darf und welche Folgen außerhalb seiner Kontrolle bleiben.
Quellen
- Jim Gray, “Notes on Data Base Operating Systems” (1978)
- Jim Gray, “The Transaction Concept: Virtues and Limitations” (1981)
- C. Mohan, Bruce Lindsay und Ron Obermarck über R*
- Jim Gray und Andreas Reuter, Transaction Processing: Concepts and Techniques
- Jim Gray und Leslie Lamport, “Consensus on Transaction Commit”
- Microsoft Open Specifications zu den Commit-Phasen
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
