prev up next


Hierarchische Sperrgranulate

Bisher wurden alle Sperren auf derselben Granularität erworben. Mögliche Sperrgranulate sind:

Abbildung 12.5 zeigt die hierarchische Anordnung der möglichen Sperrgranulate.


Hierarchie der Sperrgranulate

Eine Vermischung von Sperrgranulaten hätte folgende Auswirkung. Bei Anforderung einer Sperre für eine Speichereinheit, z.B. ein Segment, müssen alle darunterliegenden Seiten und Sätze auf eventuelle Sperren überprüft werden. Dies bedeutet einen immensen Suchaufwand. Auf der anderen Seite hätte die Beschränkung auf nur eine Sperrgranularität folgende Nachteile:

Die Lösung des Problems besteht im multiple granularity locking (MGL). Hierbei werden zusätzliche Intentionssperren verwendet, welche die Absicht einer weiter unten in der Hierarchie gesetzten Sperre anzeigen. Tabelle 12.13 zeigt die Kompatibilitätsmatrix. Die Sperrmodi sind:

  NL S X IS IX
S $\surd$ $\surd$ - $\surd$ -
X $\surd$ - - - -
IS $\surd$ $\surd$ - $\surd$ $\surd$
IX $\surd$ - - $\surd$ $\surd$

Tabelle 12.13: Kompatibilitätsmatrix beim Multiple-Granularity-Locking

Die Sperrung eines Datenobjekts muß so durchgeführt werden, daß erst geeignete Sperren in allen übergeordneten Knoten in der Hierarchie erworben werden:

1.
Bevor ein Knoten mit S oder IS gesperrt wird, müssen alle Vorgänger vom Sperrer im IX- oder IS-Modus gehalten werden.
2.
Bevor ein Knoten mit X oder IX gesperrt wird, müssen alle Vorgänger vom Sperrer im IX-Modus gehalten werden.
3.
Die Sperren werden von unten nach oben freigegeben.


Datenbasis-Hierarchie mit Sperren


Datenbasis-Hierarchie mit zwei blockierten Transaktionen

Abbildung 12.6 zeigt eine Datenbasis-Hierarchie, in der drei Transaktionen erfolgreich Sperren erworben haben:

Nun fordern zwei weitere Transaktionen T4 (Schreiber) und T5 (Leser) Sperren an:

Bild 12.7 zeigt die Situation nach dem gerade beschriebenen Zustand. Die noch ausstehenden Sperren sind durch eine Durchstreichung gekennzeichnet. Die Transaktionen T4 und T5 sind blockiert, aber nicht verklemmt und müssen auf die Freigabe der Sperren (T2,S) und T3,X) warten.


prev up next