920 likes | 1.03k Views
TU-München Hauptseminar Informatik Database Hall of Fame Wintersemester 2001/2002 Prof. R. Bayer: B-Bäume Verfasser: Moritz Theile Betreuer: Prof. Dr. D. Kossmann Vortragstermin: 27.11.01. Parallele Operationen auf einem B-Baum. Parallele Operationen auf B-Bäumen. Problem:
E N D
TU-München Hauptseminar Informatik Database Hall of Fame Wintersemester 2001/2002 Prof. R. Bayer: B-Bäume Verfasser: Moritz Theile Betreuer: Prof. Dr. D. Kossmann Vortragstermin: 27.11.01
Parallele Operationen auf einem B-Baum
Parallele Operationen auf B-Bäumen Problem: Wenn mehrere Prozesse gleichzeitig auf einen B-Baum zugreifen kann dies zu Problemen führen.
Parallele Operationen auf B-Bäume Beispiel: Transaktion 1: read(12) Transaktion 2: insert(3) Knoten A Knoten A 15 7 Insert(3) Knoten B Knoten B Knoten C 2 5 7 12 2 3 7 12 T1: read(12) T2: insert(3) bekommt Pointer zu B spaltet B in B u. C liest B Time
Kompatibilitätsmatrix: Momentaner Sperr-Modus Beantragter Sperr-Modus S X S OK X S: „shared“ lock X: „exclusive“ lock Sperren auf Knoten
Naiver Ansatz insert() delete() find() next() S X 4 15 4 15 2 3 11 12 17 18 2 3 11 12 17 18 • Nur Suchen können parallel ausgeführt werden. Update-Funktionen lassen keine Parallelität zu. • Sehr geringe Parallelisierung der Funktionen.
Sichere und unsichere Knoten Ein Knoten ist dann sicher, wenn seine Vorfahren durch die Operation unverändert bleiben.
Sichere und unsichere Knoten bezüglich der insert()-Funktion Ein Knoten ist bezüglich einer insert()-Operation dann sicher, wenn die Anzahl seiner Einträge kleiner als 2k ist. 28 42 23 25 26 30 35 44 47 50 51 = sicher = unsicher
Sichere und unsichere Knoten bezüglich der delete()-Funktion Ein Knoten ist bezüglich einer delete()-Operation dann sicher, wenn die Anzahl seiner Einträge größer als k ist. 28 42 23 25 26 30 35 44 47 50 51 = sicher = unsicher
Drei Lösungen mit Lock-Coupling In einer Veröffentlichung haben Bayer und Schkolnick (1977) drei verschiedene Protokolle zur Parallelisierung von Zugriffen auf B*-Bäume vorgestellt. Für Lese- und Schreibprozesse kommen immer verschiedene Protokolle zum Einsatz.
Lösung Nr. 1 für Leser Protokoll für Leser: 0)Place S-lock on root; 1)Get root and make it the current node; 2)While current node is not a leaf do begin 3)Place S-lock on appropriate son of current node; 4)Release S-lock on current node; 5)Get son of current node and make it current; end
Lösung Nr. 1 für Leser S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S S S = sicher = unsicher
Lösung Nr. 1 für Leser S S S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S S S = sicher = unsicher
Lösung Nr. 1 für Leser S S S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S S = sicher = unsicher
Lösung Nr. 1 für Leser S = sicher = unsicher
Lösung Nr. 1 für Leser = sicher = unsicher
Lösung Nr. 1 für Schreiber Protokoll für Schreiber: 0) Place X-lock on root; 1) Get root and make it the current node; 2)While current node is not a leaf do begin 3)Place X-lock on appropriate son of current node; 4)Get son and make it the current node; 5)If current node is safe then release all locks held on ancestors of current node; end
Lösung Nr. 1 für Schreiber = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber X = sicher = unsicher
Lösung Nr. 1 für Schreiber = sicher = unsicher