Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5...

107
Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung

Transcript of Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5...

Page 1: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

UniversitätKarlsruhe (TH)

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5

Zugriffsschicht: Satzverwaltung

Page 2: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

2

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Gegenstand des Kapitels

Mengenorientiertes Datenmodell

Datenmodell

Dateien

Dateiverwaltung

Geräteschnittstelle

Anfragebearbeitung

Satzorientiertes Datenmodell

Speicherstruktur

Schneller Transport zwischen Haupt- und Hintergrundspeicher

Hauptspeicherseiten u. Segmente

Segment- u. Pufferverwaltung Bevorratung von Daten im Hauptspeicher (rechtzeitige Bereitstellung vor Benutzung)

Transparenter homogener Speicher Datentypen:

Seite = feste Anzahl von BytesSegment = var. Anzahl von Seiten

Operatoren:Anforderung/Freigabe von SeitenSegmente anlegen/öffnen/schließen

Datentypen:Block = feste Anzahl von BytesDatei = variable Anzahl v. Blöcken

Operatoren: Dateien anlegen/öffnen/schließen Lesen/Schreiben von Blöcken

Geräte-E/A

Satz- u. Satzmengenverwaltung

Satzzugriffsstrukturen

Zugriffsschicht

Vorschau auf zukünftig benötigte Daten

Vermeiden nicht aktuell benötigter Daten

Datentypen:Sätze und Satzmengen

Operatoren:Operatoren auf Sätzen

Datentypen:Satzmengen

Operatoren:Operatoren auf Mengen

Datentypen:phys. Zugriffsstrukturen auf Sätze

Operatoren:seq. Durchlauf, gezielte Suche

Optimaler Einsatz der logischen Ressourcen

Performanz

Page 3: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

3

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Seiten vs. Datensätze

Seite: Orientierung an

Gerätestrukturen Gleichförmige und feste

Größe Zugriff auf die einzelne Seite Bevorratung im Puffer

aufgrund von internen Schätzmodellen

Phys. Datensatz: Orientierung an

Anwendungsbedürfnissen Ungleichförmige und zeitlich

variable Größe Zugriff auf den einzelnen

Satz unabhängig von Zugriffen

auf andere Sätze im Kontext von Zugriffen

auf weitere Sätze Bevorratung auf einer Seite

und damit im Puffer aufgrund von Schätzmodellen oder Vorgaben der Anwendung

Page 4: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

4

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Satzzugriffsstrukturen

Phys. Datensatz: Orientierung an

Anwendungsbedürfnissen Ungleichförmige und zeitlich

variable Größe Zugriff auf den einzelnen

Satz unabhängig von Zugriffen

auf andere Sätze im Kontext von Zugriffen

auf weitere Sätze Bevorratung auf einer Seite

und damit im Puffer aufgrund von Schätzmodellen oder Vorgaben der Anwendung

Satzzugriffstruktur: Satzmenge so organisiert, dass performanter Zugriff

möglich ist, ggf. mittels zusätzlicher Hilfsstrukturen

ggf. Ballung: Anordnen von gleichzeitig oder unmittelbar

aufeinander folgend zugegriffener Datensätze

Abhängigkeit?

Page 5: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

5

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Anordnung Datensätze auf Seiten: Satzverwaltung

Bei Strukturen mit Gemeinsamkeiten

Datenmodell

Physische DB (satzorientiert)

Zugriffs-struktur

Physischer Datensatz

enthält▶0..1

enthält▶0..1..

Physische DB (seitenorientiert)

Segment Seite

repräsentiertdurch

gespeichertin▼

1..

1

1..?

1..?enthält▶

0..1enthält▶

0..1

Derselbe Satz kann mehreren Zugriffstrukturen

angehörenPerformanter Zugriff

Page 6: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

6

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.1Kapitel 5.1

SeitenspeicherverwaltungSeitenspeicherverwaltung

Page 7: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

7

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Freispeicherverwaltung: Bereitstellung einer Seite mit genügend freiem Speicher

für die Speicherung eines Satzes

Aufgabe

Physische DB (satzorientiert)

Zugriffs-struktur

Physischer Datensatz

enthält▶0..1

enthält▶0..1..

Physische DB (seitenorientiert)

Segment Seite

repräsentiertdurch

gespeichertin▼

1..

1

1..

1enthält▶

0..1enthält▶

0..1

Page 8: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

8

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Pro Segment gibt es eine Freispeichertabelle FT, mit FT(i) = noch verfügbarer freier Speicherplatz auf Seite i.

FT muss dauerhaft gespeichert werden; hierzu werden die Einträge von FT auf Seiten abgebildet: Ein Eintrag von FT habe die Länge L. Die Seitengröße sei PS, und die Netto-Seitengröße NETPS

(Seitengröße minus Größe des Seitenkopfes, der für Verwaltungsinformationen reserviert ist).

Auf eine Seite passen k Einträge der Freispeichertabelle FT:

Sei s die Anzahl der Seiten des Segments. Um alle Einträge von FT für die Verwaltung des freien Speichers von s Seiten zu speichern, benötigt man n Seiten:

LNETPSk

ksn

Verwaltung freier Seiten (1)

Page 9: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

9

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Verwaltung freier Seiten (2)

Da Freispeicherseiten häufig durchsucht werden müssen, minimiere deren Zahl stets L = 1 Byte!

Folge: Der Speicher auf einer Seite wird in Gruppen von g = ⌈PS/28 = ⌉ ⌈PS/256 ⌉ Bytes eingeteilt und gruppenweise verwaltet.

PS 256 B …. 4096 B

g 1 B …. 16 B

Unscharfe Verwaltung mit Verschnitt

Scharfe Verwaltung

Page 10: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

10

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Ablage der Freispeichertabelle (1)

Option 1:

FT belegt die ersten n Seiten des Segments.

Nur geeignet bei statischer Segmentgröße s.

Eine Erweiterung der FT ist nur durch Verschieben von Daten auf Seiten möglich („Freimachen“ der Seiten n+1 bis n+m, wenn m weitere Seiten für FT benötigt werden).

Option 2:

Äquidistante Verteilung von FT auf die Seiten ik+1, i=0,1,2,…

Zu empfehlen bei dynamischem Wachstum von Segmenten.

Page 11: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

11

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

•••

Seite 3 Seite 4 Seite 50Seite 1 Seite 2

02560

1520

0560

Freispeichertabelleseiten Nutzdatenseiten

Ablage der Freispeichertabelle (2)

... 320...

Option 1:

Page 12: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

12

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

•••

Seite 39 Seite 40 Seite 41Seite 1 Seite 2

Freispeichertabelleseiten Nutzdatenseiten

Ablage der Freispeichertabelle (3)

02560

1520

0560 ... ... 320

•••

Option 2:

Page 13: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

13

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Freispeichertabelle Seitentabelle

Bei indirekter Seitenadressierung verbunden mit einer indirekten Einbringstrategie kann FT an die Seitentabelle angebunden werden: FT(i) zusammen mit Tabelle(i). Vorteil: Insgesamt Verringerung der Schreibvorgänge für

Seitentabelle und Freispeichertabelle.

Nachteil: Verstoß gegen Schichtenprinzip; die Seitentabelle ist eine interne Datenstruktur der Segment-Verwaltung, die Freispeichertabelle eine interne Datenstruktur der Zugriffsschicht.

Page 14: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

14

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

B2

B3

Bk+3

B4

...

B5

...

Bk+n

Bk

B1

Bk+1

P1 P2 P3 ... Pk P1‘ P2‘ P3‘ ... Pn‘

Segment S1

Segment S2

B2 B4 B5 ... Bk+2 B1 Bk B3 ... Bk+3

Seitentabelle von S1

164 50 60 ... 112 200 224 133 ... 91

Seitentabelle von S2

Freispeicher-tabelle von S2

Bk+2

Freispeichertabelle Seitentabelle

Freispeicher-tabelle von S1

Page 15: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

15

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.2Kapitel 5.2

Platzierung von Datensätzen: GrundsätzePlatzierung von Datensätzen: Grundsätze

Page 16: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

16

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

(Zugriffsstruktur-)gesteuerte Platzierung: Die Anwendung macht Voraussagen zur Art und Abfolge der Zugriffe. Die Zugriffsstruktur kontrolliert eigenständig die Platzierung

ihrer Datensätze auf Seiten.

(Zugriffsstruktur-)freie Platzierung: Die Anwendung macht keine Voraussagen zur Art und Abfolge der Zugriffe. Bestenfalls können interne Schätzmodelle eingesetzt werden. Die Zugriffsschicht platziert die Datensätze nach

eigenständigen Kriterien.

Platzierung von Datensätzen auf Seiten

Nächstes Kapitel

Dieses Kapitel

Page 17: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

17

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Eigenschaft von Datensätzen

Datensätze besitzen stets variable Länge:

Die Anzahl der Felder und die Länge der Feldwerte können zwischen Sätzen variieren, können jeweils dynamisch wachsen und schrumpfen

Vergrößerung oder Verkleinerung des Datensatzes.

Sicht der Zugriffsschicht: Nutzdatenbereich unstrukturiert (seine Verwaltung obliegt

höheren Schichten), aber die Nutzdatenlänge muss angegeben werden.

Je nach Art der Verwaltung kommen noch weitere Überhangfelder hinzu.

L Nutzdaten

Page 18: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

18

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3Kapitel 5.3

Verwaltung kleiner DatensätzeVerwaltung kleiner Datensätze

Page 19: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

19

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kleiner Datensatz: Datensatz, dessen Länge kleiner als die Seitengröße ist.

Jeder (kleine) Datensatz wird vollständig innerhalb einer Seite gespeichert.

Eine Seite kann jedoch mehrere Datensätze enthalten.

Datenmodell

Physische DB (satzorientiert)

Zugriffs-struktur

Kl. Physischer Datensatz

enthält▶0..1

enthält▶0..1..

Physische DB (seitenorientiert)

Segment Seite

repräsentiertdurch

gespeichert in▼

1..

1

1..

1enthält▶

0..1enthält▶

0..1

Page 20: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

20

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Freispeicher innerhalb einer Seite

Üblich: Kompakte Verwaltung des freien Speichers: Der gesamte freie Speicher einer Seite ist ein

zusammenhängender Speicherbereich. Vorteil: Es steht immer der gesamte freie Speicher für die

Allokation zusammenhängender Speicherbereiche zur Verfügung.

Nachteile: Verschiebeaufwand bei Freigabe von Speicher, Umadressierung der Datensätze auf der Seite.

Verwaltungsinformation im Seitenkopf: Falls der freie Speicher am Anfang oder Ende der Seite liegt, genügt entweder Anfangsadresse oder Länge des freien Speichers.

Page 21: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

21

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Seitenkopf

100 3600

Freispeicher innerhalb einer Seite

Seite 10

Sa

Sa

S

S

S

Satz

Satz

Satz

Satz C

Satz A

Satz Etz D

tz B

atz F

atz G

atz H

K

L

M

Page 22: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

22

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3.1Kapitel 5.3.1

EinzelsatzablageEinzelsatzablage

Page 23: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

23

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Forderungen an die Adressierung

Forderungen:

Stabilität: Da die Adresse eines Satzes an sehr vielen Stellen in der Datenbasis vorkommen kann (z.B. in mehreren Zugriffsstrukturen), und oft gar nicht alle Stellen bekannt sind, an denen die Adresse eines Satzes vorkommt, sollte die Adresse eines Satzes über die Lebensdauer der DB relativ stabil bleiben.

Flexibilität: Der Satz sollte auf den Seiten des Segments verschiebbar sein (innerhalb einer Seite und über Seitengrenzen hinweg), um bspw. Wachstumsschwankungen auffangen zu können.

Page 24: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

24

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Lösungsansätze für die Adressierung

Direkte Adresse eines Satzes: Nummer der Seite und Offset innerhalb der Seite, an dem sich der Satz befindet. Entweder instabil oder inflexibel.

Lösung: Vorschalten einer indirekten Adresse ( Stabilität), aus der die direkte Adresse zu ermitteln ist ( Flexibilität).

Zu untersuchen: Einfachheit der Ermittlung versus Stabilitätsverhalten.

TID

LID

PPP

Page 25: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

25

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Einführung von seitenlokalen Tabellen. Die Einträge der Tabelle werden als Slots bezeichnet. Sie enthalten die relativen Adressen (Offsets) der

Datensätze auf der Seite. Die Slottabelle und deren Größe wird im Seitenkopf der

Seite verwaltet.

Eine Satzadresse ist ein Paar (Seitennummer, Slotnummer) und heißt Tuple identifier (TID).

Für die Repräsentation von Slotnummern genügt meist 1 Byte; bei 32 bit-Satzadressen bleiben 24 bit für die Seitennummer.

TID (1)

Page 26: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

26

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

10

ext.TID(Satz C)

5

Seitenadresse Slotnummer

24 bit 8 bitSeitenkopf

100 3600

TID (2)

Seite 10

Sa

Sa

S

S

S

Satz

Satz

Satz

Satz C

Satz A

Satz Etz D

tz B

atz F

atz G

atz H

K

L

M

Satz C

Page 27: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

27

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

TID von Datensatz R1

P123 3

Segment S4711

#Slots:6

P123

5 4 3 2 1 0

Für die Verschiebung eines Satzes innerhalb einer Seite wird nur der zu dem Datensatz gehörende Slot auf den neuen Offset des Satzes gesetzt.

Der TID bleibt beim Verschieben eines Satzes innerhalb der Seite unverändert.

Beispiel: Verschieben von Datensatz R1 innerhalb von Seite P123.

TID (3)

R1R1

Page 28: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

28

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Flexibilität: Wenn ein Satz von einer Seite verdrängt und auf eine andere Seite verschoben wird, soll sein TID unverändert bleiben.

Hierzu wird ein sogenannter Stellvertretersatz auf der alten Seite eingeführt, der auf den neuen Speicherplatz des Satzes verweist.

Der Stellvertretersatz muss natürlich kleiner sein als der verdrängte Satz, da sonst das Verdrängen des Satzes von der Ursprungsseite keinen Speichergewinn bringt.

Beispiel: Satz R1 wird von Seite P123 auf Seite P504 verschoben.

TID (4)

Page 29: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

29

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Segment S4711

#Slots:6

P123

5 4 3 2 1 0

#Slots:4P504

3 2 1 0

TID von Datensatz R1

P123 3

Rückwärtsverweis und Nutzdaten von Datensatz R1

R1P123 3= Stellvertreterbit

= Verdrängungsbit

TID (5)

R1P504 2

Stellvertretersatz

Page 30: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

30

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Wird ein bereits verdrängter Satz von seiner jetzigen Seite erneut verdrängt, dann wird

1. eine neue Seite für den Satz gesucht,

2. der TID des Satzes auf der neuen Seite in den Stellvertretersatz auf der Ursprungsseite (Home page) des Satzes eingetragen. Die Home Page des Satzes wird anhand des

Rückwärtsverweises ermittelt.

Die Verweiskette bei mehrfacher Verdrängung eines Satzes bleibt so auf 1 Verweis beschränkt.

Dabei kann es auch zu Zurückholen auf die Home Page kommen.

Beispiel: Erneutes Verdrängen von Satz R1 auf Seite P345.

TID (6)

Page 31: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

31

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Segment S4711

#Slots:6

P123

5 4 3 2 1 0

#Slots:4P504

3 2 1 0

TID von Datensatz R1

P123 3

R1P123 3

TID (7)

R1P504 2

Stellvertretersatz

P345

3 2 1 04

#Slots:5

R1P123 3

Page 32: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

32

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Segment S4711

#Slots:6

P123

5 4 3 2 1 0

#Slots:4P504

3 2 1 0

TID von Datensatz R1

P123 3

TID (7)

R1P504 2

Stellvertretersatz

P345

3 2 1 04

#Slots:5

R1P123 3

P345 4

Page 33: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

33

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Bewertung des TID-Konzeptes

Vorteile: Jeder Datensatz wird mit maximal 2 Seitenzugriffen

aufgefunden. Bei 10 % verdrängten Sätzen ergibt sich ein mittlerer Zugriffsfaktor

von 1.1 Seitenzugriffen pro Satz.

Nachteile: Ungünstig bei Seitenspalt-Verfahren, bei denen volle Seiten

geteilt und die Hälfte der Datensätze auf eine neue Seite verschoben werden (Abhilfe: Zugriffsstruktur-Steuerung!).

Langfristig instabil: Bei Löschen und Reorganisation ändern sich die TIDs, zur Anpassung müssen alle Vorkommen der alten TIDs in der Datenbasis gefunden werden.

TID nur eindeutig im Segment.Fazit: Hohe Flexibilität, mittelmäßige Stabilität, schneller Zugriff.

Page 34: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

34

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

LID (1)

Segment S4711

#Slots:6

P123

5 4 3 2 1 0

R1

logischer Identifikator

(LID)

345.208 P123 3

TID

Zuordnungstabelle

Logischer Identifikator von Datensatz R1

Langfristig stabiler Identifikator

Page 35: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

35

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Realisierungsvariante 1: Laufende Nummer Vorteil: Der einfachste Weg, eindeutige Identifikatoren zu

erzeugen, ist das Inkrementieren eines Zählers. Kurze LIDs (z.B. 32 bit):

Die Größe der DB und damit die Performanz werden positiv beeinflusst.

Mit 32 bit lassen sich 4 G Datensätze identifizieren Ausreichend für die meisten Anwendungen. Andernfalls Wiederverwendung von Identifikatoren

(Fehlerquelle!)

Lange LIDs (z.B. 64 bit): Vorrat verfügbarer Identifikatoren größer. Man kann es sich leisten, die LIDs gelöschter Datensätze

nicht wiederzuverwenden.

LID (2)

Page 36: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

36

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Realisierungsvariante 2: Strukturierte Identifikatoren

Sie enthalten Informationen über den Datensatz plus laufende Nummer. Beispiele: Wert eines Schlüsselattributs der logischen Ebene; Segment-, DB-, Typidentifikatoren; bei verteilter DB die Adresse des Rechners, auf dem der Datensatz erzeugt wurde.

Vorteil: Informationen können bereits dem logischen Identifikator entnommen werden.

Nachteile: Längere Identifikatoren, komplizierte Generierungsverfahren für Identifikatoren, i.Allg. wird nicht der gesamte Raum möglicher Identifikatoren genutzt.

LID (3)

Page 37: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

37

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Varianten für die Realisierung von Zuordnungstabellen:

Geltungsbereich einer Zuordnungstabelle: eine Tabelle für die gesamte DB (sehr große Tabelle, TIDs

müssen um Segmentnummer ergänzt werden)

eine Tabelle pro Segment eine Tabelle pro Zugriffsstruktur.

Speicherung von Zuordnungstabellen: Abbildung auf Seiten notwendig. Schnelle Suche: Speicherung sortiert oder über eine

Hashtabelle.

LID (4)

Page 38: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

38

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Bewertung des LID-Konzeptes

Vorteile: Beim Verschieben/Löschen eines Satzes muss allein sein

Eintrag in der Tabelle angepasst/beseitigt werden. Langfristig stabil: LIDs überleben Reorganisation der DB.Nachteile: Für gegebenen LID sind mindestens 2 Seitenzugriffe

notwendig, um auf einen Satz zuzugreifen. Oft noch mehr: Bei Hashverfahren: Es können mehr als 2 Seitenzugriffe

erforderlich sein. Problem des virtuellen Hauptspeichers.

Eigene Transaktionstechniken für Zuordnungstabelle.Fazit: Höhere Zugriffskosten, hohe Stabilität, hohe Flexibilität.

Page 39: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

39

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

LID-Konzept mit folgender Erweiterung: Satzadresse ist Paar (LID, TID):

TID verweist „mit hoher Wahrscheinlichkeit“ auf den Speicherplatz des Datensatzes.

TID (und auch Paar) wird als Probable Page Pointer (PPP) bezeichnet.

In den Slottabellen einer Seite ist in jedem Slot zusätzlich zum Offset der LID des Satzes gespeichert.

Beim Erzeugen eines Datensatzes geht seine aktuelle TID in Zuordnungstabelle und PPP ein.

Wird ein Datensatz verschoben, dann wird der TID in der Zuordnungstabelle angepasst. Dagegen: faule Anpassung der PPP bei deren Verwendung.

PPP (1)

Page 40: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

40

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

345.208

P123

R1

2 1 0

Segment S4711

P378

R0815

2 1 0

345.208

PPP(R1)

P378 1

PPP (2)

1. Zugriff über den TID, der in dem PPP enthalten ist

logischer Identifik.

345.208 P123 2

TID

Zuordnungstabelle

veraltet

2. Zugriff auf Zuordnungstabelle über log. Identifikator

3. Zugriff über aktuellen TID

270.450

4. Ersetzen dieses veralteten TIDs

P123 2

Page 41: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

41

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Vorteile: Schnellerer Zugriff als bei LIDs.

Bei 10 % verdrängten Datensätzen durchschnittlich 1.2 Seitenzugriffe pro Satzzugriff.

Nachteile: Hoher Speicherplatzbedarf wegen langer Satzadressen. Anpassung veralteter TIDs in PPPs erfordert

Schreibzugriff.Fazit: Breiter gestreute Ermittlungskosten, hohe Stabilität und

Flexibilität, hoher Aufwand. Nur bei hoher Dynamik (häufiges Verdrängen von Sätzen)

bzw. häufigen Reorganisationen mit TID-Konzept konkurrenzfähig.

Bewertung des PPP-Konzeptes

Page 42: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

42

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3.2Kapitel 5.3.2

Ballen von DatensätzenBallen von Datensätzen

Page 43: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

43

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Ballungszeitpunkt

Wann bestimme ich zu einem Datensatz die Seite, auf der der Satz gespeichert werden soll? 1. Zum Zeitpunkt des Erzeugens: Datensätze erhalten sofort

nach ihrer Erzeugung eine Seite zugewiesen. Auf diese Art kann die Ballung der Datensätze nur begrenzt optimiert werden, da die „guten“ Seiten bereits voll sein können.

2. Beim Commit: Transaktionen weisen allen erzeugten Datensätzen zunächst nur temporäre Speicherplätze zu und versuchen beim Commit, eine gute Ballung für die neu erzeugten Datensätze aufzubauen.

3. Bei der Reorganisation: Die beste Art, eine gute Ballung aufzubauen, besteht in einer vollständigen oder teilweisen Reorganisation der DB. Dabei können die Datensätze unabhängig von ihrem Erzeugungszeitpunkt geballt werden, da man im Vollbesitz aller Informationen ist.

Kon

text

wis

sen,

Qua

lität

der

Clu

ster

ung

Page 44: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

44

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Aufgabe 2: Wähle geeigneten Ballungsalgorithmus

Aufgabe 1: Erstelle das Modell

Ballungsproblem

Definition des Ballungsproblems: Gegeben:

1. Eine Menge von physischen Datensätzen, 2. die Größe der physischen Datensätze, 3. ein Schätzmodell für das Nutzungsprofil, das angibt, wie

häufig auf zwei Datensätze direkt hintereinander zugegriffen wird,

4. die Seitengröße. Ausgabe:

Eine Gruppierung von Datensätzen auf Seiten, so dass die Seitengröße nicht überschritten wird und die Anzahl der logischen Seitenreferenzen für den durchschnittlichen Operationsmix der Datenbasis minimiert wird.

Page 45: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

45

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Stabilität

Zur Stabilität der Ballung:

Bei Änderungen der DB verschlechtert sich die Ballung zunehmend, da sich mit Änderungen in der DB häufig auch die Nutzung der Datensätze ändert, die Ballung aber unverändert bleibt und das neue Nutzungsprofil der Datensätze nicht mehr unterstützt.

Page 46: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

46

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Modellierung des Zugriffsverhaltens Das Zugriffsverhalten der Anwendungen wird durch einen

Clusterungsgraph (CG) modelliert. Die Knoten stellen physische Datensätze dar. Eine Kante zwischen zwei Datensätzen R1 und R2 zeigt

an, dass es Anwendungen gibt, die auf Datensatz R1 zugreifen und direkt danach auf Datensatz R2.

Kanten und Knoten des CG sind gewichtet. Das Gewicht einer Kante drückt die relative Häufigkeit von

direkten Zugriffen vom Anfangspunkt der Kante zu ihrem Endpunkt aus (alle Kanten haben ein Gewicht > 0). Die Kantengewichte stellen somit ein Modell für das Zugriffsverhalten der Anwendungen dar.

Das Gewicht eines Knoten ist die Länge des entsprechenden Datensatzes.

Page 47: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

47

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Beispiel Clusterungsgraph

Cuboid

GeoId Color Value Mat V1 ... V8 1 “red“ 39.99 77 11 ... 18 2 “blue“ 19.95 77 21 ... 28 3 “yellow“ 89.90 99 31 ... 38

Material

VertId X Y Z11 0.0 0.0 0.0...18 0.0 6.694 6.69421 0.0 0.0 0.0...28 0.0 5.848 5.84831 0.0 0.0 0.0...38 0.0 4.641 4.641

Vertex

MatId Name SpecWght

77 “Iron“ 7.86

99 “Gold“ 19.0

Page 48: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

48

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Beispiel Clusterungsgraph

Material 77 Material 99

Cuboid 1 Cuboid 2 Cuboid 3

Vertex11 Vertex18

Vertex21 Vertex28

Vertex31 Vertex38

12

16 22 22

58 58 58

28282828

28 28

CubSet

MatSet

10 820

8

15 20

40404040

40 40

6 5Datensätze

Knotengewicht=Datensatzgröße

Kantengewicht

Page 49: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

49

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Ermittlung der Kantengewichte

Statische Verfahren:

Diese Verfahren beruhen entweder auf Eingaben des Benutzers oder auf einer Analyse des Datenbankschemas oder der Anwendungsimplementierungen.

Dynamische Verfahren: Sie beruhen auf der Analyse früherer Anwendungen.

Entweder müssen spezielle Trainingsläufe von Anwendungen gefahren werden, oder

das Zugriffsverhalten der normalen Alltags-Anwendungen wird protokolliert.

Hoher Aufwand während des Alltags-Betriebs der Datenbasis.

Page 50: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

50

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Ballungsalgorithmen

Reformulierung des Ballungsproblems: Ein Ballungsalgorithmus erhält als Eingabe einen CG und die

Seitengröße, und produziert als Ausgabe eine Aufteilung der Knoten des CG auf Seiten.

Sequenz-basierte Ballungsalgorithmen: Sie überführen den CG in eine Sequenz von Datensätzen. Die Sequenz wird in Teilsequenzen zerlegt, so dass die

Datensätze in jeder Teilsequenz auf eine Seite passen. Die Seiten werden dabei soweit wie möglich gefüllt. Partitionierungs-basierte Ballungsalgorithmen: Sie wenden einen Graphpartitionierungs-Algorithmus auf den

CG an. Der CG wird in Partitionen zerlegt, so dass die Datensätze in

jeder Partition auf eine Seite passen.

Page 51: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

51

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3.3Kapitel 5.3.3

Sequenz-basiertes BallenSequenz-basiertes Ballen

Page 52: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

52

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Sequenz-basierte Ballungsalgorithmen

Sequenz-basierte Ballungsalgorithmen sind von der Form PreSort | Traversal.

PreSort ist eine Sortiervorschrift, die die Vorsortierung der Datensätze als totale oder partielle Ordnung festlegt.

Traversal steht für einen Algorithmus, der den CG traversiert. Die Datensätze werden entsprechend ihrer Vorsortierung als

Startpunkte für Traversierungen des CG betrachtet. Die Besuchsreihenfolge der Knoten ergibt die

Knotensequenz. Bei der Traversierung werden nur Knoten betrachtet, die noch

nicht besucht wurden. Die Knoten (Datensätze) werden entsprechend dieser

Sequenz auf Seiten verteilt.

Page 53: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

53

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Überblick über Vorsortierungen

Random: Beliebige Reihenfolge der Datensätze. Static Reference Count: Anzahl von Verweisen von anderen

Datensätzen, die auf einen Datensatz verweisen; auf- oder absteigende Sortierung möglich. Bestimmung von „Kristallisationspunkten“: Näherungslösung durch

Analyse der Datenbasis.

Dynamic Reference Count: Anzahl von Referenzierungen, die über einem bestimmten Zeitraum auf den Datensatz gemacht wurden; auf- oder absteigende Sortierung möglich. Bestimmung von „Kristallisationspunkten“ durch Monitoring.

Trace: Es wird die Zugriffsspur eines Anwendungsmixes ausgewertet; die Datensätze werden entsprechend der Position ihrer ersten Referenzierung in der Spur angeordnet.

User: Der Benutzer definiert eine Sortierung der Datensätze.

Page 54: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

54

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Überblick über Traversierungen

Id: Die Datensätze werden entsprechend ihrer Vorsortierung besucht.

Depth First: Entsprechend Tiefensuche, erfordert knotenlokale Sortierung der ausgehenden Kanten.

Breadth First: Entsprechend Breitensuche, erfordert knotenlokale Sortierung der ausgehenden Kanten.

Page 55: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

55

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

MatSet, CubSet, Mat77, Mat99, Vert11,…, Vert38, Cub1, Cub2, Cub3

Beispiel Clusterungsgraph

Material 77 Material 99

Cuboid 1 Cuboid 2 Cuboid 3

Vertex11 Vertex18

Vertex21 Vertex28

Vertex31 Vertex38

12

16 22 22

58 58 58

28282828

28 28

CubSet

MatSet

10 820

8

15 20

40404040

40 40

6 5

Size.incr | DepthFirstSize.incr sortiert die Knoten nach aufsteigender Größe

Seite Inhalt1 [MatSet, Mat77, Cub1, Vert11, Vert12]2 [Vert13, Vert14, Vert15, Vert16, Vert17]3 [Vert18, Cub2, Vert21, Vert22]4 [Vert23, Vert24, Vert25, Vert26, Vert27]5 [Vert28, Mat99, Cub3, Vert31]6 [Vert32, Vert33, Vert34, Vert35, Vert36]7 [Vert37, Vert38, CubSet]

Seitengröße: 150 Bytes

Page 56: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

56

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Cub1, Cub2, Cub3, Vert11, …, Vert38, Mat77, Mat99, CubSet, MatSet

Beispiel Clusterungsgraph

Material 77 Material 99

Cuboid 1 Cuboid 2 Cuboid 3

Vertex11 Vertex18

Vertex21 Vertex28

Vertex31 Vertex38

12

16 22 22

58 58 58

28282828

28 28

CubSet

MatSet

10 820

8

15 20

40404040

40 40

6 5

Size.decr | DepthFirstSize.decr sortiert die Knoten nach absteigender Größe

Seite Inhalt1 [Cub1, Vert11, Vert12, Vert13]2 [Vert14, Vert15, Vert16, Vert17,Vert18]3 [Cub2, Vert21, Vert22, Vert23]4 [Vert24, Vert25, Vert26, Vert27, Vert28]5 [Cub3, Vert31, Vert32, Vert33]6 [Vert34, Vert35, Vert36, Vert37, Vert38]7 [Mat77, Mat99, CubSet, MatSet]

Seitengröße: 150 Bytes

BreadthFirst liefert dasselbe Ergebnis

Page 57: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

57

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Bewertung sequenz-basiertes Ballen

Einfaches Verfahren mit schneller Laufzeit. Starke Abhängigkeit von Vorsortierung: Size.decr | DepthFirst

bzw. Size.decr | BreadthFirst spiegelt (zufällig) Nutzung besser wieder als Size.incr | DepthFirst.

Der Traversierungsalgorithmus muss möglichst gut das Zugriffsverhalten der Anwendungen nachbilden. Depth-First ist bei navigierenden Anwendungsprogrammen

vorzuziehen. Breadth-First ist bei Anwendungen mit vielen Iterationen über

Mengen und Listen vorzuziehen. Kantengewichte werden nur wenig berücksichtigt. Erfahrung: Der Clusterungsalgorithmus Trace | Id sortiert die

Datensätze entsprechend des Zugriffsspur einer konkreten Anwendung und speichert die Datensätze in dieser Reihenfolge auf Seiten. Hierbei wird das Verhalten der Anwendung gut berücksichtigt.

Page 58: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

58

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Benutzerdefinierte Traversierungen

Placement Tree: Baum zur Beschreibung der gewünschten Traversierung des CG. Beispiele für Placement Trees:

Für die Traversierung des CG werden die Placement Trees auf den CG abgebildet und die entstehenden Untergraphen nach depth-first Reihenfolge traversiert.

CubSet

Cuboid

Vertex Vertex…

V8V1

MatSet

Material

Page 59: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

59

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3.4Kapitel 5.3.4

Partitions-basiertes BallenPartitions-basiertes Ballen

Page 60: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

60

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierungs-basierte Ballungsalgorithmen

Das Ballungsproblem als Graphpartitionierungsproblem:

R1

R6

R5

R4

R2

R3

100

100

100

1

1

1

Annahme: Alle Datensätze gleich groß, Seitengröße = 3.

Depth-First Traversierung beginnend mit Datensatz R1.Bewertung: Schlecht, da zwar alle Seiten zu 100 % gefüllt, aber Trennung gewichtige Kante (R3 R4).

Bessere Ballung:Bewertung: Seiten zwar nur zu zwei Drittel gefüllt, aber nur Durchtrennung leichtgewichtiger Kanten (R2 R3), (R4 R5), (R6 R1).

Page 61: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

61

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierungs-basierte Ballungsalgorithmen

Das Ballungsproblem als Graphpartitionierungsproblem:

Eine Ballung eines CG, d.h. eine Zuordnung der Datensätze zu Seiten, induziert eine Partitionierung des CG.

Die externen Kosten einer Partitionierung sind definiert als die Summe der Gewichte aller Kanten, die Partitionsgrenzen überspannen.

Das Ballungsproblem ist nun:

Finde eine Partitionierung des CG, so dass

1. die Summe der Knotengewichte in jeder Partition kleiner gleich der Seitengröße ist und

2. die externen Kosten der Partitionierung minimiert werden.

Page 62: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

62

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierungs-basierte Ballungsalgorithmen

R1

R6

R5

R4

R2

R3

100

100

100

1

1

1

R1

R6

R5

R4

R2

R3

100

100

100

1

1

1

Externe Kosten = 101 Externe Kosten = 3

Externe Kosten der Beispiel-Cluster

{R1, R2} {R3, R4} {R5, R6}{R1, R2, R3 } {R4, R5, R6}

Page 63: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

63

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierungs-basierte Ballungsalgorithmen

Komplexitätsbetrachtungen:

Das Ballungsproblem ist eine Instanz des freien Partitionierungs-Problems, bei dem die Zahl der Partitionen nicht vorbestimmt ist.

Allgemein sind Partitionierungs-Probleme NP-vollständig.

Erfordert Näherungsverfahren.

Wünschenswert, da i.Allg. partitionierungs-basierte Ballungsalgorithmen bessere Clusterungen ergeben als sequenz-basierte.

Grund: Es wird ein weiterer Kontext betrachtet!

Page 64: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

64

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierung nach Kernighan und Lin

Grundgedanke:

Der Algorithmus von Kernighan und Lin (KL) beginnt mit einer initialen (beliebigen) k-Partitionierung eines Graphen und vertauscht so lange Datensätze zwischen jeweils zwei Seiten, bis ein Endekriterium (als lokales Kostenminimum) erreicht ist.

Literatur: B. Kernighan and S. Lin, An efficient heuristic procedure for partitioning graphs, Bell System Technical Journal, pp. 291-307, 1970.

Page 65: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

65

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierung nach Kernighan und Lin

Definitionen:

Sei G=(V,E) ein beliebiger Graph mit Knoten V = {v1, ..., vn} und Kanten E 2V.

Für (vi, vj) E gibt cij das Gewicht der Kante an (cij=0 falls (vi, vj) E; cii = 0).

Einfachster Fall Bi-Partitionierung: Sind A und B zwei Partitionen des Graphen, so sind als externe

Kosten E(i) für einen Knoten vi A definiert:

Die internen Kosten sind die Kostensumme aller Kanten, deren beteiligte Datensätze in der gleichen Partition liegen:

j

ijv B

E i c

j

ijv A

I i c

Page 66: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

66

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierung nach Kernighan und Lin

Partition B Partition A

… …

E(i)

vi

vj

I(i)

I(j)

E(j)

Externe und interne Kosten

Page 67: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

67

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Partitionierung nach Kernighan und Lin

Partition B Partition A

… …

E‘(i)

E‘(j)

Gewinn beim Vertauschen von Knoten

Nach der Vertauschung von vi und vj ergeben sich neue interne und externe Kosten:

E‘(i) = I(i) + cij

I‘(i) = E(i) - cij

vj

vi

I‘(j)

I‘(i)

Page 68: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

68

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Gewinn beim Vertauschen von Knoten Externe Gesamtkosten vor der Vertauschung von vi und vj:

T = z + E(i) + E(j) – cij (E(i) und E(j) enthalten jeweils cij) Gesamtkosten nach der Vertauschung von vi und vj:

T‘ = z + E‘(i) + E‘(j) - cij = z + I(i) + I(j) + cij

(z: Summe der Kosten aller Kanten zwischen A und B ohne vi oder vj) Gewinn bei Vertauschung von vi A und vj B

g = T - T‘ = E(i) - I(i) + E(j) - I(j) - 2 cij

oder mit D(i) = E(i) - I(i) Differenz von externen und internen Kosten:

g = T - T‘ = D(i) + D(j) - 2 cij

Iteration Nach Vertauschen von vi und vj müssen die D-Werte der noch

verbleibenden Datensätze V \ {vi, vj} neu berechnet werden:

[ k in A: D‘(k) = E‘(k) - I‘(k) = E(k) + cik - cjk - (I(k) + cjk - cik) ]

Partitionierung nach Kernighan und Lin

D(k) + 2cik + 2cjk für vk A \ {vi,vj}

D(k) + 2cik + 2cjk für vk A \ {vi,vj} D‘(k) =

Page 69: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

69

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

algorithm Kernighan (G, C, ):

/* Graph G=(V,E), Kostenmatrix C = (cij) */

/* initiale Partitionierung = {P1, ..., Pk} */

repeat

foreach (Px, Py) do

Kern2 (G, C, Px, Py);

until (Endekriterium erfüllt);

end algorithm;

Der KL-Algorithmus

Bewirkt Vertauschungen

Reihenfolge hat Einfluss

Page 70: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

70

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

algorithm Kern2 (G, C, A, B):Setze n := A + B;repeat

Setze A1 := A; B1 := B;for p := 1 to n/2 do begin Berechne die D-Werte für alle Elemente von Ap und Bp; Wähle vi Ap , vj Bp

so dass gp = D(i) + D(j) - 2 cij maximal wird; Setze ap := vi , bp := vj ; Setze Ap+1 := Ap \ {vi}, Bp+1 := Bp \ {vj};end; Wähle 0 k n/2, so dass maximiert wird; /* k bestimmt die Mengen {a1, ..., ak} {a1, ..., an/2} und */ /* {b1, ..., bk} {b1, ..., bn/2} der zu vertauschenden Knoten */ if gain > 0 then begin

Setze A := (A \ {a1, ..., ak}) {b1, ..., bk}; Setze B := (B \ {b1, ..., bk}) {a1, ..., ak};

end; until gain 0;

end algorithm;

Der KL-Algorithmus

1ki igain g

Der Algorithmus terminiert, wenn keine Kostenreduzierung mehr erreichbar ist.Alternative: Vorgegebene Anzahl von Iterationen.

Page 71: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

71

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Initiale Partitionierung

Der KL-Algorithmus

1

2

5

4

6

3

A

B

Alle Kanten cij haben Gewicht 1, alle Knoten haben gleiche Größe.

Optimale Partitionierung

1

2

5

4

6

3

Page 72: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

72

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Der KL-AlgorithmusA1:={1, 3, 4} B1:={2, 5, 6}

i D ( i )1 1 1 0 2 2 1 1 3 1 1 0 4 2 0 2 5 1 2 1 6 1 1 0

1g 2 5 61 -1 -1 03 -1 -1 04 3 -1 0

1. Iteration

g = D(i) + D(j) - 2 cij Wählea1=4, b1=2

2. Iteration A2:={1, 3, 4} B2:={2, 5, 6}

i D ( i )1 0 0 2 2 3 0 0 2 2 5 1 2 2 1 6 0 0 2 2

2g 5 61 -3 -43 -3 -4

Wählea2=1, b2=5

1

2

5

4

6

3

A

B

D(i) = E(i) - I(i)

D(k) + 2cik + 2cjk für vk A \ {vi,vj}

D(k) + 2cik + 2cjk für vk A \ {vi,vj} D‘(k) =

Page 73: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

73

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Der KL-Algorithmus

1g 2 5 61 -1 -1 03 -1 -1 04 3 -1 0

3. Iteration

g = D(i) - D(j) - 2 cij Wählea1=4, b1=2

2. Iteration A2:={1, 3, 4} B2:={2, 5, 6}

i D ( i )1 0 0 2 2 3 0 0 2 2 5 1 2 2 1 6 0 0 2 2

2g 5 61 -3 -43 -3 -4

Wählea2=1, b2=5

A3:={1, 3, 4} B3:={2, 5, 6}

1. Iteration

i D ( i )3 2 2 0 0 6 2 2 0 0

3g 63 0

Wählea3=3, b3=6

1

2

5

4

6

3

A

B

Page 74: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

74

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Der KL-Algorithmus1g 2 5 61 -1 -1 03 -1 -1 04 3 -1 0

Wählea1=4, b1=2

2g 5 61 -3 -43 -3 -4

Wählea2=1, b2=5

3g 63 0

Wählea3=3, b3=6

Berechnungsvorschrift für Knotenvertauschung:Berechnung von gain für alle Vertauschungsvektoren mit Länge k {1,2,3}:

k g a i n1 1 ( 4 , 2 ) 3g 2 1 2( 4 , 2 ) ( 1 , 5 ) 3 ( 3 ) 0g g 3 1 2 3( 4 , 2 ) ( 1 , 5 ) ( 3 , 6 ) 3 ( 3 ) 0 0g g g

A1:= {1, 3, 4}

B1:= {2, 5, 6}

1

2

5

4

6

3

A

B

Page 75: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

75

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Der KL-Algorithmus

A1:={1, 3, 4}

B1:={2, 5, 6}

Im nächsten Durchlauf der äußeren Schleife der Prozedur Kern2 würde kein positiver Gewinn (gain) mehr erzielt, so dass der Algorithmus mit der optimalen Partitionierung terminiert.

1

2

5

4

6

3

1

2

5

4

6

3

A

B

Page 76: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

76

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Hoher Aufwand O(n2.4), mit n die Anzahl der Knoten des Graphen.

Austausch von Datensätzen ist problematisch, wenn Datensätze mit sehr unterschiedlichen Größen vorliegen (wegen der begrenzten Seitengröße).

Verlagerung (statt Austausch) eines Datensatzes von einer Seite auf eine andere Seite ist nicht vorgesehen.

Die Anfangspartitionierung hat einen wesentlichen Einfluss auf die Güte der Ergebnispartitionierung.

Die Anzahl der Partitionen ist durch die initiale Partitionierung fest vorgegeben und kann nicht angepasst werden.

Die Größe der Partitionen ist ebenfalls fix.

Bewertung des KL-Algorithmus

Page 77: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

77

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Es gibt Weiterentwicklungen von KL, bspw. von Fidducia und Mattheyses (FM). Der FM Algorithmus erlaubt das Verschieben einzelner

Knoten über Partitionsgrenzen hinweg. FM kann die Größe der Partitionen dadurch modifizieren. Außerdem kann die Anzahl der Partitionen verringert

werden, indem alle Knoten von einer Partition weg verschoben werden.

Es gibt Kombinationen mit Greedy Graph-Partitionierung. Schnelles Erzeugen einer „guten“ Anfangspartitionierung.

Bewertung des KL-Algorithmus

Page 78: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

78

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.3.5Kapitel 5.3.5

Pointer SwizzlingPointer Swizzling

Page 79: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

79

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Beobachtung:

Bei objektorientierten DBs sind sehr viele Feldwerte in Datensätzen (häufig über die Hälfte) Verweise auf andere Datensätze.

Forderungen: Für die interne Verarbeitung sollten diese Verweise

Hauptspeicheradressen sein. Daher sollte beim Einlagern der Sätze auf einer Seite ein

Ersatz von Adressen nunmehr gepufferter Sätze auf Hauptspeicheradressen erfolgen.

Beim Einbringen von Änderungen muss dann umgekehrt eine Umrechnung von Hauptspeicheradressen auf periphere Satzadressen erfolgen.

Motivation

Page 80: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

80

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Klassifikation nach Ort: In-Place-Swizzling: Umformung der Adressen im

Seitenpuffer und damit global sichtbar. Copy-Swizzling: Kopieren der Objekte in einen eigenen

Objektpuffer, Umformung damit nur lokal sichtbar.

Klassifikation nach Zeitpunkt: Sofortiges Swizzling (eager swizzling).

Erfordert Kenntnis des Satzaufbaus (keine saubere Trennung der Schichten!)

Swizzling auf Anforderung (lazy swizzling). Abfangen der Anforderung, Stelle des Verweises muss

bestimmt werden.

Beachte: Änderungen müssen rücktransformiert werden.

Klassifikationen

Page 81: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

81

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Grundmuster

tid hsp

..

......

..

......

h(tid)

Zuordnungstabelleoid/hsp-Adresse

Objekt 1 Objekt 4

Objekt 2 Objekt 3 Objekt 5

Sofortiges Swizzling: Aufbau der Tabelle und Ersatz der Adressen auf einen Schlag.

Swizzling auf Anforderung: Test in der Tabelle, schrittweiser Aufbau der Tabelle und Ersatz der Adressen.

Variationsmöglichkeiten siehe Härder/Rahm!

im Hsp.

Page 82: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

82

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Besonderheit: Memory Mapping Architektur (MMA) des kommerziellen objektorientierten Datenbanksystems ObjectStore mit Swizzling In-Place, Vorausschauend:

Datenmodell wie im Beispiel: C++ mit ObjectStore-spezifischen Erweiterungen: Spezieller new-Operator, mit dem Objekte in einer

Datenbasis erzeugt werden können. In C++ eingebettete Anfragesprache. Der Zugriff auf Objekte erfolgt wie in C++ durch das

Dereferenzieren von Zeigern. Beim Dereferenzieren von Zeigern ist für den Benutzer

verdeckt, ob das referenzierte Objekt persistent (d.h. in der DB gespeichert) oder transient ist (transiente Objekte existieren nur zur Laufzeit des Anwendungsprozesses).

MMA (1)

Page 83: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

83

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

class Cuboid {int Value; ...};

Cuboid *c1, *c2; c1 = new(db1, CuboidTypeDesc) Cuboid;

// c1 zeigt auf neuen, in Datenbasis db1 angelegten // dauerhaften Cuboid;

c2 = new Cuboid;// c2 zeigt auf neuen, transienten Cuboid; \\

printf(”%s\n“, c1->Value);printf(”%s\n“, c2->Value);

// Zugriff auf das Attribut Value des Objektes, // auf das c1 bzw. c2 verweist (Dereferenzieren von

Zeigern)

Beispiel

Page 84: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

84

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

MMA (2)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Ausnutzen der virtuellen Speicherverwaltung von Unix:

Page 85: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

85

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

MMA (3)

Einzel-prozess

Virtueller Speicher

Hauptspeicher Hintergrundspeicher

Seite Blockgleiche Größe

Zuordnung

Zuordnung

Zuordnungen mittels page table pro Prozess.

Virtuelle Adresse

HspSeite Nr.

Status Block

0 1K 2K 64K 1917 invalid 1206 65K none invalid none 66K 1036 valid 847

128K 17 ...

Gültigkeit der Adresszuordnung

tid als virtuelle Hauptspeicheradresse geführt. Aber: Die Gültigkeit virtueller Adressen ist an den Prozess gebunden, der die Adressen zugeteilt hat.

Pointer Swizzling: Anpassung an die page table des aktuellen Prozesses

Page 86: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

86

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

MMA (4)

Vorgehen: Transparenz des Speicherorts: Die Entscheidung über den

Speicherort, auf den zugegriffen wird (Hauptspeicher oder Hintergrundspeicher), und damit auch über die Umrechnung der Adressen, wird mit Hilfe des Betriebssystems gelöst.

Fragen: Wie werden angesichts der Prozesslokalität von virtuellen

Adressen Objektreferenzen auf der Platte repräsentiert? Wie funktioniert beim Dereferenzieren eines Zeigers auf

ein persistentes Objekt das Einlagern des Objektes von der DB in den virtuellen Speicher?

Page 87: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

87

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

MMA: Objektreferenzen

66K

Platte

B15 B20 B30

70K

70KB40

66KB20

70KB40

70KB30

Referenz auf einen Datensatz in ObjectStore: Virtuelle Speicheradresse = (virtuelle Seitenadresse plus Offset innerhalb der Seite, durch Punkt • markiert).

Die virtuellen Speicheradressen in den Datensätzen auf einer Seite stammen jeweils von dem Prozess, der auf die Seite zuletzt zugriff.

Auf jeder Seite wird eine Tabelle verwaltet, die Seitenadressen des virtuellen Speichers auf Blöcke des persistenten Speichers abbildet.

Prozesslokalität:Gleiche virtuelle Adressen,verschiedene Abbildungen

Page 88: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

88

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

66K

MMA: Dereferenzieren

Platte

B15 B20 B30

70K

70K B40

66KB20

70KB40

70KB30

12K 66K 70K 80K 81KVirtueller

Speicher

Status

Block

geschützt

Kommentar

Zugriff auf B15; Einlagerung an Adr.12K

Dereferen-zierung der Adr. 66K

Einlagerung von B20 an Adr. 66K

Speicherverletzung wegen Zugriffsschutz

Austausch der Adr. 70K (bereits reserviert) gegen eine freie Adr.(80K)

80K

80K

inval

leer leer leer

inval

leer

nein

inval inval inval

leer

nein nein nein nein

inval

leer

nein nein.

B15

val inval inval

B15

ja ja

reserviert für B20

reserviert für B40

B20 B40

B15

val val inval inval

B15 B20 B40 B30

nein nein ja ja

reserviert für B30

reserviert für B40

B20

Page 89: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

89

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

66K

MMA: Dereferenzieren

Platte

B15 B20 B30

70K

70K B40

66KB20

70KB40

70KB30

12K 66K 70K 80K 81KVirtueller

Speicher

Status

Block

geschützt

Kommentar

Zugriff auf B15; Einlagerung an Adr.12K

Dereferen-zierung der Adr. 66K

inval

leer

nein nein.

B15

val inval inval

B15

ja ja

reserviert für B20

reserviert für B40

B20 B40

Die reservierten Seiten werden für sämtliche Zugriffe gesperrt (UNIX-Kommando mprotect).

Bei Dereferenzieren der Referenz auf den Datensatz in Block B20: Referenz zeigt auf Seite 66K Seite gegen Zugriff gesperrt Unix meldet Zugriffsschutzverletzung.

Page 90: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

90

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

66K

MMA: Dereferenzieren

Platte

B15 B20 B30

70K

70K B40

66KB20

70KB40

70KB30

12K 66K 70K 80K 81KVirtueller

Speicher

Status

Block

geschützt

Kommentar

Dereferen-zierung der Adr. 66K

Einlagerung von B20 an Adr. 66K

Austausch der Adr. 70K (bereits reserviert) gegen eine freie Adr.(80K)

80K

80K

B15

val val inval inval

B15 B20 B40 B30

nein nein ja ja

reserviert für B30

reserviert für B40

B20

Zugriffsschutzverletzung Error Handler mit Aktionen: Block B20 wird in Seite 66K kopiert. Zugriffsschutz wird aufgehoben (bzw. durch

Schreibschutz ersetzt, um Änderungen zu erkennen). Alle in der Tabelle am Blockanfang vorkommenden

Seiten werden reserviert (siehe B30).

Adresse 70K bereits für B40 reserviert.

Page 91: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

91

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kosten: Der von einer Transaktion benötigte Bereich der Datenbasis

muss in den virtuellen Speicher passen, der der Transaktion zur Verfügung steht.

Bei jedem Einlagern eines Blocks wird für jede Referenz, die von dem Block auf einen anderen Block verweist, eine Seite des virtuellen Speichers reserviert (selbst wenn diese Referenzen nie verfolgt werden).

Falls beim Einlagern eines Blocks nicht die „richtigen“ Speicherseiten reserviert werden können, müssen alle betroffenen Referenzen in dem Block angepasst werden.

Navigierende Anwendungen, bei denen viele Referenzen zwischen Datensätzen auf unterschiedlichen Blöcken verfolgt werden, erfordern das ständige Einlagern von Blöcken und Reservieren von Seiten.

Bewertung der MMA

Page 92: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

92

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.4Kapitel 5.4

Verwaltung großer DatensätzeVerwaltung großer Datensätze

Page 93: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

93

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Großer Datensatz: Datensatz, dessen Länge größer als die Seitengröße ist.

Datenmodell

Physische DB (satzorientiert)

Zugriffs-struktur

Gr. Physischer Datensatz

enthält▶0..1

enthält▶0..1..

Physische DB (seitenorientiert)

Segment Seite

repräsentiertdurch

1..

1enthält▶

0..1enthält▶

0..1

0..

Satzkopf ge-speichert in

0..1

Datensatz gespeichert ▼ in

1..1

Page 94: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

94

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Platzierung: I.Allg. wird der Satzkopf (ein kurzes

Anfangsstück des Satzes) frei platziert; der Satzkopf wird dazu wie ein kleiner Datensatz behandelt (d.h. gemeinsam mit ihm können weitere Datensätze auf der Seite gespeichert sein).

Der Rest des großen Datensatzes wird auf Seiten gespeichert, die exklusiv dem Datensatz zugeordnet sind.

Aufgaben

Erweitertes Aufgabenspektrum:

Lesen, Modifizieren, Erzeugen, Löschen von Sätzen, Einfügen von Bytes in den Satz, Entfernen von Bytes aus dem Satz.

Gr. Physischer Datensatz

Seite

0..

Satzkopf ge-speichert in

0..1

Datensatz gespeichert ▼ in

1..1

Page 95: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

95

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.4.1Kapitel 5.4.1

Verwaltung mit Standard-PufferverwaltungVerwaltung mit Standard-Pufferverwaltung

Page 96: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

96

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Verkettung

P123

P123 2

TID des großen DatensatzesSatzkopf

Platzierung auf beliebigen, nicht zwingend benachbarten Seiten. Direkte Adressierung, on-demand paging, update-in-place /

shadowing.

Page 97: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

97

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Wegweiser

P123

P123 2

TID des großen Datensatzes

Satzkopf

Platzierung auf beliebigen, nicht zwingend benachbarten Seiten. Direkte Adressierung, on-demand paging, update-in-place /

shadowing.

Verw.info.

Directory

Page 98: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

98

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Bewertung

Verkettung: Preis für direkte Verwendung der Segmentverwaltung:

Geschlossenes Ein-/Auslagern aufwendig.

Sonst zusammenhängende Bearbeitung im Puffer nicht möglich.

Kein wahlfreier Zugriff auf Teile des Datensatzes.

Wegweiser: Preis für direkte Verwendung der Segmentverwaltung:

Geschlossenes Ein-/Auslagern aufwendig.

Sonst zusammenhängende Bearbeitung im Puffer nicht möglich.

Wahlfreier Zugriff auf Teile des Datensatzes erkauft durch Zusatzstruktur, die selbst auf Seiten geführt werden muss und zusätzliche E/A verursacht.

Page 99: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

99

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Kapitel 5.4.2Kapitel 5.4.2

Verwaltung mit spezieller PufferverwaltungVerwaltung mit spezieller Pufferverwaltung

Page 100: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

100

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Starburst: Prototypisches Datenbanksystem von IBM.

Es unterstützt Datensätze mit einer Größe bis zu 1.5 GB. Ein Datensatz besteht aus einem Kopf (Header) und einer

variablen Anzahl von Partitionen.

Eine Partition besteht aus einer Menge von Seiten, die benachbarten Blöcken auf dem nichtflüchtigen Speicher zugeordnet werden.

Die Größen der Partitionen (bis auf die erste und letzte) werden nach einer Rechenvorschrift aus der Größe der ersten Partition berechnet. Die letzte Partition füllt i.Allg. die Rechenvorschrift nicht aus.

Beispiel Starburst (1)

Page 101: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

101

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

5 4096 9932

Beispiel Starburst (2)

Größe der ersten Partition (1 Seite)

Anzahl der Partitionen

1 Seite

Größe der letzten Partition

2 Seiten 4 Seiten 8 Seiten

Beispiel mit Rechenvorschrift „Verdopplung der Größe der vorangehenden Partition“:

Page 102: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

102

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Vorteile: Effiziente Unterstützung von Lesezugriffen (sequenziell und

wahlfrei). Erfordert geschlossenes Einlagern von Partitionen in den Puffer.

Hinzufügen von Bytes am Ende und Modifizieren beliebiger Bereiche innerhalb des Datensatzes sind effizient möglich.

Nachteile: Einfügen weiterer Bytes in der Mitte kann zu umfangreichen

Kopiervorgängen von Partitionen oder Teilen von Partitionen führen.

Gefahr von Verschnitt in der letzten Partition.

Das Starburst-Konzept wurde entwickelt im Hinblick auf die Speicherung von relativ stabilen Daten, die hauptsächlich sequenziell gelesen werden (bspw. Audio- und Videodaten).

Bewertung Starburst

Page 103: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

103

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Beispiel Exodus (1) Exodus: Forschungsprototyp einer erweiterbaren

Speichermaschine für objektorientierte Datenbanksysteme. Ein großer Datensatz besteht aus einem Kopf (Header) und

einer variablen Anzahl von Datenseiten. Aus dem Datensatz kann über eine Byteposition ein

beliebiger Ausschnitt ausgewählt werden. Nutzdaten können an beliebiger Stelle eingefügt oder entfernt werden.

Erreichen dieser Flexibilität durch Baumstruktur: Nutzdaten ausschließlich in den Blattseiten des Baums. Die Blattseiten müssen nicht vollständig gefüllt sein: „Luft zum

Atmen“. Nichtblatt-Seiten als Wegweiser, um zu einer Byteposition die

Blattseite effizient zu finden. Wegweiser mit Relativpositionen, um Änderungen lokal zu

begrenzen.

Page 104: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

104

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Beispiel Exodus (2)

P123

421 886

120 282 421 192 365 465

Bytes1-120

Bytes121-282

Bytes283-421

Bytes422-613

Bytes614-786

Bytes787-886

P123 2

TID des großen Datensatzes

interne Seite

Blatt-Seiten

Satzkopf und Wurzel des Baums

Nummer höchstes Byte des Satzes auf der Seite

Bytenummerierung beginnt mit jeder Stufe bei 0

Ausschnitt aus dem Datensatz

Seitennummer

Page 105: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

105

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Pufferung von Teilsätzen Angefordert: Teilsatz = Ausschnitt mit Anfangsadresse, Länge

Die zugehörigen Blatt-Seiten werden in den Systempuffer eingelagert.

Es ist dafür zu sorgen, dass ihre belegten Teile einen zusammenhängenden Speicherbereich einnehmen.

Erfordert eigene Pufferverwaltung. Bei Standard-Pufferverwaltung: Falls nicht genügend

zusammenhängende Pufferrahmen ohne pin-Vermerk zur Verfügung stehen, müssen fixierte Seiten im Systempuffer verschoben werden (erfordert indirekten Zugriff über Handles).

Verwaltung eines Teilsatzes mittels Scan-Descriptor. Vorwiegend eine Liste der eingelagerten Seiten-Bereiche. Bei Einlagern eines weiteren Bereiches des selben Datensatzes

werden alle Scan-Descriptoren zu diesem Datensatz durchsucht. Befinden sich bereits Seiten im Puffer, die Daten des neu angeforderten

Bereichs enthalten, dann werden diese Seiten innerhalb des Puffers kopiert (kein erneutes Lesen von der Platte).

Page 106: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

106

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Pufferung von Teilsätzen

Wurzeldatensatz

C1 C2 C3

P123 2

Blattseiten

Pufferrahmen

Scan-Descriptor

P123 2 N C1:P1 C2:P2 C3:P3

P1 P2 P3

N

TID Satzbereiche

Page 107: Universität Karlsruhe (TH) © 2009 Univ,Karlsruhe, IPD, Prof. LockemannDBI 5 Kapitel 5 Zugriffsschicht: Satzverwaltung.

107

© 2009 Univ,Karlsruhe, IPD, Prof. Lockemann DBI 5

Bewertung Exodus

Erzeugen eines großen Datensatzes (Anfügen von Bytes am Ende) langsamer als bei Starburst, da die Baumstruktur aufgebaut werden muss.

Sequenzielles Lesen ebenfalls etwas langsamer als bei Starburst, da die Blattseiten nicht auf physisch benachbarten Blöcken gespeichert werden.

Einfügen von Bytes bzw. Löschen von Bytes mitten im Datensatz wesentlich schneller als bei Starburst, da diese Operationen direkt durch die Baumstruktur unterstützt werden.