Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Datenbanken 1 Granularity of Locks and Degrees of Consistency in a Shared Data Base Seminar Datenbanken 15. Mai 2009 Marc Hartmann Granularität.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Datenbanken 1 Granularity of Locks and Degrees of Consistency in a Shared Data Base Seminar Datenbanken 15. Mai 2009 Marc Hartmann Granularität."—  Präsentation transkript:

1 Seminar Datenbanken 1 Granularity of Locks and Degrees of Consistency in a Shared Data Base Seminar Datenbanken 15. Mai 2009 Marc Hartmann Granularität von Sperren und Grade der Konsistenz in einer geteilten Datenbank

2 Seminar Datenbanken 2 Ablauf Hierarchisches Sperrsystem Verschiedene Sperrmodi Verschiedene Sperrmodi Regeln für das Sperren Regeln für das Sperren Kompatibilität zwischen den Modi Kompatibilität zwischen den Modi DAG (Gerichteter azyklischer Graph) DAG (Gerichteter azyklischer Graph) Dynamischer DAG Dynamischer DAG Scheduling Scheduling Umwandlungen Umwandlungen Deadlocks Deadlocks

3 Seminar Datenbanken 3 Ablauf Konsistenz Transaktion Transaktion Konsistenzgrade Konsistenzgrade Konsistenz bei der Einplanung Konsistenz bei der Einplanung Auswirkungen eines Systemcrashs Auswirkungen eines Systemcrashs Kosten für Konsistenz Kosten für Konsistenz

4 Seminar Datenbanken 4 Hierarchie in der Datenbank Datenbank Bereich Datei Datensatz Eintrag

5 Seminar Datenbanken 5 Das Problem Wie wählt man die richtige Größe für sperrbare Einheiten in einer Datenbank ? Sperrt man nur den Datensatz oder den Eintrag, den man lesen oder schreiben will? Sperrt man den ganzen Bereich, in dem man lesen oder schreiben will? Sehr gut für gleichzeitigen Zugriff. Viel Overhead bei komplexen Transaktionen. Einfacher Zugriff bei komplexen Transaktionen. Konkurrierende Transaktionen können nicht mehr zugreifen.

6 Seminar Datenbanken 6 Die Lösung Verschiedene Granualitäten für Sperrbare Einheiten Datenbank Bereich Datei Datensatz Eintrag Datenbank Bereiche Dateien Datensätze

7 Seminar Datenbanken 7 Arten von Sperren X Exklusiv Modus (exclusiv mode) Sperrt einen Knoten für exklusiven Zugang und implizit auchalle seine Nachfahren. (z.B. für Schreibzugriffe) S Geteilter Modus (share mode) Sperrt einem Knoten für teilbaren Zugriff und implizit auch alle seine Nachfahren. (z.B. für Lesezugriffe)

8 Seminar Datenbanken 8 Arten von Sperren Wie verhindert man, dass das Sperren eines Teilbaums nicht bereits gesperrte Nachfahren implizit überschreibt? I Absichtsmodus (intention Mode) Beim Sperren eines Knotens wird implizit jeder Elternknoten im I-Modus gesperrt. IX Ein Kindknoten ist für den exklusiven Zugang gesperrt. IS Ein Kindknoten ist für einen geteilten Zugang gesperrt. IS S Datenbank Bereiche Dateien Datensätze S Datenbank Bereiche Dateien Datensätze X

9 Seminar Datenbanken 9 Arten von Sperren X S Datenbank Bereiche Dateien Datensätze SIX Alle Nachfahren werden implizit in S gesperrt und die sperrende Transaktion kann gezielt Nachfahren in X sperren. IX SIX X S Datenbank Bereiche Dateien Datensätze S S SS Was kann man tun, wenn eine Transaktion in einem Teilbaum große Teile lesen und einige beschreiben will?

10 Seminar Datenbanken 10 Regeln für das Sperren Es ist nicht erlaubt Sprünge in die Mitte des Baumes zu machen. X Bevor eine S- oder IS-Sperre angefordert wird, müssen alle Vorfahren in IX- oder IS-Modus gehalten werden. S IS IX Bevor eine X-, SIX- oder IX-Sperre angefordert wird, müssen alle Vorfahren in SIX- oder IX-Modus gehalten werden. SIX IX X

11 Seminar Datenbanken 11 Regeln für das Sperren Sperren müssen entweder am Ende der Transaktion, in beliebiger Reihenfolge, freigegeben werden, oder von den Nachkommen zur Wurzel hin freigegeben werden. SIX IX X SIX IX X

12 Seminar Datenbanken 12 Kompatibilität zwischen den Modi NL – Keine Sperre IS – Intention Share Mode IX – Intention Exclusive Mode S – Share Mode SIX – Intention Share And Exclusive Mode X – Exclusive Mode

13 Seminar Datenbanken 13 Datenbank Bereiche Dateien Datensätze Kompatibilität zwischen den Modi X Transaktion 1 X XXX X XX XXX S Transaktion 2 X NL IS IX S SIX X Ja Nein X

14 Seminar Datenbanken 14 Kompatibilität zwischen den Modi IS Transaktion 1 S SS Transaktion 2 S Transaktion 3 X S SX SIX IX X Transaktion 4 S SS SSS ISIX NL IS IX S SIX X Ja Nein IS

15 Seminar Datenbanken 15 Kompatibilität zwischen den Modi IS Transaktion 1 X X IX S Transaktion 2 Transaktion 3 S S IS NL IS IX S SIX X Ja Nein IX

16 Seminar Datenbanken 16 Ordnung der Modi Keine Sperre (NL) IS IXS SIX X

17 Seminar Datenbanken 17 Die Datenbank als gerichteter azyklischer Graph (DAG) Datenbank Bereiche FelderIndizes Einträge Datei

18 Seminar Datenbanken 18 Änderungen an den Regeln für das Sperren Bevor eine S- oder IS-Sperre angefordert wird, muss mindestens ein Elternteil mindestens im IS-Modus gehalten werden (und somit implizit ein Weg bis zur Wurzel). Bevor eine X-, SIX- oder IX-Sperre angefordert wird, müssen alle Eltern mindestens im IX-Modus gehalten werden. S IS IX X SIX

19 Seminar Datenbanken 19 Dynamischer Sperrgraph Datenbank Bereiche Nicht indizierte Felder Indizes Datensatz- kennungen Index Indervalle indizierte Felder Datei

20 Seminar Datenbanken 20 Beispiel Konto Datensatz Ort: Kassel Kontostand:0 Indiziert nicht Indiziert Datensatzkennung Index Ort Aachen Aachen Kassel Kassel Kassel Intervall Kassel Datei Konten Indizes:Inhaber Ort Datensätze Ort Inhaber Kontostand

21 Seminar Datenbanken 21 Beispiel: Ändern des Kontostandes Konto Datensatz Ort: Kassel Kontostand: Index Ort Aachen Aachen Kassel Kassel Kassel Datei Konten Indizes:Inhaber Ort Datensätze Ort Inhaber Kontostand 15 XIX Index muss nicht gesperrt werden, da er nicht berührt wird

22 Seminar Datenbanken 22 Beispiel: Ändern des Ortes Konto Datensatz Ort: Kassel Kontostand: Index Ort Aachen Aachen Kassel Kassel Kassel Datei Konten Indizes:Inhaber Ort Datensätze Ort Inhaber Kontostand Fulda XIX

23 Seminar Datenbanken 23 Scheduling IXSISX Einfachstes Prinzip: First In First Out (FIFO) IS IX Bewilligte Gruppe Keine Sperre (NL) IS IXS SIX X ISIX

24 Seminar Datenbanken 24 Scheduling IXSISX IX Bewilligte Gruppe ISIXS Keine Sperre (NL) IS IXS SIX X Einfachstes Prinzip: First In First Out (FIFO)

25 Seminar Datenbanken 25 Umwandlungen Benötigt nun eine Transaktion eine andere Art von Zugang zu einem Knoten, so muss der Modus umgewandelt werden. Der neue Modus ist der höhere zwischen dem bereits bewilligten Modus und dem neuen. Wird zusätzlich zu einer IX- ein S-Sperre angefordert, so ergibt sich als neuer Modus SIX.

26 Seminar Datenbanken 26 Umwandlungen IS Bewilligte Gruppe X Umwandlung muss warten, bis die zweite Transaktion abgearbeitet wurde, da X nicht mit IS kompatibel ist. SIS Bewilligte Gruppe IX SIX Umwandlung wird gewährt, der neue Gruppenmodus ist SIX

27 Seminar Datenbanken 27 Deadlocks (Verklemmungen) IS Bewilligte Gruppe X X Beide Transaktionen warten darauf, dass die andere fertig wird (Deadlock). Das Schedule-System muss nach der Feststellung eines Deadlocks die Aktionen einer Transaktion zurückrollen, um der anderen Transaktion Vorrang zu geben.

28 Seminar Datenbanken 28 Konsistenz Konsistenz bedeutet in einer Datenbank, dass alle Behauptungen über Beziehungen in einer Datenbank erfüllt sind. Beispiel: Es gibt in einer Datenbank Mitarbeiterdatensätze und (an anderer Stelle) einen Eintrag wie viele Mitarbeiter das Unternehmen hat. Die Datenbank ist nur Konsistent, wenn es genau so viele Mitarbeiterdatensätze gibt, wie die Zahl der Mitarbeiter angibt.

29 Seminar Datenbanken 29 Konsistenz In einigen Fällen muss die Datenbank vorübergehend inkonsistent sein, z.B. kann in unserem Beispiel nicht gleichzeitig ein neuer Mitarbeiterdatensatz angelegt und die Anzahl erhöht werden. Zur Lösung dieser temporären Inkonsistenzen werden Sequenzen von Aktionen zu Transaktionen zusammengefasst.

30 Seminar Datenbanken 30 Transaktionen Transaktionen sind die Einheiten der Konsistenz. Sie überführen die Datenbank von einem konsistenten Zustand zum nächsten. Schlägt eine Aktion einer Transaktion fehl, so muss die gesamte Transaktion rückgängig gemacht werden um die Konsistenz zu erhalten.

31 Seminar Datenbanken 31 Transaktionen und Sperren Wird immer nur eine Transaktion nach der anderen durchgeführt, so sieht eine Transaktion immer einen konsistenten Zustand der Datenbank, der von ihrem Vorgänger zurückgelassen wurde. Werden jedoch gleichzeitig mehrere Transaktionen durch das Schedule-System bearbeitet, sind Sperren notwendig um die Konsistenz für jede dieser Transaktionen zu gewährleisten. Diese Sperren können entweder durch den Benutzer gesetzt werden, oder automatisch durch das Datenbanksystem.

32 Seminar Datenbanken 32 Konsistenzgrade Benennungen: Eine Ausgabe einer Transaktion nennen wir festgelegt (committed), wenn die Transaktion auf ihr Recht zum Rückgängigmachen verzichtet. Eine Ausgabe, die noch nicht festgelegt wurde nennen wir verschmutzt (dirty).

33 Seminar Datenbanken 33 Konsistenzgrade Grad 0: Eine Transaktion überschreibt keine verschmutzten Daten einer anderen Transaktion. Grad 0 konsistente Transaktionen sind nicht wiederherstellbar, da andere Transaktionen bereits neue Werte in geänderten Felder eingetragen haben können.

34 Seminar Datenbanken 34 Konsistenzgrade Grad 1: Eine Transaktion überschreibt keine verschmutzten Daten einer anderen Transaktion. Grad 1 ermöglicht es eine gerade bearbeitete Transaktion ohne zusätzliche Sperren rückgängig zu machen (Backup). Es werden keine Änderungen anderer Transaktionen überschieben. Eine Transaktion legt ihre Daten erst bei EOT (End Of Transaction) fest.

35 Seminar Datenbanken 35 Konsistenzgrade Grad 2: Eine Transaktion überschreibt keine verschmutzten Daten einer anderen Transaktion. Grad 2 isoliert eine Transaktion von den Aktionen anderer Transaktionen. Eine Transaktion legt ihre Daten erst bei EOT fest. Eine Transaktion liest keine Daten, die von anderen Transaktionen verschmutzt wurden.

36 Seminar Datenbanken 36 Konsistenzgrade Grad 3: Eine Transaktion überschreibt keine verschmutzten Daten einer anderen Transaktion. Grad 3 isoliert eine Transaktion vor verschmutzten Beziehungen zwischen den Werten. Eine Transaktion legt ihre Daten erst bei EOT fest. Eine Transaktion liest keine Daten, die von anderen Transaktionen verschmutzt wurden. Die Daten, die eine Transaktion liest werden von keiner anderen Transaktion verschmutzt.

37 Seminar Datenbanken 37 Sperrprotokolldefinition Grad 0: T setzt eine (kurze) exklusive Sperre auf alle Daten, die sie verschmutzt (schreibt). Grad 1: T setzt eine lange exklusive Sperre auf alle Daten, die sie verschmutzt. Grad 2: T setzt eine lange exklusive Sperre auf alle Daten, die sie verschmutzt und setzt eine (kurze) geteilte Sperre auf Daten, die sie liest. Grad 3: T setzt eine lange exklusive Sperre auf alle Daten, die sie verschmutzt und setzt eine lange geteilte Sperre auf Daten, die sie liest.

38 Seminar Datenbanken 38 Konsistenzgrade Solange alle Transaktionen mindestens Grad 0 einhalten sieht jede Transaktion den von ihr verwendeten Grad. Solange alle Transaktionen mindestens Grad 1 einhalten ist ein Systemweites Backup (Rückgängigmachen aller aktiven Transaktionen) ohne Datenverlust möglich. Halten alle Transaktionen mindestens den Grad 2 ein, so kann jede einzelne Transaktion rückgängig gemacht werden und das System bleibt konsistent. Eine Grad 3 konsistente Transaktion ist wiederholbar.

39 Seminar Datenbanken 39 Beispiel Prozess 1 liest sekündlich einen Pegelstand und schreibt die Werte, in einer Transaktion, jede Minute in die Datenbank Aus Performanzgründen erfolgt dies im Grad 0, d.h. jeder geschriebene Eintrag wird sofort bestätigt. DB P1

40 Seminar Datenbanken 40 Beispiel Prozess 2 liest diese Daten in regelmäßigen Abständen und schreibt Mittelwert und Varianz in die Datenbank. 6 7 DB 3 8 P2 Mittel = 6 Varianz = 5 Diese Transaktion muss im Grad 1 laufen, um sicherzustellen, dass Mittelwert und Varianz aus den selben Werten berechnet wurde. (Wenn T abbricht muss ein evtl. bereits geschriebener Wert zurückgenommen werden können)

41 Seminar Datenbanken 41 Beispiel Prozess 2 liest die Mittelwerte und gibt sie auf einem Display aus. 6 7 DB 3 8 P2 Mittel = 6 Varianz = 5 Diese Transaktion muss im Grad 2 laufen, um sicherzustellen, dass der Mittelwert bereits festgelegt wurde (nicht noch zurückgenommen wird).

42 Seminar Datenbanken 42 Beispiel Prozess 3 verwendet Mittelwert und Varianz zur Steuerung des eines Mischers. 6 7 DB 3 8 P3 Mittel = 6 Varianz = 5 Diese Transaktion muss im Grad 3 laufen, um sicherzustellen, dass Mittelwert und Varianz aus der selben Berechnung stammen.

43 Seminar Datenbanken 43 Konsistenz bei der Einplanung Bei seriellen Einplanungen entstehen keine Konflikte, jede Transaktion bleibt Konsistent. Nur wenn alle Transaktionen im Grad i laufen, sieht jede Transaktion auch diesen Grad. Daher hat ein Zeitplan (Schedule) den selben Konsistenzgrad wie seine schlechteste Transaktion.

44 Seminar Datenbanken 44 Auswirkungen eines Systemcrashs t S0 Transaktion 1 Transaktion 2 Transaktion 3 Transaktion 4 Transaktion 5 S1S2S3 Systemwiederherstellung: Datenbank in konsistenten Zustand bringen Ausgehend von S2 Nur möglich wenn alle Transaktionen mindestens Grad 2 einhalten (Der Zeitplan hat mindestens Grad 2).

45 Seminar Datenbanken 45 Auswirkungen eines Systemcrashs S0 Transaktion 1 Transaktion 2 Transaktion 3 Transaktion 4 Transaktion 5 S1 Systemwiederherstellung: Datenbank in konsistenten Zustand bringen Ausgehend von S1 t S3 Transaktion 2 Transaktion 3 S2 Nur möglich wenn alle Transaktionen mindestens Grad 1 einhalten. Transaktion 5

46 Seminar Datenbanken 46 Auswirkungen eines Systemcrashs t S0 Transaktion 1 Transaktion 2 Transaktion 3 Transaktion 4 Transaktion 5 S1S2S3 Systemwiederherstellung: Datenbank in konsistenten Zustand bringen Ausgehend von S0 Im jedem Konsistenzgrad möglich.

47 Seminar Datenbanken 47 Kostenvergleich Grad CPU W W W + R In Sperrsystem aufrufen Speicher 1 W W + 1 W + R In Warteschlangen Elementen W – Anzahl der Schreibaktion R – Anzahl der Leseaktion CPU W+P*C*N*W*(1) W+R+P*C*N*W*(W+R+1) In Sperrsystem aufrufen mit Wartezeiten W+P*C*N*W*(W) W+R+P*C*N*W*(W+2*R) P – Wahrscheinlichkeit einer Kollision N – Anzahl der Transaktionen C – Wie viel mal mehr Aufwand ein Warten gegenüber einer Sperraktion benötigt 3

48 Seminar Datenbanken 48 Kostenvergleichs Beispiel Bank-Transaktionen lesen 5 Mal (R = 5)und schreiben 6 Mal (W = 6). Da es mehrere Millionen Konten gibt beträgt die Wahrscheinlichkeit einer Kollision etwa (P) 0, Es gibt (N) 100 Transaktionen pro Sekunde. Für eine Sperre benötigt das System 100 Anweisungen, für ein Warten 5000, somit ist C = 50 P*C*N*W = 0,000001*50*100*6 = 0,03 W+P*C*N*W*(1) = 6,03 6,00 = W 3 GradSpeicherCPUCPU mit Wartezeiten 01SW+P*C*N*W*(1)

49 Seminar Datenbanken 49 Quellen J.N. Gray, R.A. Lorie, G.R. Putzolu, I.L. Traiger (1976) Granularity of Locks and degrees of Consistency in a Shared Data Base In: Joseph M. Hellerstein, Michael Stonebraker (Hrsg.) (2005) Readings in Database Systems, 4th Edition MIT Press S ISBN

50 Seminar Datenbanken 50 Fragen ?


Herunterladen ppt "Seminar Datenbanken 1 Granularity of Locks and Degrees of Consistency in a Shared Data Base Seminar Datenbanken 15. Mai 2009 Marc Hartmann Granularität."

Ähnliche Präsentationen


Google-Anzeigen