Verwaltung des Hintergrundspeichers

Werbung
Teil II
Verwaltung des Hintergrundspeichers
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
2
Struktur des Hintergrundspeichers
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
2
Struktur des Hintergrundspeichers
3
Seiten, Sätze und Adressierung
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
2
Struktur des Hintergrundspeichers
3
Seiten, Sätze und Adressierung
4
Alternative Speichermodelle
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
2
Struktur des Hintergrundspeichers
3
Seiten, Sätze und Adressierung
4
Alternative Speichermodelle
5
Kompression
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Überblick
1
Speicher- und Sicherungsmedien
2
Struktur des Hintergrundspeichers
3
Seiten, Sätze und Adressierung
4
Alternative Speichermodelle
5
Kompression
6
Speicherorganisation in konkreten DBMS
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–1
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Speichermedien
verschiedene Zwecke:
I
I
I
Daten zur Verarbeitung bereitstellen
Daten langfristig speichern (und trotzdem schnell verfügbar halten)
Daten sehr langfristig und preiswert archivieren unter Inkaufnahme
etwas längerer Zugriffszeiten
in diesem Abschnitt:
I
I
I
Speicherhierarchie
Magnetplatte
Kapazität, Kosten, Geschwindigkeit
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–2
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Speicherhierarchie
1
Extrem schneller Prozessor mit Registern
2
Sehr schneller Cache-Speicher
3
Schneller Hauptspeicher
4
Langsamer Sekundärspeicher mit wahlfreiem Zugriff
5
Sehr langsamer Nearline-Tertiärspeicher bei dem die
Speichermedien automatisch bereitgestellt werden
6
Extrem langsamer Offline-Tertiärspeicher, bei dem die
Speichermedien per Hand bereitgestellt werden
Tertiärspeicher: CD-R (Compact Disk Recordable), CD-RW
(Compact Disk ReWritable), DVD (Digital Versatile Disks),
Magnetbänder etwa DLT (Digital Linear Tape)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–3
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Cache-Hierarchie
Eigenschaften der Speicherhierarchie
I
I
I
I
Ebene x (etwa Ebene 3, der Hauptspeicher) hat wesentlich
schnellere Zugriffszeit als Ebene x + 1 (etwa Ebene 4, der
Sekundärspeicher)
aber gleichzeitig einen weitaus höheren Preis pro Speicherplatz
und deshalb eine weitaus geringere Kapazität
Lebensdauer der Daten erhöht sich mit der Höhe der Ebenen
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–4
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Cache-Hierarchie /2
Zugriffslücke (Unterschiede zwischen den
Zugriffsgeschwindigkeiten auf die Daten) vermindern ⇒
Cache-Speicher speichern auf Ebene x Daten von Ebene x + 1
zwischen:
I
I
I
Cache (Hauptspeicher-Cache) schnellere
Halbleiterspeicher-Technologie für die Bereitstellung von Daten an
Prozessor (Ebene 2 in der Speicherhierarchie)
Plattenspeicher-Cache im Hauptspeicher: Puffer
Cache beim Zugriff auf Daten im WWW über HTTP: Teil des
Plattenspeichers, der Teile der im Internet bereitgestellten Daten
zwischenspeichert
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–5
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Zugriffslücke
Magnetplatten pro Jahr 70% mehr Speicherdichte
Magnetplatten pro Jahr 7% schneller
Prozessorleistung pro Jahr um 70% angestiegen
Zugriffslücke zwischen Hauptspeicher und Magnetplattenspeicher
beträgt 105
Größen:
I
I
ns für Nanosekunden (also 10−9 Sekunden, ms für Millisekunden
(10−3 Sekunden)
KB (KiloByte = 103 Bytes), MB (MegaByte = 106 Bytes), GB
(GigaByte = 109 Bytes) und TB (TeraByte = 1012 Bytes)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–6
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Zugriffslücke in Zahlen
Speicherart
typische Zugriffszeit
time
CPU cycles
6 ns
12
typische Kapazität
Cache256 KB (L2) bis 8
Speicher
MB (L3)
Hauptspeicher 60 ns
120
1 GB bis 512 GB
5
— Zugriffslücke 10 —
Magnetplatten- 8-12 ms
16*106
160 GB bis 3 TB
speicher
Platten-Farm
12 ms
24*106
im TB- bis PBoder -Array
Bereich
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–7
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Lokalität des Zugriffs
Caching-Prinzip funktioniert nicht, wenn immer neue Daten
benötigt werden
in den meisten Anwendungsfällen: Lokalität des Zugriffs
D.h., Großteil der Zugriffe (in den meisten Fällen über 90%) auf
Daten aus dem jeweiligen Cache
Deshalb: Pufferverwaltung des Datenbanksystems wichtiges
Konzept
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–8
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Typische Merkmale von Sekundärspeicher
Merkmal
1983
1994
2003
2009
2017 SSD (NVMe)
c Sattler / Saake
Kapazität
30 MB
4.3 GB
73.4 GB
2 TB
2 TB
Latenz
48.3 ms
12.7 ms
5.7 ms
5.1 ms
??
??
Datenbank-Implementierungstechniken
Bandbreite
0.6 MB/s
9 MB/s
86 MB/s
95 MB/s
seq.read 3.500 MB/s
seq.write 2.100 MB/s
Letzte Änderung: 13. April 2017
2–9
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Flash Disk
NAND
Puffer
SATASchnittstelle
Controller
NAND
ECC
NAND
c Sattler / Saake
Cache
basierend auf EEPROMs in NAND- oder NOR-Technologie
Arrays (=Flash-Block mit ca. 128 KB) von Speicherzellen,
entweder ein Bit (SLC) oder 2-4 Bit (MLC)
MLC sind langsamer und haben verkürzte Lebensdauer
initial ist jedes Bit auf 1 gesetzt, durch Reprogrammieren auf 0
Löschen zurück auf 1 nur für ganzen Block
Konsequenz: langsames Löschen (Lesen = 25 µs, Löschen = 2
ms), begrenzte Lebensdauer (ca. 100.000 Lösch-Schreib-Zyklen)
n*1000 Blöcke
à 64 ... 128 Seiten
à 2/4 KB Daten +
128 Byte ECC
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–10
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Flash Disk in DBMS
klassische, auf sequenzielles Lesen ausgerichtete, Strategien von
DBMS nutzen die Stärken von Flash-Speicher nicht aus
kleinere Blockgrößen lassen sich effizient adressieren, sollten
aber ein Vielfaches der Flash-Seiten sein
wahlfreie Lesezugriffe sind effizienter als auf Magnetplatten,
sollten aber auf Größen von ca. 4 bis 16 MB begrenzt werden
konkurrierende IO-Zugriffe sind bis zu einem gewissen Maße
ohne negativen Performanzeinfluss durchführbar
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–11
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Vergleich Flash Disk vs. Magnetplatte
1000
Bandbreite in MB/s
100
10
1
HDD random
SSD random
HDD seq
SSD seq
0.1
0.01
1
2
4
8
16
32
64
128 256 512 1024 2048 4096 8192
Blockgröße in KB
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–12
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Speicherkapazität und Kosten
Größe
1 KB
0.5 KB
30 KB
1 MB
5 MB
20 MB
500 MB
1 GB
4.7 GB
10 GB
100 GB
200 GB
c Sattler / Saake
Information oder Medium
= 1.000
Buchseite als Text
eingescannte, komprimierte Buchseite
= 1.000.000
Die Bibel als Text
eingescanntes Buch
CD-ROM; Oxford English Dictionary
= 1.000.000.000
Digital Versatile Disk (DVD)
komprimierter Spielfilm
ein Stockwerk einer Bibliothek
Kapazität eines Videobandes
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–13
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Speicherkapazität und Kosten /2
Größe
1 TB
1 TB
20 TB
20 TB
1 PB
1 PB
1 PB
2.5 PB
6.5 PB
15 PB
200 PB
>55 EB
c Sattler / Saake
Information oder Medium
= 1.000.000.000.000
Bibliothek mit 1M Bänden
größtes Speicher-Array
Library of Congress Bände als Text gespeichert
= 1.000.000.000.000.000
Eingescannte Bände einer Nationalen Bibliothek
223,101 DVD’s
Data Warehouse (Wal-Mart)
größtes Data Warehouse (ebay)
weltweite Plattenproduktion in 1996
weltweite Magnetbandproduktion in 1996
weltweite Plattenproduktion in 2009
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–14
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Speicherarrays: RAID
Kopplung billiger Standardplatten unter einem speziellen
Controller zu einem einzigen logischen Laufwerk
Verteilung der Daten auf die verschiedenen physischen
Festplatten übernimmt Controller
zwei gegensätzliche Ziele:
I
I
Erhöhung der Fehlertoleranz (Ausfallsicherheit, Zuverlässigkeit)
durch Redundanz
Effizienzsteigerung durch Parallelität des Zugriffs
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–15
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Erhöhung der Fehlertoleranz
Nutzung zusätzlicher Platten zur Speicherung von Duplikaten
(Spiegeln) der eigentlichen Daten ⇒ bei Fehler: Umschalten auf
Spiegelplatte
bestimmte RAID-Levels (1, 0+1) erlauben eine solche Spiegelung
Alternative: Kontrollinformationen wie Paritätsbits nicht im selben
Sektor wie die Originaldaten, sondern auf einer anderen Platte
speichern
RAID-Levels 2 bis 6 stellen durch Paritätsbits oder Error
Correcting Codes (ECC) fehlerhafte Daten wieder her
ein Paritätsbit kann einen Plattenfehler entdecken und bei
Kenntnis der fehlerhaften Platte korrigieren
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–16
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Erhöhung der Effizienz
Datenbank auf mehrere Platten verteilen, die parallel angesteuert
werden können ⇒ Zugriffszeit auf große Datenmengen verringert
sich fast linear mit der Anzahl der verfügbaren Platten
Verteilung: bit-, byte- oder blockweise
höhere RAID-Levels (ab Level 3) verbinden Fehlerkorrektur und
block- oder bitweises Verteilen von Daten
Unterschiede:
I
I
schnellerer Zugriff auf bestimmte Daten
höherer Durchsatz für viele parallel anstehende Transaktionen
durch eine Lastbalancierung des Gesamtsystems
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–17
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
RAID-Levels
RAID0+1
RAID0
RAID1
RAID0
RAID0
A
B
A
B
A
B
C
D
C
D
C
D
RAID2
RAID1
A
B
A
B
A[1]
B[1]
A[2]
A ECC[1]
B[2]
B ECC[1]
B ECC[2]
C ECC[2]
D ECC[2]
...
C
C
C[1]
C[2]
C ECC[1]
D
D
D[1]
D[2]
D ECC[1]
c Sattler / Saake
Datenbank-Implementierungstechniken
A ECC[2]
Letzte Änderung: 13. April 2017
2–18
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
RAID-Levels /2
RAID3
RAID4
A ECC
A
B
B ECC
C
D
A ECC
A[1]
A[2]
B[1]
B[2]
C[1]
C[2]
C ECC
C ECC
D[1]
D[2]
D ECC
D ECC
...
RAID5
A
B
C
D
E
F
E ECC
C ECC
F ECC
D ECC
c Sattler / Saake
B ECC
RAID6
A
B
D
E
C
...
F
...
A ECC
A ECC[1]
A ECC[2]
B ECC
B ECC[1]
B ECC[2]
...
Datenbank-Implementierungstechniken
...
Letzte Änderung: 13. April 2017
...
2–19
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
RAID-Levels /3
Level
0
1
0+1
2
3
4
5
6
Striping
blockweise
√
Striping
bitweise
√
√
c Sattler / Saake
Parität
Parität
dedizierte
Platte
Parität
verteilt
Erkennen
mehrerer
Fehler
√
√
√
√
√
√
Kopie
√
√
√
√
√
Datenbank-Implementierungstechniken
√
√
√
√
Letzte Änderung: 13. April 2017
2–20
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Sicherungsmedien: Tertiärspeicher
weniger oft benutzte Teile der Datenbank, die eventuell sehr
großen Umfang haben (Text, Multimedia) „billiger“ speichern als
auf Magnetplatten
aktuell benutzte Datenbestände zusätzlich sichern (archivieren)
Tertiärspeicher: Medium austauschbar
I
I
offline: Medien manuell wechseln (optische Platten, Bänder)
nearline: Medien automatisch wechseln (Jukeboxes, Bandroboter)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–21
Verwaltung des Hintergrundspeichers
Speicher- und Sicherungsmedien
Langzeitarchivierung
Lebensdauer, Teilaspekte:
I
I
I
I
physische Haltbarkeit des Mediums garantiert die Unversehrtheit
der Daten: 10 Jahre für Magnetbänder, 30 Jahre für optische
Platten, Papier???
Vorhandensein von Geräten und Treibern garantiert die Lesbarkeit
von Daten: Geräte für Lochkarten oder 8-Zoll-Disketten?
zur Verfügung stehende Metadaten garantieren die
Interpretierbarkeit von Daten
Vorhandensein von Programmen, die auf den Daten arbeiten
können, garantieren die Wiederverwendbarkeit von Daten
Beispiel:
I
NCAR’s AMSTAR - 30PB, z.B. Klimadaten, 180 TB pro Monat
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–22
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Verwaltung des Hintergrundspeichers
Abstraktion von Speicherungs- oder Sicherungsmediums
Modell: Folge von Blöcken
Mengenorientierte
MOS Schnittstelle
Datensystem
Satzorientierte
SOS Schnittstelle
Zugriffssystem
Interne
ISS Satzschnittstelle
Speichersystem
SystempufferSPS schnittstelle
Pufferverwaltung
DS
Dateischnittstelle
Betriebssystem
GS Geräteschnittstelle
Externspeicher
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–23
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Betriebssystemdateien
Alternativen:
I
I
I
jede Relation oder jeder Zugriffspfad in genau einer
Betriebssystem-Datei
ein oder mehrere BS-Dateien, DBS verwaltet Relationen und
Zugriffspfade selbst innerhalb dieser Dateien
DBS steuert selbst Magnetplatte an und arbeitet mit den Blöcken in
ihrer Ursprungsform (raw device)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–24
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Betriebssystemdateien /2
Warum nicht immer BS-Dateiverwaltung?
I
I
I
I
Betriebssystemunabhängigkeit
In 32-Bit-Betriebssystemen: Dateigröße 4 GB maximal
BS-Dateien auf maximal einem Medium
betriebssystemseitige Pufferverwaltung von Blöcken des
Sekundärspeichers im Hauptspeicher genügt nicht den
Anforderungen des Datenbanksystems
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–25
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Blöcke und Seiten
Zuordnung der physischen Blöcke zu Seiten
meist mit festen Faktoren: 1, 2, 4 oder 8 Blöcke einer Spur auf
eine Seite
hier: „ein Block — eine Seite“
höhere Schichten des DBS adressieren über Seitennummer
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–26
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Dienste des Dateisystems
Allokation oder Deallokation von Speicherplatz
Holen oder Speichern von Seiteninhalten
Allokation möglichst so, dass logisch aufeinanderfolgende
Datenbereiche (etwa einer Relation) auch möglichst in
aufeinanderfolgenden Blöcken der Platte gespeichert werden
Nach vielen Update-Operationen: Reorganisationsmethoden
Freispeicherverwaltung: doppelt verkettete Liste von Seiten
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–27
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Abbildung der Datenstrukturen
Abbildung der konzeptuellen Ebene auf interne Datenstrukturen
Unterstützung durch Metadaten (im Data Dictionary, etwa das
interne Schema)
Konz. Ebene
Relationen →
Tupel →
Attributwerte →
c Sattler / Saake
Interne Ebene
Log. Dateien →
Datensätze →
Felder →
Dateisystem/Platte
Phys. Dateien
Seiten/Blöcke
Bytes
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–28
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Varianten der Abbildungen
Beispiel 1: jede Relation in je einer logischen Datei, diese
insgesamt in einer einzigen physischen Datei
Beispiel 2: Cluster-Speicherung – mehrere Relationen in einer
logischen Datei
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–29
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Übliche Form der Speicherung
eine Relation
mehrere logische
Dateien
IndexDatei
Heuer
Korn
PANr
Nachname
Ort
4711
Heuer
DBR
5588
Saake
MD
6834
Korn
MD
IndexDatei
Hauptdatei
4711
Heuer
DBR
5588
Saake
MD
6834
Korn
MD
DBR
MD
Saake
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–30
Verwaltung des Hintergrundspeichers
Struktur des Hintergrundspeichers
Übliche Form der Speicherung /2
mehrere logische
Dateien
Heuer
Korn
4711
Heuer
DBR
5588
Saake
MD
6834
Korn
MD
DBR
MD
Saake
IndexDatei
IndexDatei
Hauptdatei
eine physische Datei
4711
Heuer
5588
Saake
Heuer
6834
DBR
MD
MD
Korn
DBR
MD
Saake
c Sattler / Saake
Korn
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–31
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Seite
Block:
I
I
kleinste adressierbare Einheit auf Externspeicher
Zuordnung zu Seiten im Hauptspeicher
Aufbau von Seiten
I
Header
F
F
F
F
I
I
Informationen über Vorgänger- und Nachfolger-Seite
eventuell auch Nummer der Seite selbst
Informationen über Typ der Sätze
freier Platz
Datensätze
unbelegte Bytes
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–32
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Seitenorganisation
Organisation der Seiten: doppelt verkettete Liste
freie Seiten in Freispeicherverwaltung
Vor Nach
Seite
115
81
Weitere Header-Informationen
Seite
136
136
Tupel
115
175
...
Offset 142
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–33
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Seite: Adressierung der Datensätze
adressierbare Einheiten
I
I
I
I
I
I
Zylinder
Spuren
Sektoren
Blöcke oder Seiten
Datensätze in Blöcken oder Seiten
Datenfelder in Datensätzen
Beispiel: Adresse eines Satzes durch Seitennummer und Offset
(relative Adresse in Bytes vom Seitenanfang)
(115, 142)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–34
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Seitenzugriff als Flaschenhals
Maß für die Geschwindigkeit von Datenbankoperationen: Anzahl
der Seitenzugriffe auf dem Sekundärspeicher (wegen
Zugriffslücke)
Faustregel: Geschwindigkeit des Zugriffs ⇐ Qualität des
Zugriffspfades ⇐ Anzahl der benötigten Seitenzugriffe
Hauptspeicheroperationen nicht beliebig vernachlässigbar
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–35
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Einpassen von Datensätzen auf Blöcke
Datensätze (eventuell variabler Länge) in die aus einer fest
vorgegebenen Anzahl von Bytes bestehenden Blöcke einpassen:
Blocken
Blocken abhängig von variabler oder fester Feldlänge der
Datenfelder
I
I
Datensätze mit variabler Satzlänge: höherer Verwaltungsaufwand
beim Lesen und Schreiben, Satzlänge immer wieder neu ermitteln
Datensätze mit fester Satzlänge: höherer Speicheraufwand
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–36
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Verschiedene Satztypen
Sätze
Position
fixiert
c Sattler / Saake
unfixiert
Länge
fest
Datenbank-Implementierungstechniken
variabel
Letzte Änderung: 13. April 2017
2–37
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Sätze fester Länge
SQL: Datentypen fester und variabler Länge
I
I
char(n) Zeichenkette der festen Länge n
varchar(n) Zeichenkette variabler Länge mit der Maximallänge n
Aufbau der Datensätze, falls alle Datenfelder feste Länge:
1
2
3
Verwaltungsblock mit Typ eines Satzes (wenn unterschiedliche
Satztypen auf einer Seite möglich) und Löschbit
Freiraum zur Justierung des Offset
Nutzdaten des Datensatzes
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–38
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Sätze variabler Länge
im Verwaltungsblock nötig: Satzlänge l, um die Länge des
Nutzdaten-Bereichs d zu kennen
l
Nutzdaten d
Länge bzw.
Verwaltungsblock
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–39
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Sätze variabler Länge /2
Strategie a)
l
n
Anzahl
Attribute
al1
A1
Attributlängen
aln
...
An
Attributwerte
Strategie b)
l
n
Anzahl
Attribute
c Sattler / Saake
ap1 ... apn apn+1
Attributzeiger
A1
...
An
Attributwerte
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–40
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Speicherung von Sätzen variabler Länge
Strategie a): Jedes Datenfeld variabler Länge Ai beginnt mit einem
Längenzeiger ali , der angibt, wie lang das folgende Datenfeld ist
Strategie b): Am Beginn des Satzes wird nach dem
Satz-Längenzeiger l und der Anzahl der Attribute ein Zeigerfeld
ap1 , . . . , apn für alle variabel langen Datenfelder eingerichtet
Vorteil Strategie b): leichtere Navigation innerhalb des Satzes
(auch für Sätze in Seiten ⇒ TID)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–41
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Anwendung variabel langer Datenfelder
„Wiederholgruppen“: Liste von Werten des gleichen Datentyps
I
I
I
Zeichenketten variabler Länge wie varchar(n) sind
Wiederholgruppe mit char als Basisdatentyp, mathematisch also
die Kleene’sche Hülle (char )∗
Mengen- oder listenwertige Attributwerte, die im Datensatz selbst
denormalisiert gespeichert werden sollen (Speicherung als
geschachtelte Relation oder Cluster-Speicherung), bei einer Liste
von integer -Werten wäre dies (integer )∗
Adressfeld für eine Indexdatei, die zu einem Attributwert auf
mehrere Datensätze zeigt (Sekundärindex), also (pointer )∗
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–42
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Blockungstechniken: Nichtspannsätze
jeder Datensatz in maximal einem Block
Seite p
A
B
C
D
Seite p+1
Standardfall (außer bei BLOBs oder CLOBs)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–43
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Blockungstechniken: Spannsätze
Spannsätze: Datensatz eventuell in mehreren Blöcken
Seite p
A
C
B
D
Seite p+1
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–44
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Adressierungstechniken
Adressierung
direkte Adressierung
indirekte
Adressierung
logische Adressierung
c Sattler / Saake
TID-Konzept
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–45
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Adressierung: TID-Konzept
Tupel-Identifier (TID) ist Datensatz-Adresse bestehend aus
Seitennummer und Offset
Offset verweist innerhalb der Seite bei einem Offset-Wert von i
auf den i-ten Eintrag in einer Liste von Tupelzeigern
(Satzverzeichnis), die am Anfang der Seite stehen
Jeder Tupel-Zeiger enthält Offsetwert
Verschiebung auf der Seite: sämtliche Verweise von außen
bleiben unverändert
Verschiebungen auf eine andere Seite: statt altem Datensatz
neuer TID-Zeiger
diese zweistufige Referenz aus Effizienzgründen nicht
wünschenswert: Reorganisation in regelmäßigen Abständen
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–46
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
TID-Konzept: einstufige Referenz
Satzverzeichnis
Seite p
TID
p
i
Tupelzeiger
i-tes Tupel
c Sattler / Saake
"Arabica Black"
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–47
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
TID-Konzept: zweistufige Referenz
Seite p
TID
p
i
TID <q, k>
Seite q
"Arabica Black Espresso"
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–48
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
Große unstrukturierte Sätze
RDBS-Datentypen für sehr große, unstrukturierte Informationen:
I
I
Binary Large Objects (BLOBs): Byte-Folgen wie Bilder, Audio- und
Videosequenzen
Character Large Objects (CLOBs): Folgen von ASCII-Zeichen
(unstrukturierter ASCII-Text)
lange Felder überschreiten i.a. Grenzen einer Seite, deshalb nur
Nicht-BLOB-Felder auf der Originalseite speichern
LOB
linearer Zugriff
wahlfreier Zugriff
verkettete Liste
Directory
c Sattler / Saake
B-Baum
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–49
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
BLOB-Speicherung: Lösung 1
Als Attributwert Zeiger: Zeiger zeigt auf Beginn einer Seiten- oder
Blockliste, die BLOB aufnimmt
Block
BLOB
Vorteil bei Einfügungen, Löschungen, Modifikationen
Nachteil bei wahlfreien Zugriff in das BLOB hinein
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–50
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
BLOB-Speicherung: Lösung 2
Als Attributwert BLOB-Directory:
I
I
I
BLOB-Größe
weitere Verwaltungsinformationen
mehrere Zeiger, die auf die einzelnen Seiten verweisen
Vorteil: schneller Zugriff auf Teilbereiche des BLOBs
Nachteil: festgelegte, begrenzte Maximalgröße des BLOBs
(Gigabyte-BLOB; 8-Byte-Adressierung, Seitengröße 1 KB ⇒ 8 MB
für ein BLOB-Directory)
effizienter: B-Baum zur Speicherung von BLOBs (s.u.)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–51
Verwaltung des Hintergrundspeichers
Seiten, Sätze und Adressierung
BLOB-Speicherung: Lösung 2
BLOB-Größe
Verwaltungsinfo.
Zeiger auf Block 1
Zeiger auf Block 2
Zeiger auf Block 3
...
Zeiger auf Block k
BLOB-Directory
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–52
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Alternative Speichermodelle
bisher klassisches N-äres Speichermodell (NSM), auch „row
store“
Vorteile:
I
I
gesamter Datensatz kann mit einem Seitenzugriff gelesen werden
leichte Änderbarkeit einzelner Attributwerte
Nachteil:
I
werden nur wenige Attributwerte benötigt, müssen trotzdem immer
alle Attributwerte gelesen werden
unnötiger IO-Aufwand
Alternativen: spaltenorientierte Speichermodelle
I
I
Zerlegung einer n-stelligen Relation in eine Menge von
Projektionen (z.B. binäre Relation)
Identifikation (und Rekonstruktion) über eine Schlüsselspalte oder
Position
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–53
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Spaltenorientierte Datenorganisation
SAdr
Preis
SAdr
ProdNr
SAdr
1
Jamaica Blue
8,55
0x00
1
0x00
Jamaica Blue
0x00
2
Arabica Black
9,95
0x01
2
0x01
Arabica Black
0x01
9,95
3
New York Espresso
10,95
0x02
3
0x02
New York Espresso
0x02
10,95
4
Guatemala Grande
11,95
0x03
4
0x03
Guatemala Grande
0x03
11,95
5
Breakfast Blend
9,90
0x04
5
0x04
Breakfast Blend
0x04
9,90
ProdNr
Bezeichnung
c Sattler / Saake
Preis
Datenbank-Implementierungstechniken
Bezeichnung
8,55
Letzte Änderung: 13. April 2017
2–54
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Alternative Speichermodelle: DSM
Decomposition Storage Model (DSM)
I
I
I
column stores
alle Werte einer Spalte (Attribut) werden hintereinander gespeichert
Adressierung über Position
Seitenaufbau
3
1044
2
1043
4
1045
1
1042
4
Arabica Black
2
c Sattler / Saake
3
Arabica Black
New York Espresso
1
Subrelation
ProdNr
Subrelation
Bezeichnung
Jamaica Blue
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–55
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Alternative Speichermodelle: DSM /2
Kompression einfach möglich (z.B. Run length encoding)
effizientere Scanoperationen (Feldoperationen
Cache-Nutzung)
bessere
jedoch: Updateoperationen sind komplexer, Lesen aller Spalten
aufwendiger
Einsatz bei leseoptimierten Datenbanken
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–56
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Ein Full-Table-Scan in NSM
Im NSM-Modell stehen alle Tupel einer Tabelle sequenziell
hintereinander auf einer Datenbankseite.
Tupel
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–57
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Ein Full-Table-Scan in NSM
Im NSM-Modell stehen alle Tupel einer Tabelle sequenziell
hintereinander auf einer Datenbankseite.
l_shipdate
c Sattler / Saake
Tupel
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–57
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Ein “Full-Table-Scan“ in DSM
Im DSM-Modell stehen alle Werte eines Attributs sequenziell
hintereinander auf einer Datenbankseite.
l_shipdate
Tupel
Alle Daten, die für den “l_shipdate Scan„ geladen werden sind auch
dafür relevant.
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–58
Verwaltung des Hintergrundspeichers
Alternative Speichermodelle
Alternative Speichermodelle: PAX
Partition Attributes Across (PAX) als Kompromiss
I
I
NSM: alle Spalten eines Satzes auf der gleichen Seite
DSM: vertikale Partitionierung, Miniseiten für jeweils eine Spalte
Miniseitenverzeichnis
1 1 1 1 0 0 0 0 0
Präsenzbits
Miniseite für
ProdNr
1045
Satzverzeichnis
1044
Arabica Black
1043
1042
New York Espresso
Arabica Black
Miniseite für
Bezeichnung
Jamaica Blue
1 1 1 1 0 0 0 0 0
Miniseite für
Preis
11,99
c Sattler / Saake
16,95
14,95
17,99
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–59
Verwaltung des Hintergrundspeichers
Kompression
Kompression von Daten
Motivation
I
I
I
weniger Speicherplatz für Daten
Kosteneinsparung für
Festplatten und auch Hauptspeicher
weniger Blöcke zum Speichern der gleichen (Roh-)Datenmenge
mehr Daten in den Datenbankpuffer
bessere Puffernutzung
weniger Seiten vom Sekundärspeicher lesen
Erhöhung des
Durchsatzes
Anforderungen
I
I
verlustlose Kompression
leichtgewichtige Dekompression
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–60
Verwaltung des Hintergrundspeichers
Kompression
Kompressionstechniken: Klassifikation
Codelänge:
I
I
feste Codelänge: alle Werte werden mit der gleichen Anzahl von
Bits kodieren
variable Codelänge: unterschiedliche Anzahl von Bits; z.B.
Codelänge korreliert mit der Häufigkeit des Wertes
(Entropiekodierung, z.B. Huffman)
Granularität bzw. Einheiten:
I
I
Attributwerte (Nullwerte, BLOBs), Tupel, Tupelmengen
(Partitionen), Spalten, Blöcke, Tabellen
Indexstrukturen
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–61
Verwaltung des Hintergrundspeichers
Kompression
Run Length Encoding
auch Lauflängenkodierung
lange Folgen gleicher Werte werden durch das einmalige
Speichern des Wertes zusammen mit der Häufigkeit der
Wiederholung ersetzt
insbesondere bei spaltenorganisierter Datenorganisation; durch
Sortierung weiter unterstützt
Ort
Ort
Berlin
3
Berlin
Berlin
3
Ilmenau
Berlin
1
Magdeburg
Ilmenau
2
Rostock
Ilmenau
Ilmenau
Magdeburg
Rostock
Rostock
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–62
Verwaltung des Hintergrundspeichers
Kompression
Delta Encoding
Speicherung der Wertdifferenz zum Vorgänger anstelle des
Wertes
insbesondere bei aufeinanderfolgenden Werten mit geringer
Differenz
Unterstützung durch Sortierung
c Sattler / Saake
KNr
PLZ
PLZ
...
39106
39106
...
39114
8
...
39126
12
...
98684
...
98693
Datenbank-Implementierungstechniken
59558
7
Letzte Änderung: 13. April 2017
2–63
Verwaltung des Hintergrundspeichers
Kompression
Bit-Vector Encoding
bei kleiner Anzahl verschiedener Werte: pro Spaltenwert ein
Bitstring (1, wenn Tupel an der Position den Wert hat, sonst 0)
Länge des Bitstrings entspricht Anzahl der Tupel
Verwendung u.a. bei Bitmap-Indexen
KNr
Kundenstatus
...
Premium
...
Silber
...
Standard
...
Standard
...
Standard
...
Premium
...
Silber
...
Standard
c Sattler / Saake
Premium:
1000.0100
Silber:
0100.0010
Standard:
0011.1001
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–64
Verwaltung des Hintergrundspeichers
Kompression
Dictionary Encoding
Verwendung eines Wörterbuchs für alle (String-)werte und Eintrag
eines Codes für den eigentlichen Spaltenwert
insbesondere bei häufigen und langen Werten
KNr
Bundesland
...
Thüringen
...
Thüringen
...
Sachsen
...
Sachsen-Anh.
...
Hessen
...
Bayern
...
Hessen
...
Sachsen-Anh.
c Sattler / Saake
Bundesland
0100
0100
0010
0011
0001
0000
Dictionary
Bayern
0000
Hessen
0001
Sachsen
0010
Sachsen-Anh.
0011
Thüringen
0100
0001
0011
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–65
Verwaltung des Hintergrundspeichers
Kompression
Frame of Reference (FOR)
blockweise Kompression: pro (Disk-)Block einen Referenzwert
(z.B. kleinster Wert)
alle anderen Spaltenwerte v als Delta Encoding zum
Referenzwert mit dlog2 (maxv − minv +1)e Bits speichern
Problem: Ausreißer (bzgl. Abstand zum Referenzwert) können
Bitbedarf deutlich vergrößern
Lösung: Patched FOR (PFOR): Unkomprimierte Speicherung von
Ausreißern
Beispiel: 1025, 1027, 1028, 1031, 1026, 1030, 1027, 2051
I
I
FOR: 1025 − 2, 3, 6, 1, 5, 2, 1026 (mit jeweils 11 Bit) = 77 Bits
PFOR: 1025 − 2, 3, 6, 1, 5, 2 (mit 3 Bits), 2051 = 18 + 32 Bits
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–66
Verwaltung des Hintergrundspeichers
Kompression
Frequency Partitioning
entwickelt im Rahmen des BLINK-Projektes von IBM
Kompression kompletter Tupel, Kodierung der Spaltenwerte durch
Dictionary Encoding mit Entropiekodierung
Vermeidung des Overheads beim Lesen des n-ten Spaltenwertes
durch Codes unterschiedlicher Länge (2 ns Overhead pro
Spaltenwert)
Idee: Gruppierung von Tupeln auf Basis der Spaltenwerte derart,
dass Gruppen von Tupeln (Partitionen) Spaltencodes gleicher
Länge haben
I
I
I
Partitionen nach Häufigkeit des Vorkommens der Spaltenwerte
bilden
Partitionen mit Entropiekodierung komprimieren
pro Partition werden feste Codelängen verwendet
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–67
Verwaltung des Hintergrundspeichers
Kompression
Frequency Partitioning: Prinzip
Spalte2
Spaltenpartitionen
Häufigkeit
Spalte1
Werte
Häufigkeit
Werte
Spaltenpartitionen
c Sattler / Saake
Datenbank-Implementierungstechniken
Zellen
Letzte Änderung: 13. April 2017
2–68
Verwaltung des Hintergrundspeichers
Kompression
Frequency Partitioning: Partitionierung
Sortierung der Spaltenwerte nach Häufigkeiten + Zerlegung in
Intervalle
Intervallgröße: Zweierpotenz (da Bitkodierung) mit Ausnahme des
letzten Intervalls
optimale Partitionierung durch dynamische Programmierung:
Zielfunktion = durchschnittliche Größe der kodierten Spalte
vollständige Suche über alle Kombinationen von
Spaltenpartitionen nicht möglich, daher Greedy: welche Spalte
zieht den größten Gewinn aus einer zusätzlichen Partition?
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–69
Verwaltung des Hintergrundspeichers
Speicherorganisation in konkreten DBMS
Oracle: Datenbankstruktur
Datenbank
Tablespace I
Daten-File 1
Platte A
Daten-File 2
Daten-File 3
Platte B
Block
Tablespace J
Daten-File n
Table R
Daten-Seg. r
Index R1
Index-Seg. r1
Index R2
Index-Seg. r2
Table S
Daten-Seg. s
Index S1
Index-Seg. s1
Datens. 032
Basis
Extent
Extent 1
DB-Bl. 1
DB-Bl. 2
Datens. 517
Datens. 389
Datens. 782
DB-Bl. 3
Extent 2
Tablespace K
Physische
Datenbankstruktur
c Sattler / Saake
Logische
Datenbankstruktur
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–70
Verwaltung des Hintergrundspeichers
Speicherorganisation in konkreten DBMS
Oracle: Blöcke
Free-Liste
PCTFREE
Kopf
Kopf
Kopf
Kopf
Kopf
Kopf
Kopf
Kopf
Freibereich
Freibereich
Freibereich
Freibereich
Freibereich
PCTUSED
Freibereich
Freibereich
Freibereich
Datenbereich
Datenbereich
Datenbereich
Datenbereich
Datenbereich
für INSERT verfügbare
DB-Blöcke
c Sattler / Saake
gefüllte
DB-Blöcke
Datenbank-Implementierungstechniken
ungenutzte
DB-Blöcke
Letzte Änderung: 13. April 2017
2–71
Verwaltung des Hintergrundspeichers
Speicherorganisation in konkreten DBMS
Oracle: Aufbau von Datensätzen
Kopf
Kopf
Anzahl
der Spalten
ClusterSchlüssel
optional
Spalte1
Spalte 2
Spalte 3
Spaltenlänge
Daten
KettAdresse
optional
Kettadresse für Row Chaining: Verteilung und Verkettung zu
großer Datensätze (> 255 Spalten) über mehrere Blöcke
row id = (data object identifier, data file identifier, block identifier,
row identifier)
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–72
Verwaltung des Hintergrundspeichers
Speicherorganisation in konkreten DBMS
Zusammenfassung
Speicherhierarchie und Zugriffslücke
Speicher- und Sicherungsmedien
Hintergrundspeicher: Blockmodell
Einpassen von Sätzen in Seiten
Satzadressierung: TID-Konzept
Kompressionstechniken
Literatur: „Datenbanken: Implementierungstechniken“, Kapitel 3
c Sattler / Saake
Datenbank-Implementierungstechniken
Letzte Änderung: 13. April 2017
2–73
Herunterladen