Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Synchronisation paralleler Transaktionen  AIFB SS2001 1 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.

Ähnliche Präsentationen


Präsentation zum Thema: "Synchronisation paralleler Transaktionen  AIFB SS2001 1 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe."—  Präsentation transkript:

1 Synchronisation paralleler Transaktionen  AIFB SS2001 1 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe (Kollisionsstrategie) Was passiert, wenn eine Transaktion T 1 ein Objekt sperren will, das bereits von einer anderen Transaktion T 2 unverträglich gesperrt wurde?  T 1 wird in Wartezustand versetzt, d.h. T 1 wartet bis T 2 ihr Ende erreicht hat und die von T 2 gesperrten Objekte wieder freigegeben werden.

2 Synchronisation paralleler Transaktionen  AIFB SS2001 2 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (14/18) Probleme: Livelock: T 1 wartet andauernd auf eine Sperre, da andere Transaktionen sie immer wieder überholen. (  „Fairness“ muss gewährleistet sein.) Deadlock/ Verklemmung: T 1 wartet auf Sperre, die T 2 hält; T 2 wartet auf Sperre, die T 3 hält;... T n wartet auf Sperre, die T 1 hält.

3 Synchronisation paralleler Transaktionen  AIFB SS2001 3 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (15/18) Lösungsmöglichkeiten: Deadlocks ausschließen / Deadlocks auflösen Deadlocks können durch Preclaiming ausgeschlossen werden. Verwendung von Time-Outs: Sperren werden nach einer bestimmten Zeit entzogen, die betreffenden Transaktionen zurückgesetzt. (ermöglicht die Auflösung von eingetretenen Deadlocks) Problem Starvation: Eine Transaktion wird wiederholt in einen Deadlock einbezogen und immer wieder bei der Auflösung als Opfer ausgesucht, zurückgesetzt und neu gestartet

4 Synchronisation paralleler Transaktionen  AIFB SS2001 4 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (16/18) Lock-Manager Komponente des DBMS: Setzt Sperren und gibt diese wieder frei, so dass das Zwei-Phasen-Sperrprotokoll erfüllt wird. Verhinderung von dauerndem Blockieren („Livelock“) und dauerndem Zurücksetzen („Starvation“), d.h. faire Vergabe von Sperren an Transaktionen. Verhinderung oder Entdeckung von Deadlocks (  Wartegraph)

5 Synchronisation paralleler Transaktionen  AIFB SS2001 5 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (17/18) wird aufgerufen, wenn ein Objekt gesperrt werden muss: überprüft, ob Sperre vergeben werden kann, und versetzt ggf. Transaktion in Wartezustand. führt eine Sperrtabelle: - Welche Objekte sind für welche Transaktionen gesperrt? - Welche Transaktionen warten auf die Freigabe welcher gesperrter Objekte?

6 Synchronisation paralleler Transaktionen  AIFB SS2001 6 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (18/18) Wartegraph (gerichteter Graph) G W = (T*, U) T* = Menge der gerade im System aktiven Transaktionen T, T’  T*: (T,T’)  U  T’ wartet auf die Freigabe eines Objektes durch T (in irgendeiner Sperrtabellen-Schlange des Lock-Managers) Deadlock-Prüfung  Suche nach Zyklen in G W


Herunterladen ppt "Synchronisation paralleler Transaktionen  AIFB SS2001 1 4.4.2 Sperrverfahren 4.4.2 Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe."

Ähnliche Präsentationen


Google-Anzeigen