next up previous contents
Next: 3.2.1 Erweiterung der Serialisierbarkeit Up: 3 Transaktionskonzepte Previous: Geschachtelte Transaktionen

3.2 Fortgeschrittene Systeme

  Die im letzten Abschnitt aufgeführten Prinzipien und Verfahren finden hauptsächlich Anwendung bei traditionellen Problemen, wie z.B. Verwaltungsaufgaben und Geschäftsanwendungen. Im Zuge der zunehmenden Computerisierung gewannen aber auch Bereiche wie Büroautomatisierung, Computer--unterstützte Konstruktion und Entwicklung an Bedeutung. Mit den bisherigen Anwendungen haben sie die Verwaltung großer Datenmengen gemeinsam, die die Benutzung eines DBMS wünschenswert erscheinen läßt. Sie unterscheiden sich von ihnen unter anderem in den Anforderungen, die sie an ein System zur Nebenläufigkeitskontrolle stellen [BK91,ELMB92]:

Dauer einer Transaktion:
Während z.B. eine Transaktion im Bankbereich in kurzer Zeit das Geld von einem Konto zum nächsten bewegt hat, kann es Stunden oder Tage dauern, bis ein Entwickler mit seinen Ergebnissen zufrieden ist und sie der Allgemeinheit zugänglich machen will. Die Transaktion, in der er den Entwurf durchführt, sollte ebensolange dauern, um ihm die Möglichkeit des Rücksetzens zu geben und die Konsistenz sicherzustellen.

Würde die Transaktion nun Sperren z.B. nach dem 2PL--Verfahren verwenden, so müssten diese natürlich ebenfalls lange gehalten werden. Das ist jedoch nicht wünschenswert, weil es den Zugriff anderer Transaktionen -- und damit die Arbeit anderer Entwickler -- verzögern würde. Auch ein optimistisches Konzept, das Transaktionen bei Serialisierbarkeitsverletzungen abbricht, kommt nicht in Frage, denn die Transaktionen lassen sich aufgrund ihrer Interaktivität nicht automatisch neu ausführen, so daß sich ein Arbeitsverlust ergeben würde.

Isolation der Benutzer:
  Entwickler arbeiten meist nicht isoliert voneinander, sondern in einem Team zusammen an einem Projekt, wobei auch unvollständige Ergebnisse (im Datenbanksprachgebrauch also 'uncommited data') ausgetauscht werden. Im klassischen Konzept wird aber davon ausgegangen, daß Transaktionen Konkurrenten statt Partner sind, so daß das ACID--Prinzip zum Schutz der Transaktionen voreinander eine unnatürliche Isolation zwischen den Entwicklern erzwingt [EG89]:

 

Die in traditionellen Ansätzen erwünschte Isolation führt hier also zu unnötigen Verzögerungen, die sich bei etwas Kooperation (A teilt B mit, daß die Änderungen an der Bibliothek soweit fertig sind) vermeiden ließe. [EG89, S.401,] folgern daraus sogar die Unbrauchbarkeit des (traditionellen) Transaktionsbegriffs für interaktive Anwendungen:

,,Generally, transactions are not well suited to interactive use, for instance a user with two transactions active in separate windows on the same object would be presented with two different data states --- it would be better if the windows showed the same state.``

Diese Probleme wurden bereits vor einigen Jahren von Datenbankentwicklern ([KS88,FO89]) erkannt, die die Verwendung der Serialisierbarkeit als Korrektheitskriterium für interaktive Anwendungen mit langen Transaktionen kritisierten und versuchten, durch verschiedenartige Abweichungen von der traditionellen Sichtweise eine Verbesserung zu erreichen.
Einige dieser Ansätze werden im folgenden vorgestellt. Viele stammen aus dem Bereich der objektorientierten Datenbanken, bei denen sich obige Probleme bei der Entwicklung von CAD/CAM--Systemen frühzeitig ergaben. Die Einteilung der Ansätze erfolgte nach ihrer stärksten Abweichung von traditionellen Konzepten: Ausdehnung des Serialisierbarkeitsbegriffs, Aufgabe bzw. Verminderung der Isolation zwischen den Transaktionen und sonstige Maßnahmen.





next up previous contents
Next: 3.2.1 Erweiterung der Serialisierbarkeit Up: 3 Transaktionskonzepte Previous: Geschachtelte Transaktionen



Markus Baumeister
Fri Jun 9 15:38:00 MET DST 1995