tu-münchen hauptseminar informatik database hall of fame wintersemester 2001/2002 prof. r. bayer:

Post on 09-Jan-2016

14 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

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äumeBeispiel:Transaktion 1: read(12)Transaktion 2: insert(3)

2 5 7 12

15

Knoten A

Knoten BInsert(3)

2 3

7

Knoten A

Knoten B

7 12

Knoten C

Time

T1: read(12) T2: insert(3)

bekommt Pointer zu B

spaltet B in B u. C

liest B

Sperren auf Knoten

Kompatibilitätsmatrix:

Momentaner Sperr-ModusBeantragterSperr-Modus

S: „shared“ lockX: „exclusive“ lock

S X

S OK

X

Naiver Ansatz

2 3 11 12 17 18

4 15

2 3 11 12 17 18

4 15

find()next()

insert()delete()

S X

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.

23 25 26 30 35 44 47 50 51

28 42

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.

= sicher

= unsicher

23 25 26 30 35 44 47 50 51

28 42

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.

= 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

 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 dobegin

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

= 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

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

SS

= sicher

= unsicher

Lösung Nr. 1 für Leser

SS

S

= sicher

= unsicher

Lösung Nr. 1 für Leser

SS

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

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

= 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

= sicher

= unsicher

Lösung Nr. 1 für Schreiber

Bewertung von Lösung Nr. 1

XDurch das Protokoll wird gleich ganz am Anfang ein X-Lock auf die Wurzel gesetzt, obwohl dieses höchstwahrscheinlich nicht notwendig gewesen wäre.Es werden in diesem Moment also alle anderen Prozesse ausgeschlossen.

Lösung Nr. 2

Lösung Nr. 2 für Leser

Protokoll für Leser:

Siehe Lösung Nr. 1

Lösung Nr. 2 für SchreiberProtokoll für Schreiber:

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)If son is not a leaf node

then place S-lock on appropriate son;

else place X-lock on appropriate son;

4)Release lock on current node;

5)Get son and make it the current node;

End

If corrent node is unsafe

then release all locks, repeat access with solution 1;

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

S

X

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

X

= sicher

= unsicher

Lösung Nr. 2 für Schreiber

X

Bewertung von Lösung Nr. 2

X

In diesem Fall hofft man einfach, dass das zu bearbeitende Blatt sicher ist.Statistisch betrachtet ist dies auch relativ wahrscheinlich. Ungefähr einmal in k Fällen kommt es vor, dass das Blatt nicht sicher ist.In diesem Fall wird der Vorgang einfach mit dem Protokoll aus der Lösung Nr.1 wiederholt.

Anmerkung: diese Methode eignet sich besonders für große k gut. Erstens ist die Wahrscheinlichkeit für einen unsicheren Knoten gering und zweitens ist der Baum relativ flach.

Lösung Nr. 3

Lösung Nr. 3 für Leser

Protokoll für Leser:

Siehe Lösung Nr. 1

Lösung Nr. 3 für Schreiber

S

A

X

yx

yx

x ist kompatibel zu y

x kann zu einem y umgewandelt werden

Semantik:

Lösung Nr. 3 für Schreiber

Protokoll für Schreiber:

0)Place A-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;

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

6)If Update will be successful

then convert, top-down,all A-locks into X-locks;

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

A

S

A

X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

A

S

A

X

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

A

S

A

X

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

S

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

SRequest to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

SRequest to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

SRequest to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

S

Request to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

S

S

Request to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

A

A

Request to change to X

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

A

X

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

X

X

A

= sicher

= unsicher

Lösung Nr. 3 für Schreiber

S

A

X

X

X

X

Bewertung von Lösung Nr. 3

Vorteile:

-Prozess blockiert Leseprozesse bloß, wenn unbedingt notwendig.

-Im Falle eines unsicheren Blattes müssen nur die A-locks in X-locks umgewandelt werden.

Nachteile:

-Evtl. unnötiger Ausschluß von Schreibprozessen

-Zeitverlust durch Konvertierung von Sperren.

Welche Lösung nimmt man?

Alle!

In einer generalisierten Lösung haben Bayer und Schkolnick ein Protokoll angegeben, welches alle drei Ansätze so miteinander vereint, dass die jeweiligen Vorteile möglichst gut ausgenutzt werden.

Rudolf Bayer, Mario Schkolnick: Concurrency of Operations on B-Trees. Acta Informatica 9: 1-21 (1977)

Literatur:

Zusammenfassung

B-Bäume sind höhenbalancierte (Such-)Bäume, die sich besonders für den Einsatz auf heutigen Hardwaresystemen eignen.

Durch entsprechende Protokolle läßt sich auf B-Bäumen ein hoher Grad an Parallelisierung erreichen.

top related