next up previous
Next: 2.4 Offen geschachtelte Transaktionen Up: 2 Erweiterte Transaktionskonzepte Previous: 2.2 ACID-Transaktionseigenschaften

2.3 Geschlossen geschachtelte Transaktionen

Die in [Moss 1981] eingeführten geschlossen geschachtelten Transaktionen heben die Isolation von klassischen Transaktionen für einen speziellen Fall auf: Sie erlauben zur Realisierung des Auftragsprinzips, daß Transaktionen Teilaufträge an andere Transaktionen vergeben und deren Ergebnisse weiterverwenden. Abläufe wie in Abbildung 2.1 sind also erlaubt, sofern zwischen T1 und T2 eine Auftraggeber-Auftragnehmer-Beziehung besteht.

Geschlossen geschachtelte Transaktionen bilden eine Unterstrukturierung von klassischen Transaktionen in Form eines Baumes. Die Wurzel des Baums bildet die sogenannte Toplevel-Transaktion. Diese kann Sohn-Transaktionen erzeugen, die selbst wieder Söhne erzeugen können. So entsteht eine Baumstruktur, die die Vater-Sohn-Beziehungen zwischen den einzelnen (Sub-) Transaktionen widerspiegelt.

Für einen kompletten Transaktionsbaum, den die Toplevel-Transaktion repräsentiert, werden alle ACID-Eigenschaften garantiert. Für Teilbäume, repräsentiert durch die Sub-Transaktionen an der Wurzel des Teilbaums, werden Fehler-Atomarität und bezüglich der Brüder auch Isolation zugesichert. Die Toplevel-Transaktion kann nur dann in den Zustand committed übergehen, wenn alle Nachfahren bereits beendet sind. Wenn eine Vater-Transaktion abbricht, werden auch alle ihre Nachfahren abgebrochen. Sohn-Transaktionen hingegen können abbrechen, ohne daß der Vater davon betroffen ist. Da also eine bereits beendete Sohn-Transaktion bei einem Abbruch ihres Vaters auch nachträglich zurückgesetzt werden kann, erfüllen Sub-Transaktionen nicht die Permanenz-Eigenschaft.

Da komplette Aktionsbäume und auch Teilbäume untereinander die Eigenschaft der Isolation erfüllen, werden Änderungen, die ihre Söhne gemacht haben, bei deren Ende nicht direkt allgemein sichtbar, sondern sie stehen zuerst nur dem Vater zur Verfügung. Nur der Vater kann die geänderten Objektzustände lesen und weiterverarbeiten oder nachfolgend erzeugten Söhnen zur Verfügung stellen. Objektänderungen von Sohn-Transaktionen werden allgemein also erst mit dem Commit der Toplevel-Transaktion sichtbar. Dadurch können eventuell Objekte sehr lange vor dem Zugriff durch andere Transaktionen gesperrt sein, obwohl die ändernde Transaktion schon längst beendet ist.

Geschlossen geschachtelte Transaktionen sind bezüglich der Nebenläufigkeitskontrolle sehr restriktiv: Toplevel-Transaktionen erfüllen wie klassische Transaktionen die Isolations-Eigenschaft und Brüder sind untereinander isoliert. Deshalb ist zwischen nebenläufigen (Sub-) Transaktionen keine Kommunikation möglich. Da Vor- und Nachfahren untereinander nicht serialisierbar sein müssen, kann es zwischen ihnen Kommunikation geben.

Das Konzept der klassischen Transaktionen wurde durch die geschlossen geschachtelten Transaktionen in zwei Punkten erweitert: Einerseits werden Transaktionen vor kompletten Abbrüchen geschützt. Tritt in einem Teil einer Transaktion ein Fehler auf, wird im klassischen Transaktionsmodell die komplette Transaktion zurückgesetzt. Insbesondere bei längeren Transaktionen können dadurch automatisch umfangreiche Berechnungen zurückgesetzt werden, obwohl der eigentliche Fehler von der Applikation auch anders hätte behandelt werden können. Die Schachtelung schafft bei diesem Problem Abhilfe, indem sie es erlaubt, solche kritischen Teile in Sohn-Transaktionen zu verlagern, die ohne Einfluß auf den Vater abbrechen können.

Zusätzlich bieten geschlossen geschachtelte Transaktionen auch Systemunterstützung von Parallelität innerhalb von Transaktionen. Zwei unabhängige Berechnungen, zum Beispiel in verschiedenen Prozessen innerhalb einer Transaktion, können in verschiedenen Söhnen ablaufen. Das System garantiert aufgrund der Isolationseigenschaft, daß diese Berechnungen unabhängig voneinander ablaufen und sich nicht gegenseitig stören.

Geschlossen geschachtelte Transaktionen sind eine Möglichkeit, das Auftragsprinzip zu realisieren, wobei die Vater-Sohn-Beziehung dem Verhältnis Auftraggeber-Auftragnehmer entspricht. Durch das Erzeugen einer Sohn-Transaktion delegiert der Vater als Auftraggeber einen Teil seiner Tätigkeiten. Bei Beendigung der Sohn-Transaktion stehen die Ergebnisse des Auftragnehmers zuerst nur dem Auftraggeber zur Verfügung, genau wie es das Auftragskonzept vorsieht. Der Auftraggeber kann über die weitere Verwendung der Ergebnisse entscheiden und der Auftragnehmer bleibt anderen Transaktionen ganz verborgen. Geschlossen geschachtelte Transaktionen sind nicht in der Lage, das Kooperationsprinzip zu unterstützen, da sie mit der Durchsetzung der ACID-Eigenschaften Kommunikation untereinander verbieten.


next up previous
Next: 2.4 Offen geschachtelte Transaktionen Up: 2 Erweiterte Transaktionskonzepte Previous: 2.2 ACID-Transaktionseigenschaften


Armin Kruse- HTML version created 7/25/1997