8 Synchronisation in Verteilten Datenbanksystemen

Übungsaufgaben

Aufgabe 8-1: Verbesserung von BOCC

Entwerfen Sie eine Verbesserung von BOCC, bei der nur echte Konflikte zur Rücksetzung der validierenden Transaktion führen. Hinweis: Verwenden Sie Zeitstempel zur Konflikterkennung.

(Lösung Aufgabe 8-1:)

Aufgabe 8-2: FOCC

Wie kann bei FOCC das "Verhungern" einer Transaktion verhindert werden bzw. garantiert werden, daß jede Transaktion erfolgreich zu Ende kommt ?

(Lösung Aufgabe 8-2:)

Aufgabe 8-3: Schmutzige vs. unsichere Änderungen

Erläutern Sie den Unterschied zwischen schmutzigen und unsicheren Änderungen. Wieso ist bei optimistischer Synchronisation kein Zugriff auf schmutzige Änderungen möglich ?

(Lösung Aufgabe 8-3:)

Aufgabe 8-4: Vergleich von Synchronisationsverfahren

An einem Rechner sei folgender Schedule von drei Transaktionen mit Zugriff auf ausschließlich lokale Objekte gegeben, wenn keine Synchronisation erfolgt:

Bestimmen Sie für jedes der folgenden Synchronisationsverfahren die vorkommenden Blockierungen und Rücksetzungen sowie die sich ergebende Serialisierungsreihenfolge:

a. Zeitmarkenverfahren (Basic Timestamp Ordering)

b. BOCC

c. FOCC

d. RX-Sperrverfahren mit Wait/Die-Deadlock-Vermeidung

e. RX-Sperrverfahren mit Wound/Wait-Deadlock-Vermeidung

f. RX-Sperrverfahren mit Deadlock-Erkennung

g. RX-Sperrverfahren mit Mehrversionen-Synchronisation und Deadlock-Erkennung.

(Lösung Aufgabe 8-4:)

Aufgabe 8-5: Deadlock-Erkennung

Wenden Sie den Algorithmus von Obermarck zur Erkennung des folgenden Deadlocks an. Geben Sie jeden Zwischenschritt an (Annahme: ts (T1) < ts (T2) < ts (T3)). Wieviele Nachrichten werden zur Auflösung des Deadlocks benötigt?

(Lösung Aufgabe 8-5:)