prev up next

Hierarchische Sperrgranulate

Bisher wurden alle Sperren auf derselben $Granularit\uml {a}t$ erworben. Mögliche Sperrgranulate sind:

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


Abbildung 13.5: 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 13.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 13.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.


Abbildung 13.6: Datenbasis-Hierarchie mit Sperren


Abbildung 13.7: Datenbasis-Hierarchie mit zwei blockierten Transaktionen

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

Nun fordern zwei weitere Transaktionen $T_4$ (Schreiber) und $T_5$ (Leser) Sperren an:

Abbildung 13.7 zeigt die Situation nach dem gerade beschriebenen Zustand. Die noch ausstehenden Sperren sind durch eine Durchstreichung gekennzeichnet. Die Transaktionen $T_4$ und $T_5$ sind blockiert, aber nicht verklemmt und müssen auf die Freigabe der Sperren $(T_2,S)$ und $T_3,X)$ warten.


prev up next