Auf Seite
wurden Anforderungen an das zu
entwickelnde Transaktionskonzept aufgestellt, deren Erfüllung nun
überprüft werden soll. Hierbei wird zwischen dem Konzept und dem
derzeitigen Stand der Implementierung unterschieden.
Von den ACID--Eigenschaften werden die ersten drei wie verlangt
durch das Konzept sichergestellt (siehe
Kapitel 4.1.7), wenn auch teilweise auf etwas ungewöhnliche
Weise mittels Integritätstester und verschiedenen Isolationsgraden. Die
Implementation muß leichte Abstriche im Bereich Isolation hinehmen, da durch
die nicht vorhandenen Gruppen die 3
Isolation nicht zur Verfügung
steht.
Durch den Verzicht auf Serialisierbarkeit umgeht das Konzept viele Probleme, die im Zusammenhang mit langen Transaktionen auftreten können, so daß ihrerBenutzung nichts im Wege steht. Lediglich die ohne Maßnahmen wie frei setzbare Sicherungspunkte mangelhafte Unterstützung eines teilweisen Rücksetzens benötigt noch einige Verbesserungen. Unterschiede zwischen Konzept und Implentation bestehen hier keine.
Die Kooperation zwischen den Benutzern wird durch die verschiedenen zur Wahl stehenden Isolationsgrade ermöglicht. Durch die zusätzliche Integration eines der Transaktionsrestrukturierung (vgl. Kapitel 3.2.2) ähnlichen Konzepts ließe die Kooperation sich allerdings noch erleichtern. Der in der Implementation fehlende Isolationsgrad 3 beeinträchtigt die Kooperation nur in geringem Maße, da für sie eher die niedrigeren Isolationsgrade benötigt werden.
Die Vermeidung der Beschränkung auf bestimmte Anwendungsgebiete konnte nicht vollständig erfüllt werden. Selbst wenn man von den von ConceptBase
vorgegebenen Einschränkungen (keine Rechenoperationen, ...) absieht, erfordert dieses Konzept eine wahrscheinlich nicht immer erfüllbare Eigenschaft: Alle im realen Problem vorhandenen Konsistenzbedingungen müssen sich als ConceptBase --'Constraints' ausdrücken lassen.
Das Anwortverhalten bei mehreren gleichzeitigen Benutzern konnte durch die in der Implementation verwendete Architektur aus mehreren Kernen und einem zentralen Objektserver mit mehreren 'Threads' deutlich verbessert werden. Die sich ergebenden Leistungseinbußen des Konzepts werden zum einen durch die daher notwendige Übertragung von Informationen zwischen Objektserver und Kernen bedingt. Zum anderen hat anscheinend auch der Übergang auf eine homogenere Verwendung von Zeigern Gerschwindigkeitseinbußen verursacht.
Im Proposal wurden verschiedene Vorschläge gemacht, wie die
Kompatibilität zu alten Applikationen erhalten werden kann. Diese wurden
nicht weiter verfolgt, da die Anpassung alter Applikationen nur geringe
Schwierigkeiten bereitet. Wird für sie
ein Gruppe mit 2
Isolation erzeugt (in der derzeitigen
Implementation nur begrenzt möglich) und werden die einzelnen Befehle und
Anfragen der Anwendungen an ConceptBase
jeweils mit einem
``Transaktionsanfang``--``Transaktionsende``--Paar eingeklammert, sollten sie
weiterhin funktionieren. Die notwendigen Änderungen am Quelltext können
dabei gleich zu Überlegungen genutzt werden, wie man sich die
Transaktionsf''higkeiten von ConceptBase
besser zunutze machen kann.
Das vorgestellte Konzept erfüllt also die meisten der gestellten Anforderungen voll und die anderen zumindest teilweise. Allerdings erfüllt die Implementation eine im zweiten Kapitel nicht gestellte aber implizit vorausgesetzte Anforderung nicht: Sie läßt sich nicht in die derzeitige Version von ConceptBase integrieren.