Sie sind auf Seite 1von 50

Anwendersoftware (AS)

Datenbanken und
Informationssysteme
Kapitel 3: Externspeicherverwaltung
Bernhard Mitschang
Universitt Stuttgart
Wintersemester 2013/2014
Teile zu diesem Folienskript beruhen auf einer hnlichen Vorlesung, gehalten von Prof. Dr. T. Hrder am
Fachbereich Informatik der Universitt Kaiserslautern und Prof. Dr. N. Ritter am Fachbereich Informatik der
Universitt Hamburg. Fr dieses Skriptum verbleiben alle Rechte (insbesondere fr Nachdruck) bei den
Autoren.

Externspeicherverwaltung

bersicht

Externspeicherverwaltung

Speicherzuordnungsstrukturen (Dateien und Blcke)

Dateikonzept
Verfahren der Blockzuordnung

Manahmen zur Fehlertoleranz

Allgemeine Aufgaben
Speicherhierarchie

Lesen und Schreiben von Blcken


Nutzung von Speicherredundanz

Seitenzuordnungsstrukturen (Segmente und Seiten)

Segmentkonzept
verzgerte Einbringstrategien
Bewertung der Seitenzuordnungsverfahren

Externspeicherverwaltung
Mengenorientierte DB-Schnittstelle
Sprachen wie
SQL, QBW, etc.

Adressierungseinheiten:

Relationen, Sichten,
Tupel
externe Schemabeschreibung,
Integrittsregeln
externe Stze, Sets,
Schlssel, Zugriffspfade

Logische
Datenstrukturen

externe Stze, Sets,


Schlssel, Zugriffspfade
Zugriffspfaddaten, interne
Schemabeschreibung
interne Stze, B*-Bume,
Hash-Tabellen, usw.

Logische
Zugriffspfadstrukturen

Speicherungsstrukturen

Adressierungseinheiten:

interne Stze, B*-Bume,


Hash-Tabellen, usw.
Freispeicher-Info., Adretab.,
Seitenindices, usw.
Seiten, Segmente

Adressierungseinheiten:

Seiten, Segmente

Hilfsstrukturen:

Seitentabellen, Blocktabellen, etc.

Adressierungseinheiten:

Blcke, Dateien

Adressierungseinheiten:

Blcke, Dateien

Hilfsstrukturen:

Freispeicher-Info
Extent-Tabellen,
Dateikataloge, etc.

Adressierungseinheiten:

Spuren, Zylinder, Kanle, etc.

Hilfsstrukturen:
Adressierungseinheiten:

Satzorientierte DB-Schnittstelle
FIND NEXT Satzname,
STORE Satzname,
etc.

Adressierungseinheiten:
Hilfsstrukturen:
Adressierungseinheiten:

Interne Satzschnittstelle

Speichere Satz,
Fge Eintrag in B*-Baum ein,
etc.

Adressierungseinheiten:
Hilfsstrukturen:

DB-Pufferschnittstelle
Stelle Seite j bereit,
Gib Seite j frei

Seitenzuordnungsstrukturen

Dateischnittstelle
Lies Block k,
Schreibe Block k

Speicherzuordnungsstrukturen

Gerteschnittstelle
3

Externspeicherverwaltung

Allgemeine Aufgaben der


Externspeicherverwaltung

Verwaltung externer Speichermedien


Verbergen von Gerteeigenschaften
Abbildung von physischen Blcken auf externen Speicher
Kontrolle des Datentransports von/zum Hauptspeicher
ggf. Realisierung einer mehrstufigen Speicherhierarchie
Fehlertoleranzmanahmen (stabiler Speicher, Spiegelplatten etc.)

Externspeicherverwaltung

Speicherhierarchie
Register

Preis,
Geschwindigkeit

Prozessor
Cache

aktuelle Daten

Cache

Hauptspeicher
Externer Speicher (Online)
Archivspeicher (Nearline)
Archivspeicher (Offline)
Speicherkapazitt

Externspeicherverwaltung

Modell einer zweistufigen Speicherhierarchie

Vereinfachte E/A-Architektur:

Modell fr Externspeicheranbindung
vor Bearbeitung sind die Seiten in den DB-Puffer zu kopieren
genderte Seiten mssen zurck geschrieben werden

Betriebssystem

P1

Datei-Puffer

P4

P1

Steuereinheit

P2

P3

P5

DB-Puffer
im HSP

P2
P3

P5

Magnetplattenspeicher
< 10 ms

P4

DBMS

Zugriffslcke
> 105

Hauptspeicher
< 100 ns
6

Externspeicherverwaltung

bersicht

Externspeicherverwaltung

Speicherzuordnungsstrukturen (Dateien und Blcke)

Dateikonzept
Verfahren der Blockzuordnung

Manahmen zur Fehlertoleranz

Allgemeine Aufgaben
Speicherhierarchie

Lesen und Schreiben von Blcken


Nutzung von Speicherredundanz

Seitenzuordnungsstrukturen (Segmente und Seiten)

Segmentkonzept
verzgerte Einbringstrategien
Bewertung der Seitenzuordnungsverfahren

Externspeicherverwaltung

Abbildung von Dateien und Blcken


Beispiele fr
Aufrufe von
Operation an der
oberen Schnittstelle
Abbildungsfunktion:

Durchfhrung der E/A:

PAM UPAMDAT, RD, FECB=ESTBLOCK, HP=1

UPAMDAT FCB FCBTYPE=PAM, LINK=EIN, IOAREA1=EINBER

Blocknummer cyl-#, track-#, rec-#

Armpositionierung:
Spurauswahl:
Satzbertragung:

EXCP CCW
EXCP CCW
EXCP CCW

I/O-Prozessor

Eigenschaften der oberen Schnittstelle


Menge durchnummerierter Blcke innerhalb von Dateien
Lese- und Schreibzugriff ber die Blocknummer
Blockzugriff kann auf Lesefehler fhren, Blcke knnen alte oder ungltige
Daten enthalten
8

Externspeicherverwaltung

Dateikonzept

Dateien reprsentieren externe Speichermedien fr Anwendungsprogramme in einer


gerteunabhngigen Weise. Das Dateisystem verdeckt die Eigenschaften physischer
Speichergerte und bietet als abstrakte Sicht Dateien, die als lange Byte-Vektoren
behandelt werden knnen.

Grnde fr ein Dateikonzept

DB Speicher
=
Menge von Dateien

Dateisystem

selektive Aktivierung von Dateien: on/offline-Problem


dynamische Definition
temporre Dateien
Einsatz unterschiedlich schneller Speichermedien
krzere Adresslngen

ist als lokales Dateisystem oder als eigenstndiger Datei-Server realisiert


verwaltet typischerweise einen hierarchischen Namensraum
bietet Operationen fr Dateiverwaltung und Dateizugriff

Operationen:

CREATE/DELETE zum Anlegen und Lschen einer Datei


OPEN/CLOSE zur Vorbereitung und Beendigung der Verarbeitung einer Datei
READ/WRITE zum Lesen und Schreiben eines Blocks einer Datei
9

Externspeicherverwaltung

Realisierung eines Dateisystems

Dateikatalog fr alle Dateien


feste Position
effiziente Implementierung und
Verarbeitung

Datei

Objektbezogene Beschreibung durch


Dateideskriptor
Dateiname, OwnerID, . . .
Zugriffskontrollliste
Zeitinformation ber Erzeugung, letzter
Zugriff, letzte Archivierung,
Dateigre, Blockzuordnung, ...

Dateiname

Freispeicherverwaltung fr
Externspeicher
formatierte Bitlisten
hierarchische Struktur

Attribute

D1

objektbezogene
Beschreibung im Katalog

n Magnetplatten

gertebezogene
Freispeicher-Info

Einheit des physischen Zugriffs: Block


Blcke variabler Lnge?
feste Blocklnge pro Datei
chained I/O wichtig fr hohe E/ALeistung

10

Externspeicherverwaltung

Dateiorganisationsformen

Datei in Einfgereihenfolge (entry-sequenced):


Einfgen an Dateiende, Satzadresse ist RBA
(relative Byteadresse), sequentieller Zugriff
oder direkter Zugriff ber RBA
relative Datei: Organisationsform ist
ARRAY OF RECORDS
wertbasierte Dateien erlauben Zugriff ber
Satzschlssel
Datei in Schlsselreihenfolge (key-sequenced):
Speicherung der Stze in Schlsselreihenfolge,
direkter Zugriff ber Schlssel und
sortiert-sequentieller Zugriff.
Bezeichnungen in existierenden Systemen
(logische Zugriffsmethoden):
SAM, ISAM, VSAM, . . .
Hash-Datei: direkter Zugriff ber
Schlsseltransformation

Datei

unstrukturiert
(byte stream)

strukturiert

direkt

Einfgereihenfolge

wertbasiert

relativ Schlsselreihenfolge

Hash

11

Externspeicherverwaltung

Blockzuordnungsverfahren
Katalog

Statische Datei-Zuordnung
direkte Adressierung
minimale Zugriffskosten
keine Flexibilitt

Katalog

Dynamische Extent-Zuordnung
Adressierung ber eine
kleine Tabelle
geringe Zugriffskosten
mige Flexibilitt

Katalog

Dynamische Block-Zuordnung
Adressierung ber eine
groe Tabelle
hohe Zugriffskosten
maximale Flexibilitt
12

Externspeicherverwaltung

Blockzuordnung durch Extent-Tabellen


Extent-Tabelle
fr Datei Dk

Name

Typ

M P1
M P2
M P2
M P1

A
B
B
A

Bereichsanfang
ZYL, SPUR
Z201, S5
Z350, S1
Z105, S1
Z499, S7

Magnetplatte MP1, Typ A


Bereich 1

B1

B2

B3

Anzahl
Blcke
i
j-i
l-j
mk - l

Directory

Magnetplatte MP2, Typ B


B4

B5

Bj+1

Bj+2

Bj+3

Bereich 3
Bi

Bl
Bi+1

Bereich 4

Bl+1

Bereich 2
Bm

Bj

Magnetplatte MP1, Typ A

Dargestellte Aktionen der Zugriffsprimitive:


- Hole Block B5

Bi+2

Magnetplatte MP2, Typ B

DB-Puffer (Hauptspeicher)

- Hole Block Bj+3


Falls ein Block zum Schreiben in den DB-Puffer geholt wird, ist er nach

In typischen Implementierungen dieses


Verfahrens kann ein Primrbereich (primary
extent) angelegt werden, der um bis zu 15
Sekundrbereiche (secondary extents, mit
jeweils gleicher Gre) erweitert werden kann.

Freigabe wieder zurckzuschreiben


13

Externspeicherverwaltung

bersicht

Externspeicherverwaltung

Speicherzuordnungsstrukturen (Dateien und Blcke)

Dateikonzept
Verfahren der Blockzuordnung

Manahmen zur Fehlertoleranz

Allgemeine Aufgaben
Speicherhierarchie

Lesen und Schreiben von Blcken


Nutzung von Speicherredundanz

Seitenzuordnungsstrukturen (Segmente und Seiten)

Segmentkonzept
verzgerte Einbringstrategien
Bewertung der Seitenzuordnungsverfahren

14

Externspeicherverwaltung

Manahmen zur Fehlertoleranz


MTTF von verschiedenen Plattenfehlern
Type of Error

MTTF

Recovery

Consequences

Soft data read error

1 hour

Retry or ECC

None

Recoverable seek error

6 hours

Retry

None

Maskable hard data read error

3 days

ECC

Remap to new sector and rewrite good data

Unrecoverable data read error

1 year

None

Remap to new sector, old data lost

Device needs repair

5 years

Repair

Data unavailable

Miscorrected data read error

10 years

None

Read wrong data

Ziel: Fehler mglichst frhzeitig erkennen und behandeln


Manahmen von Festplatten-Hardware und Controller
Manahmen des DBS

Quelle: [GR93]

15

Externspeicherverwaltung

Lesen und Schreiben von Blcken


Einbringeinheit: 1 Block
Fehlertoleranzmanahme fr einen Block gegen transiente Fehler,
Schreibfehler, Systemausfall, Block- (Spur-, Gerte-) Zerstrung

Einfaches Lesen
Lesen kann durch transiente Fehler gestrt werden.
Zusatzmanahme: erfolgloses Lesen wird n-mal wiederholt (sicheres Lesen)

Einfaches Schreiben
Schreiben des Blocks als atomare Aktion (ganz oder berhaupt nicht) kann
nicht garantiert werden.
Schreiben kann durch transiente und dauerhafte Fehler zu falschen Resultaten
fhren, z.B.
- Controller liefert normalen Return-Code trotz fehlerhafter Schreiboperation

Crash kann teilweise geschriebenen Block zurcklassen.

16

Externspeicherverwaltung

Sicheres Schreiben (read-after-write)

Nach einem einfachen Schreiben wird der Block wieder gelesen und mit dem
Originalblock verglichen.
Operationsfolge wird wiederholt, bis Block erfolgreich geschrieben ist.
Schreiben ist gesichert gegen transiente Fehler.
Crash kann teilweise geschriebenen Block zurcklassen.

17

Externspeicherverwaltung

Stabiles Schreiben (duplexed write)

Jeder Block hat eine Versionsnummer,


Bi
die bei jedem stabilen Schreiben erhht wird.
Block
Jeder Block wird in festgelegter Reihenfolge in
zwei verschiedene Slots Sj und Sk geschrieben

Sj
Sk
Prinzip: Stabiler Speicher
Slots
Annahme: Ein Block wird nicht in einen falschen
Slot geschrieben, sonst ist read-after-write erforderlich.
Lesen von Bi erfolgt erst von Slot Sj.
"weit entfernt"
Falls es erfolgreich ist, wird angenommen,
dass es sich um die jngste gltige Version
einfaches Schreiben:
dann (synchron)
von Bi handelt.
Atomaritt fr einen Block
verschiedene Platten,
Falls das Lesen von Slot Sj scheitert,
Kontroller, E/A-Pfade
wird Slot Sk gelesen.
Da ein Systemausfall nur einen Schreibvorgang
unterbrechen kann, ist bei Wiederanlauf stets eine Version des Blockes verfgbar.
Schreiben ist somit gesichert gegen dauerhafte Fehler. Dass beide Versionen nicht
lesbar sind, gilt als unerwartet.
18

Externspeicherverwaltung

Weitere Prinzipien der Speicherredundanz

Schreiben mit Logging (logged write)


Nach dem Lesen wird ein Block Bi mit
seinem alten Inhalt auf einen
sicheren Platz L geschrieben.
Nach Aktualisierung wird Bi mit einem
einfachen Schreiben auf seinen
alten Platz zurck geschrieben
(ggf. read-after-write).
Falls das Schreiben erfolgreich war,
wird die Kopie von Bi auf L nicht
mehr gebraucht.

Prinzip: Spiegelplatten
Bi

Sj

Sk

auf Platten- oder Dateibasis


synchron oder asynchron
gleichzeitig oder zeitlich versetzt
(Schattenprozess)
keine Atomaritt automatisch durch
Algorithmus

19

Externspeicherverwaltung

Erkennung fehlerhafter Blcke


Ziel: Unvollstndig geschriebene Blcke erkennen
Manahmen der Platten-Hardware
mit Hilfe von Parity-Bits lsst sich herausfinden, ob ein Sektor vollstndig
geschrieben wurde oder nicht
ausreichend, wenn ein Block ganz in einem Sektor (hier gleich Slot)
gespeichert werden kann

Zustzliche Manahmen der DBS


insbesondere fr den Fall, dass ein Block mehrere Sektoren umfasst
Konsistenzbits:
- jeweils ein Bit im ersten und letzten Byte eines Blocks (DB2)
- beiden Konsistenzbits werden jeweils identische Werte zugewiesen

20

Externspeicherverwaltung

Erkennung fehlerhafter Blcke

Sequentielles Schreiben

2K

2K

2K

2K

B1

B1

B1

B1

Konsistenzbits: 1

Schreiben auer der Reihe

B1
1

B1

B1

B1

Konsistenzbits: 1

fr sequentielles Schreiben ok!

Lsung: Schreiben von Prf-Bits in jeden Sektor


System

Ausgangssituation

Benutzer

System

010
Prf-Bits:

Quelle: [Moh95]

21

Externspeicherverwaltung

Erkennung fehlerhafter Blcke

Multi-Sektoren-Blcke
Fehlerhafter Block wird nur erkannt, wenn beim Schreiben der Sektoren
die durch den Block vorgegebene Reihenfolge eingehalten wird
SCSI-Laufwerke nehmen selbstndig zur Leistungsoptimierung eine
Umordnung der Schreibvorgnge auf den Sektoren vor
Prfsumme ber den gesamten Block reduziert die Wahrscheinlichkeit
erheblich, ein partielles Schreiben zu bersehen, kann dies jedoch nicht
ausschlieen (enorm teuer)
Entsprechend den n Sektoren wird ein Block (logisch) unterteilt; aus jedem
dieser Teile wird ein Bit genommen und als Prfbit betrachtet. Diese n Bits
werden mit identischen Werten belegt und bei jedem Schreiben invertiert.
- Wie lsst sich erreichen, dass diese n Bits nicht die Benutzerdaten im
Block verflschen?

22

Externspeicherverwaltung

bersicht

Externspeicherverwaltung

Speicherzuordnungsstrukturen (Dateien und Blcke)

Dateikonzept
Verfahren der Blockzuordnung

Manahmen zur Fehlertoleranz

Allgemeine Aufgaben
Speicherhierarchie

Lesen und Schreiben von Blcken


Nutzung von Speicherredundanz

Seitenzuordnungsstrukturen (Segmente und Seiten)

Segmentkonzept
verzgerte Einbringstrategien
Bewertung der Seitenzuordnungsverfahren

23

Externspeicherverwaltung
Mengenorientierte DB-Schnittstelle
Sprachen wie
SQL, QBW, etc.

Adressierungseinheiten:

Relationen, Sichten,
Tupel
externe Schemabeschreibung,
Integrittsregeln
externe Stze, Sets,
Schlssel, Zugriffspfade

Logische
Datenstrukturen

externe Stze, Sets,


Schlssel, Zugriffspfade
Zugriffspfaddaten, interne
Schemabeschreibung
interne Stze, B*-Bume,
Hash-Tabellen, usw.

Logische
Zugriffspfadstrukturen

Speicherungsstrukturen

Adressierungseinheiten:

interne Stze, B*-Bume,


Hash-Tabellen, usw.
Freispeicher-Info., Adretab.,
Seitenindices, usw.
Seiten, Segmente

Adressierungseinheiten:

Seiten, Segmente

Hilfsstrukturen:

Seitentabellen, Blocktabellen, etc.

Adressierungseinheiten:

Blcke, Dateien

Adressierungseinheiten:

Blcke, Dateien

Hilfsstrukturen:

Freispeicher-Info
Extent-Tabellen,
Dateikataloge, etc.

Adressierungseinheiten:

Spuren, Zylinder, Kanle, etc.

Hilfsstrukturen:
Adressierungseinheiten:

Satzorientierte DB-Schnittstelle
FIND NEXT Satzname,
STORE Satzname,
etc.

Adressierungseinheiten:
Hilfsstrukturen:
Adressierungseinheiten:

Interne Satzschnittstelle

Speichere Satz,
Fge Eintrag in B*-Baum ein,
etc.

Adressierungseinheiten:
Hilfsstrukturen:

DB-Pufferschnittstelle
Stelle Seite j bereit,
Gib Seite j frei

Seitenzuordnungsstrukturen

Dateischnittstelle
Lies Block k,
Schreibe Block k

Speicherzuordnungsstrukturen

Gerteschnittstelle
24

Externspeicherverwaltung

Abbildung von Segmenten und Seiten

Vorteile eines Segmentkonzeptes

Ermglichung verzgerter Einbringstrategien


selektive Einfhrung von zustzlichen Attributen, z.B. zur Erhhung der Fehlertoleranz
Segmente als Einheiten des Sperrens, der Recovery und der Zugriffskontrolle
Bei geeigneter Abbildung auf Dateien bleiben Vorteile des Dateikonzeptes erhalten

Zusammen mit der DB-Pufferverwaltung

Aufteilung des logischen DB-Adressraumes in Segmente mit sichtbaren Seitengrenzen


Bereitstellen und Freigeben von Seiten im DB-Puffer
Vorbereitung von E/A-Anforderungen an die Dateiverwaltung
Optimierung von Ersetzungsstrategien
Untersttzung von Segmenten verschiedenen Typs
Neue Aufgaben: Verwaltung von Seiten variabler Lnge und von langen Objekten

25

Externspeicherverwaltung

Seitenzuordnungsstrukturen
Abbildung von Segmenten und Seiten

Beispiel:
Operationen an der
oberen Schnittstelle

Abbildungsfunktion:

Aufgaben:

FIX Pi

UNFIX Pi

logische Seitennummer

Seitennummer
Hauptspeicher

Ersetzen eines alten


Blocks
Lesen des Blocks mit
Seite Pi

}
}

Blocknummer
Externspeicher

PAM UPAMDAT, WR, ...


PAM UPAMDAT, RD, ...

Eigenschaften der oberen Schnittstelle


Linearer Adressraum, aufgeteilt in Seiten fester Lnge
Innerhalb eines Segmentes knnen die Moduln der nchst hheren
Schicht frei adressieren wie in einem virtuellen Adressraum
Ein DB-Segment ist nicht-flchtig (wenn nicht explizit anders vereinbart)
26

Externspeicherverwaltung

Segmenttypen in einem DBMS

Klassifikation
von
Segmenttypen

EigenSegment- Segment- Segment- Segment- Segment- Segmentschaften


Typen
Typ 1
Typ 2
Typ 3
Typ 4
Typ 5
Benutzung
privat
privat
privat
privat
ffentlich
Lebensdauer

permanent

ffnen und
Schlieen
Wiederherstellung
im Fehlerfall

automatisch durch
System

permanent

automatisch durch
System

permanent

permanent

temporr
in Transaktion
explizit durch Benutzer

explizit
kein Wiederherstellungsdurch
mechanismus
Benutzer

Beispiele fr die Verwendung der Segmenttypen

Typ
Typ
Typ
Typ
Typ

1:
2:
3:
4:
5:

Katalog, Schema-Information, Log, alle gemeinsam benutzbaren DB-Teile


Teile der DB, die fr bestimmte Benutzer bzw. Benutzergruppen reserviert sind
Lokale Kopien von Teilen der DB (Sichten) fr einzelne Benutzer (Snapshots)
Hilfsdateien fr Benutzerprogramme
Temporrer Speicher z. B. fr Sortierprogramme

27

Externspeicherverwaltung

Segmenttypen in einem DBMS

In verschiedenen DBS werden bestimmte Segmenttypen auch als Tablespaces


bezeichnet. Sie dienen der Speicherung von Tabellen (Relationen) sowie ggf.
Indexstrukturen.
In manchen DBS werden Indexstrukturen in eigenen Segmenttypen (sog.
Indexspaces) verwaltet.
Die Abbildung von Tablespaces auf mehrere Dateien ist dabei mglich.

28

Externspeicherverwaltung

Warum sichtbare Seiten und Segmente?

Explizite Abbildung auf Blcke


und Dateien erhht Fehlertoleranz

DB-Puffer mit Satzschnittstelle?

Seiten

Pi

Blcke

Bj

Slot

A
A

A
1

lineare Hauptspeicherabbildung:
Probleme unsichtbarer Seitengrenzen
Puffer-Adr. + Lnge
spanned record facility
an Benutzer
benachbarte Seiten mssen im DB-Puffer
benachbart angeordnet sein
erhebliche Abbildungs- und Ersetzungsprobleme

Sichtbare Seitengrenzen an der DB-Puffer-Schnittstelle


Puffer-Adr. von P
i
an Benutzer
(Ebene der Speicherungsstrukturen)

A
2

B
3

Sektor

Pi

Pi+1
R

Pi
R

29

Externspeicherverwaltung

Verfahren zur Seitenzuordnung

Direkte Seitenzuordnung
(update-in-place)

Indirekte Seitenzuordnung
1. Lesen vor nderung
2. Schreiben nach nderung
3. Lesen nach nderung

Seite i

Schreiben nach nderung

Zustand nach verzgertem Einbringen


(mengenorientiert)
Lesen vor nderung

3
2

Seite i
1

Block j

Seite i

Block k

Seitentabelle (alt)

Block i

Block j
Block k

Seitentabelle (neu)

Seitentabelle (alt)

Seitentabelle (alt)
30

Externspeicherverwaltung

Prinzip der indirekten Seitenzuordnung

Abbildung von Seitennummer Blocknummer mit Hilfe der Seitentabelle


S1

S2

Segmente
P1,1 P1,2 ...

P2,1 P2,2 ...

V1
Seitentabellen fr
Segmente

3 1 i

logisch zusammenhngender
Speicherbereich, z.B. durch
Extent-Tabellen beschrieben

Bittabelle zur
Freispeicherverwaltung

V2
0 0 0 0

2 0 j

0 0 0 0

D
1 2 3

1 1 1

Menge von
Blcken in
einer Datei D

1 0 1 0 0 0 0 MAP
L Eintrge

31

Externspeicherverwaltung

Einbringen von Seiten


Konsistenz der DB nach Crash

direktes Einbringen:
Pi Bj; Pi Bj

DB-Puffer

Schreiben
DB

{A, B, C, D}

{A, B, C, D}

Schreiben = Einbringen
DB nach Crash: chaos-konsistent!

verzgertes Einbringen:
Pi Bj; Pi Bk; j k

DB-Puffer

Schreiben
Externspeicher

SPi

SPi+1

Einbringen
DB
{A, B, C, D}
{A, B, C, D}
{A, B, C, D}
Schreiben Einbringen
DB nach Crash: aktionskonsistent (operationskonsistent)!
geeignete Wahl der Sicherungspunkte SPi : Operationsgrenzen beachten!
32

Externspeicherverwaltung

Schattenspeicher-Verfahren: Prinzip
Seitentabellen:

V11

V21

Schattenversion

2 3 j

0 0 0 0

V10
laufende Version

1 0 i

0 0 0 0

V20

4' 3 k'

0 0 0 0

1 5' i

0 0 0 0
'=Schattenbit

Datei
D
1 2 3 4 5

i j k

1 1 1 0 0

1 1 0 0 0

Bittabellen:
Schattenversion

MAP1

Master
1
1 Status
0 der
0 Segmente
...
0

laufende Version

MAP0

1 1 1 1 1

Mapswitch

1 1 1 0 0

Quelle: [Lor77]

33

Externspeicherverwaltung

Schattenspeicher-Verfahren:
Speicherverwaltung

Prinzip der indirekten Seitenzuordnung


Zerlegung von Seitentabelle Vk in einzelne Blcke

Auch die Seitentabelle muss im linearen Adressraum untergebracht und


auf Blcke abgebildet werden.
Seitentabellen Vk
fr Segment Sk
Speicherung von Vk
in Blcken fester
Lnge

34

Externspeicherverwaltung

Ablauf eines nderungsintervalls


Ausgangszustand

Segmente ffnen
Seitentabelle kopieren
Segmentstatus ndern
MASTER schreiben
Arbeitskopie von MAPx erstellen
Seiten ndern
Finde neuen Block fr Seite
aktuelle Seitentabelle anpassen
Seite als gendert markieren
nderungen der Seite nur im neuen Block

Segmente schlieen
Neue Bittabelle MAPy erstellen
Genderte Seitentabelle schreiben
Genderte Blcke schreiben
Segmentstatus ndern
MAPSWITCH umschalten
MASTER schreiben

Segmente zurcksetzen
aktuelle Seitentabelle zurcksetzen
Segmentstatus ndern

35

Externspeicherverwaltung

Segment ffnen
Ausgangszustand:
Status (i) enthlt den Erffnungszustand fr Segment i
(hier: alle Segmente geschlossen).
MAPSWITCH zeigt an, welche der beiden (gleichberechtigten) Tabellen
Map0 und Map1 das aktuelle Verzeichnis belegter Blcke enthlt.

Wenn Segment k fr nderungen geffnet werden soll, sind folgende


Schritte auszufhren:

kopiere Vk0 nach Vk1


STATUS(k) := 1
Schreibe MASTER in einer ununterbrechbaren Operation aus
Lege im Hauptspeicher eine Arbeitskopie CMAP von der aktuellen Bittabelle
MAPx an.

36

Externspeicherverwaltung

Ausgangszustand
Seitentabellen:

V11

V21

V10

V20

Schattenversion

laufende Version

2 0 0

j 0 0 0

0 4 0

0 l 0 0

Datei
D
1 2 3 4 5

i j k

Bittabellen:
Schattenversion

MAP1

Master
0
0 Status
0 der
0 Segmente
...
0

laufende Version

MAP0

0 1 0 1 0

Mapswitch

0 1 0 0 1

37

Externspeicherverwaltung

Segment ffnen
Seitentabellen:

V11

V21

Schattenversion

2 0 0

j 0 0 0

V10
laufende Version

V20

2 0 0

j 0 0 0

0 4 0

0 l 0 0

Datei
D
1 2 3 4 5

i j k

Bittabellen:
Schattenversion

MAP1

Master
1
0 Status
0 der
0 Segmente
...
0

laufende Version

MAP0

0 1 0 1 0

0 1 0 0 1

CMAP

0 1 0 1 0

0 1 0 0 1

Mapswitch

38

Externspeicherverwaltung

Seite ndern
Wenn eine Seite Pi erstmalig seit Erffnen des Segments gendert
werden soll, sind folgende Aktionen auszufhren:

Lies Seite Pi aus Block j = Vk0(i)


Finde einen freien Block j in CMAP
Vk0(i) = j
Markiere Seite Pi in Vk0(i) als gendert
Bei weiteren nderungen von Pi wird Block j verwendet.

Anmerkungen:
Auf einer Blockmenge D knnen gleichzeitig mehrere Segmente fr den
nderungsbetrieb geffnet sein.
Map0, Map1 und CMAP beziehen sich auf die Blockmenge D. CMAP enthlt
fr alle Segmente die mit Schatten- bzw. aktuellen Seiten belegten Blcke.
Einer Seite wird nur bei der erstmaligen nderung nach Erffnen des
Segmentes ein neuer Block zugewiesen.

39

Externspeicherverwaltung

Seite ndern
Seitentabellen:

V11

V21

Schattenversion

2 0 0

j 0 0 0

V10
laufende Version

V20

3' 1' 0

j 0 0 0

0 4 0

0 l 0 0

Datei
D
1 2 3 4 5

i j k

Bittabellen:
Schattenversion

MAP1

Master
1
0 Status
0 der
0 Segmente
...
0

laufende Version

MAP0

0 1 0 1 0

0 1 0 0 1

CMAP

1 1 1 1 0

0 1 0 0 1

Mapswitch

40

Externspeicherverwaltung

nderungsintervall beenden
Beenden eines nderungsintervalls fr Segment k:
Erzeuge die Bitliste mit der aktuellen Speicherbelegung in der bisher nicht
genutzten Bittabelle MAPy (neue Blcke belegt, alte freigegeben)
Schreibe MAPy
Schreibe Vk0
Schreibe alle genderten Blcke
Markiere Segment k als geschlossen (STATUS(k) := 0)
MAPy wird aktuelle Bittabelle (MAPSWITCH = y)
Schreibe MASTER in einer ununterbrechbaren Operation aus

41

Externspeicherverwaltung

nderungsintervall beenden
Seitentabellen:

V11

V21

V10

V20

Schattenversion

laufende Version

3 1 0

j 0 0 0

0 4 0

0 l 0 0

Datei
D
1 2 3 4 5

i j k

Bittabellen:
laufende Version

MAP1

1 0 1 1 0

0 1 0 0 1

Master
0
0 Status
0 der
0 Segmente
...
1

Schattenversion

Mapswitch

MAP0

42

Externspeicherverwaltung

Segmente zurcksetzen
Zum Zurcksetzen geffneter Segmente muss lediglich Vk1 in Vk0 kopiert
und STATUS(k) auf 0 gesetzt werden.

43

Externspeicherverwaltung

Segmente zurcksetzen
Seitentabellen:

V11

V21

V10

V20

Schattenversion

laufende Version

2 0 0

j 0 0 0

0 4 0

0 l 0 0

Datei
D
1 2 3 4 5

i j k

Bittabellen:
Schattenversion

MAP1

Master
0
0 Status
0 der
0 Segmente
...
0

laufende Version

MAP0

0 1 0 1 0

Mapswitch

0 1 0 0 1

44

Externspeicherverwaltung

Erhaltung der physischen Clusterbildung

Wegen der dynamischen Neuzuordnung von Blcken knnen beim


Schattenspeicherverfahren physische Nachbarschaften von logisch zusammengehrigen
Seiten bei nderungen i.A. nicht aufrechterhalten werden.

Bsp.: Die Seiten A, B, C, D mgen in allen Transaktionen in eben dieser Reihenfolge berhrt
werden:
A B C D L J F

RMG E S

Die nderung von A A und C C fhrt zu:


A B C D L J F A' R M G E S C'

Eine Verbesserung kann durch Einteilung der Datei in physische Cluster der Gre p und der
Segmente in logische Cluster der Gre l sowie deren gegenseitige Zuordnung erreicht werden.
Beispiel mit p=6, l=4:
A B C D A' C'

L J F R

MG E S

Bei Plattenspeichern wird ein physisches Cluster i.A. ein Zylinder sein

45

Externspeicherverwaltung

Bewertung des Schattenspeicher-Verfahrens

Vorteile
Rcksetzen auf letzten konsistenten
Zustand sehr einfach
Flexiblere Schreibprotokolle fr LogDaten: Pufferung bis zum Umschalten
auf einen neuen Zustand mglich
Logisches Logging mglich, da stets
operationskonsistenter Zustand
verfgbar ist
Bei katastrophalen Fehlern ist die
Wahrscheinlichkeit hher, einen
brauchbaren Zustand der DB zu
rekonstruieren

Nachteile
Hilfsstrukturen (MAP und
Seitentabellen Vi) werden so gro,
dass Blockzerlegung notwendig wird
Die Seitentabellen Vi belegen etwa
0.1-0.2% der DB-Gre, was bei
groen DB's ( n GB) zu einem hohen
Anteil von Seitenfehlern im DB-Puffer
fr die Zugriffe auf Vi fhren kann
Periodische Sicherungspunkte
erzwingen Ausschreiben des
gesamten DB-Puffers
Physische Clusterbildung logisch
zusammengehriger Seiten wird
beeintrchtigt bzw. zerstrt
Zustzlicher Speicherplatz fr die
Doppelbelegung;
lange Batch- (nderungs-)Programme
werden dadurch schlecht untersttzt
46

Externspeicherverwaltung

Zusatzdatei-Verfahren

Idee:
Wenn eine Datei fr nderungsbetrieb geffnet wird, wird eine zustzliche, temporre Datei
angelegt, in welche whrend des nderungsintervalls alle modifizierten Blcke geschrieben
werden. Die eigentliche Datei wird dabei nicht verndert. Am Ende des nderungsintervalls
werden alle genderten Blcke aus der temporren in die permanente Datei kopiert. Das
Einbringen der nderungen erfolgt also verzgert.
Prinzip:

DB

DBVS

Read/
Write
Zusatzdatei
Bitliste

Read-only
DB

... 1

... 1

... 0

Das wesentliche Problem besteht darin, whrend des nderungsbetriebes fr eine gegebene SeitenNummer zu entscheiden, ob die aktuelle Version in der temporren oder permanenten Datei steht.
Nutzung einer Bitliste, die anzeigt, ob eine Seite mglicherweise gendert wurde
Hashabbildung erlaubt Begrenzung des Speicherplatzbedarfs
Quelle: [SL76]

47

Externspeicherverwaltung

Bloom-Filter

Wirkungsweise
Bitliste B der Lnge M im
Hauptspeicher
Signatur des Satzes in B bei seiner
nderung
Hash-Funktionen zur Satzabbildung
adressieren x Bits, die in B auf 1
gesetzt werden

1.
B

h(Si)

001000100

001000
M

2.

Aufsuchen von Satz Si

Erzeugen der charakteristischen x Bits


in temporrer Bitliste T
AND-Operation von T und B in Erg
wenn alle x Bits in Erg gesetzt
VIELLEICHT
sonst
NEIN

Write Si = 123

Write Sj = 456
B

3.

101000110

Read Sk = 345
T

h(Sj)
001010

h(Sk)

101000100

000000

Wenn (B AND T) = T
dann Antwort VIELLEICHT !
48

Externspeicherverwaltung

Zusammenfassung

Speicherzuordnungsstrukturen erfordern effizientes Dateikonzept

Empfohlene Datei-Eigenschaften:

von Segment/Seite auf Datei/Block und diese auf Slots der Magnetplatte erlaubt Einfhrung von
Abbildungsredundanz durch verzgertes Einbringen

Verzgerte Einbringstrategien

erlaubt die Realisierung zustzlicher Attribute fr die DB-Verarbeitung (Recovery, Clusterbildung fr Relationen usw.)

Zweistufige Abbildung

direkter und sequentieller Blockzugriff


Blockgre pro Datei definierbar
Blockzuordnung ber dynamische Extents
Dynamische Blockzuordnung (bei UNIX als mehrstufiger Baum) untauglich fr groe Dateien

Segmentkonzept

viele Dateien variierender, nicht statisch festgelegter Gre


Wachstum und Schrumpfung erforderlich
permanente und temporre Dateien

sind teurer als direkte, besitzen jedoch implizite Fehlertoleranz


sie belasten den Normalbetrieb zugunsten der Recovery

Direkte Einbringstrategie (update-in-place)

einfach zu implementieren
keine Zusatzkosten zur Ausfhrungszeit fr die Seitenzuordnung
Fehlertoleranz nur durch explizite Logging- u. Recovery-Funktionen

49

Externspeicherverwaltung

Ergnzende Literatur zu diesem Kapitel


[GR93]
[PWB07]

[Lor77]
[Moh95]

[SL76]

J. Gray, A. Reuter: Transaction Processing Concepts and Techniques,


Morgan Kaufmann, 1993.
Eduardo Pinheiro, Wolf-Dietrich Weber, Luiz Andre Barroso: Failure
Trends in a Large Disk Drive Population. In: Proceedings of the 5th
USENIX Conference on File and Storage Technologies (FAST07),
February 2007.
R. A. Lorie: Physical Integrity in a Large Segmented Database. In: ACM
TODS, Vol. 2, No. 1, 1977.
C. Mohan: Disk read-write optimizations and data integrity in
transaction systems using write-ahead logging. In: Proc. of the 11th
International Conference on Data Engineering, Taipei, Taiwan, March
6-10, 1995.
D. G. Severance, G. M. Lohman: Differential Files: Their Application to
the Maintenance of Large Databases. In: ACM TODS, Vol. 1, No. 3,
1976.

50