Datenbanken - IFIS Uni Lübeck

Werbung
Datenbanken
Prof. Dr. Ralf Möller
Universität zu Lübeck
Institut für Informationssysteme
Karsten Martiny (Übungen)
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Anwendungen
Applications
Webformulare
Web
Forms
SQL-Schnittstelle
SQL
Interface
Operator-Evaluierer
Operator
Evaluator
Optimierer
Optimizer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Puffer-Verwalter
Buffer
Manager
WiederRecovery
herstellungsManager
Verwalter
this course
Parser
Parser
dieser Teil des Kurses
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Verwalter
für externen
Speicher
Disk Space
Manager
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
2
Danksagung
• Diese Vorlesung ist inspiriert von den Präsentationen
zu dem Kurs:
„Architecture and Implementation of Database Systems“
von Jens Teubner an der ETH Zürich
• Graphiken wurden mit Zustimmung des Autors aus
diesem Kurs übernommen
3
Speicher: Platten und Dateien
Architecture of a DBMS / Course Outline
Anwendungen
Applications
Webformulare
Web
Forms
SQL-Schnittstelle
SQL
Interface
Operator-Evaluierer
Operator
Evaluator
Optimierer
Optimizer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Puffer-Verwalter
Buffer
Manager
WiederRecovery
herstellungsManager
Verwalter
this course
Parser
Parser
dieser Teil des Kurses
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Verwalter
für externen
Speicher
Disk Space
Manager
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
4
Speicherhierarchie
•
•
•
•
•
•
CPU (mit Registern)
Cache-Speicher
Hauptspeicher
Flash-Speicher
Festplatte
Bandautomat
Kapazität
Latenz
Bytes
Kilo-/Mega-Bytes
Giga-Bytes
Giga/Tera-Bytes
Tera-Bytes
Peta-Bytes
< 1 ns
< 10 ns
20-100 ns
30-250 µs
3-10 ms
variierend
• Zur CPU: Schnell aber klein
• Zur Peripherie: Langsam aber groß
• Cache-Speicher zur Verringerung der Latenz
5
Magnetische Platten / Festplatten
Spur
track
track
block
Block
block
sector
Sektor
sector
rotation
Rotation
rotation
arm
Arm
arm
platter
Magnetscheibe
platter
heads
Köpfe
heads
Photo: http://www.metallurgy.utah.edu/
Schrittmotor
positioniert
Armearray
auf
steppermotor
motor
positions
AAstepper
positions
anan
array of of
bestimmte
Spur
disk
headsonon
the
requested
track.
disk
heads
the
requested
track.
• Platters
Magnetscheiben
rotieren
ständig
I
(disks)
steadily
rotate.
I
Platters (disks) steadily rotate.
• Disks
Organisation
in Blöcke
I
aremanaged
managed
blocks:
system
I
Disks are
in in
blocks:
thethe
system
• reads/writes
Transfer erfolgt
blockweise
(lesend
reads/writes
data
one
block
a time.
data
one
block
at
aattime.
und schreibend)
I
•
I
Fall2008
2008
Fall
Systems
Group
— Department
of Computer
Science
ETH Zürich
Systems
Group
— Department
of Computer
Science
— ETH—
Zürich
Photo: http://www.metallurgy.utah.edu/
Magnetic Disks
Magnetic Disks
10
10
6
Zugriffszeit
Konstruktion der Platten hat Einflüsse auf Zugriffszeit
(lesend und schreibend) auf einen Block
1. Bewegung der Arme auf die gewünschte Spur
(Suchzeit ts)
2. Wartezeit auf gewünschten Block bis er sich unter dem
Arm befindet (Rotationsverzögerung tr)
3. Lesezeit bzw. Schreibezeit (Transferzeit ttr)
Zugriffszeit: t = ts + tr + ttr
7
Hitachi Travelstar 7K200 (für Laptops)
•
•
•
•
•
4 Köpfe, 2 Magnetplatten, 512 Bytes/Sektor,
Kapazität: 200 GB
Rotationsgeschwindigkeit: 7200 rpm
Mittelere Suchzeit: 10 ms
Transferrate: ca. 50 MB/s
Wie groß ist die Zugriffszeit auf einen
Block von 8 KB?
8
Sequentieller vs. Wahlfreier Zugriff
Beispiel: Lese 1000 Blöcke von je 8 KB
• Wahlfreier Zugriff:
– trnd = 1000 ∙ 14.33 ms
• Sequentieller Zugriff:
– Travelstar 7k200 hat 63 Sektoren pro Spur, mit einer
Track-to-Track-Suchzeit ts,track-to-track von 1 ms
– Ein Block mit 8 KB benötigt 16 Sektoren
– tseq = ts + tr + 1000 ∙ ttr + 1000∙16/63 ∙ ts,track-to-track
= 10 ms + 4.17 ms + 160 ms + 254 ms ≈ 428 ms
Einsicht: Sequentieller Zugriff viel schneller als wahlfreier
Zugriff: Vermeide wahlfreie I/O wenn möglich
Beobachtung: Wenn 428 ms / 14330 ms = 3% einer 8MB Datei
benötigt wird, kann man gleich die ganze Datei lesen
9
erformance Tricks
Tricks
zur
Performanzsteigerung
System builders play a number of tricks to improve performance.
(track skewing)
track Spurverschiebung
skewing
Verschiebe
0 einer
Spur,
Align
sector 0Sektor
of each
trackjeden
to avoid
so dass delay
Rotationsverzögerung
rotational
during sequential
bei sequentiellem Abgriff minimiert wird
scans.
Anfrageplanung
request
scheduling (request scheduling)
Falls mehrere
Blockanfragen
werden müssen,
If multiple
requests
have to bebefriedigt
served, choose
the one that
wählethe
die smallest
Anfrage, die
diemovement
kleineste Armbewegung
bedarf
requires
arm
(SPTF: shortest
(SPTF: shortest positioning time first)
positioning time first).
Einteilung in unterschiedliche Zonen (zoning)
zoning
Mehr Sektoren in den längeren äußeren Spuren
Outer tracks are longer than the inner ones. Therefore,
unterbringen
divide outer tracks into more sectors than inners.
10
Verbesserung der Festplattentechnologie
Latenz der Platten über die letzten 10 Jahre
nur marginal verbessert (≈ 10% pro Jahr)
Aber:
– Durchsatz (Transferraten) um ≈ 50% pro Jahr verbessert
– Kapazität der Festplatten um ≈ 50% pro Jahr verbessert
Daher:
– Kosten für wahlfreien Zugriff über die Zeit hinweg
relativ gesehen immer bedeutsamer
11
Wege zur Verbesserung der I/O-Performanz
Latenzproblem kaum zu vermeiden
Aber:
– Durchsatz kann recht leicht gesteigert werden
durch Ausnutzung von Parallelität
– Idee: Verwende mehrere Platten und
greife parallel auf Daten zu
TPC-C: Ein Industrie-Laufzeittest für OLTP (V5.11)
Kennzeichen des im Jahre 2013 besten Systems (Oracle 11g auf SPARC T5-8 Server):
• Server-CPU: SPARC T5 3,6 GHz, #Prozessoren: 8, #Kerne (total): 128
• Client-CPUs: Intel Xeon E5-2690 2,9 GHz, #Clients: 8, #Proz. 32, #Kerne: 256
• In der Summe 8,5 Mio Transaktionen pro Minute
• Kosten: $4.663.073 USD, mit $0,55 USD/tpmC
http://www.tpc.org/tpcc/results/tpcc_perf_results.asp
12
Spiegelung von Festplatteninhalten
Disk Mirroring
I• Replicate
data onto von
multiple
disks auf mehrere Platten
Replizierung
Daten
1 2 3 4 5
6 7 8 9 ···
1 2 3 4 5
6 7 8 9 ···
1 2 3 4 5
6 7 8 9 ···
• I/O-Parallelität nur für Lesezugriffe
I I/O parallelism only for reads.
• Erhöhte Fehlertoleranz (überlebt Plattenfehler)
I Improved failure tolerance (can survive one disk failure).
I• This
Alsis RAID1
bekannt
ohne
Parität)
also known
as RAID 1(Spiegelung
(mirroring without
parity).
(RAID:
Redundant
Array of Array
Inexpensive
Disks)
(RAID:
Redundant
of Inexpensive
Disks)
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
17
13
Speicherung mit Streifenbildung
Disk Striping
• IVerteilung
derover
Daten
Distribute data
disks auf mehrere Platten
1 2 3 4 5
6 7 8 9 ···
1 4 7 ···
2 5 8 ···
3 6 9 ···
• Volle I/O-Parallelität
I Full I/O parallelism.
• IHohe
Fehlerrate
(hier:
dreimal
höheres
Ausfallrisiko)
High failure
risk (here:
3 times
risk of single
disk failure)!
Also known
as RAIDbekannt
0 (striping (Streifenbildung
without parity).
• IAuch
als RAID-0
ohne Parität)
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
18
14
Streifenbildung mit Parität
Disk Striping with Parity
• Verteile
Daten
und
Paritätsinformation
I Distribute
data and
parity
information over disks. über Platten
1 2 3 4 5
6 7 8 9 ···
1 3 5/6 7 · · ·
2 3/4 5 8 · · ·
1/2
4 6 7/8 · · ·
• Hohe I/O-Parallelität
I High I/O parallelism.
• Fehlertoleranz:
Eine
ohne
I Fault tolerance: one
diskPlatte
can fail kann
withoutausfallen,
data loss (two
disks dass
with dual
parity/RAID
6).
Daten
verloren
gehen
I Also known as RAID 5 (striping with distributed parity).
• RAID-5
(Streifenbildung mit verteilter Parität)
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
19
15
Solid-State Disks als Alternative zur Festplatte
Anpassung von Datenbanken auf Geräteeigenschaften ist
immer noch Forschungsgegenstand
Quelle: Wikipedia Solid-State Disk
16
Netzwerk-Speicher ist kein Flaschenhals
• Durchsatz Festplatte (SSD): >500 MB/s (Serial ATA)
• SDRAM: 50 Gbit/s (Latenz: ∼ ns)
• Ethernet
– 100-Gbit/s heute (Latenz: ∼ µs)
– 400 Gbit/s erwartet in 2017
Warum also nicht Datenbank-Speicher über das Netzwerk
referenzieren?
17
Speichernetzwerk (Storage Area Network, SAN)
• Block-basierter Netzwerkzugriff auf Speicher
– Als logische Platten betrachtet
(Suche Block 4711 von Disk 42)
– Nicht wie bei NFS (Network File System)
• SAN-Speichergeräte abstrahieren von RAID oder
physikalischen Platten und zeigen sich dem DBMS als
logische Platten
– Hardwarebeschleunigung und einfachere Verwaltung
• Üblicherweise lokale Netzwerke mit multiplen Servern
und Speicherressourcen
– Bessere Fehlertoleranz und erhöhte Flexibilität
18
Cloud-Speicher
• Cluster von vielen Standard-PCs (z.B. Google, Amazon)
– Systemkosten vs. Zuverlässigkeit und Performanz
– Verwendung massiver Replikation von Datenspeichern
• CPU-Zyklen und Disk-Kapazität als Service
– Amazons „Elastic Compute Cloud (EC2)“
• Kosten pro Stunde <10 Cent
– Amazons „Simple Storage System (S3)“
• „Unendlicher“ Speicher für Objekte in einer Größe
zwischen 1 Byte und 5 GB mit Key-Value-Struktur
– Latenz: 100 ms bis 1s
• Datenbank auf Basis von S3 entwickelt in 2008
M. Brantner, D. Florescu, D. Graf, D. Kossmann, T. Kraska, Building a
database on S3, Proceedings of the 2008 ACM SIGMOD International
Conference on Management of Data (SIGMOD '08), S. 251-264, 2008
19
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Anwendungen
Applications
Webformulare
Web
Forms
SQL-Schnittstelle
SQL
Interface
Operator-Evaluierer
Operator
Evaluator
Optimierer
Optimizer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Puffer-Verwalter
Buffer
Manager
WiederRecovery
herstellungsManager
Verwalter
this course
Parser
Parser
dieser Teil des Kurses
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Verwalter
für externen
Speicher
Disk Space
Manager
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
20
Verwaltung des externen Speichers
• Abstraktion von technischen Details der Speichermedien
• Konzepte der Seite (page) mit typischerweise 4-64KB als
Speichereinheiten für die restlichen Komponenten
• Verzeichnis für Abbildung
Seitennummer à Physikalischer Speicherort
wobei der physikalische Speicherort
– eine Betriebssystemdatei inkl. Versatz,
– eine Angabe Kopf-Sektor-Spur einer Festplatte oder
– eine Angabe für Bandgerät und -nummer inkl. Versatz
sein kann
21
Verwaltung leerer Seiten
Verwendete Techniken:
1. Liste der freien Seiten
– Hinzufügung falls Seite nicht mehr verwendet
2. Bitmap mit einem Bit für jede Seite
– Umklappen des Bits k, wenn Seite k (de-)alloziert wird
22
Aufgabe
Verwendete Techniken:
1. Liste der freien Seiten
- Hinzufügung falls Seite nicht mehr verwendet
2. Bitmap mit einem Bit für jede Seite
- Umklappen des Bits k, wenn Seite k (de-)alloziert wird
Zur Erhöhung des sequentiellen Zugriffs
sollten hintereinanderliegende Seiten
verwendet werden.
Welche Technik, 1. oder 2., würden Sie
wählen, um dieses zu unterstützen?
23
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Anwendungen
Applications
Webformulare
Web
Forms
SQL-Schnittstelle
SQL
Interface
Operator-Evaluierer
Operator
Evaluator
Optimierer
Optimizer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Puffer-Verwalter
Buffer
Manager
WiederRecovery
herstellungsManager
Verwalter
this course
Parser
Parser
dieser Teil des Kurses
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Verwalter
für externen
Speicher
Disk Space
Manager
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
24
Puffer-Verwalter
Buffer
Manager
Seitenanforderungen
page
requests
6
1
7
2
8
Fall 2008
3
3
1
4
5
externem
und internem
mediates between
external
Speicher
storage and(Hauptspeicher)
main memory,
memory
manages a designated
main
•I Verwaltet
hierzu einen
Seite
disk page
memory area, the
buffer im
pool
besonderen
Bereich
free
frame
freier
for this task.
Rahmen
Hauptspeicher,
den
Disk Pufferbereich
pages are brought
into pool)
(buffer
memory as needed and loaded into
disk
Festplatte
• Externe
Seiten in Rahmen
memory
frames.
des Pufferbereichs
laden
A replacement
policy decides
which
page
to evict when the buffer is full.
• Verdrängungsstrategie
falls
Pufferbereich voll
Hauptspeicher
main
7
4
• buffer
Vermittelt
zwischen
The
manager
6
9 10 11 · · ·
I
Systems Group — Department of Computer Science — ETH Zürich
28
25
Schnittstelle zum Puffer-Verwalter
Funktion pin für Anfragen nach Seiten und
unpin für Freistellungen von Seiten nach Verwendung
• pin(pageno)
– Anfrage nach Seitennummer pageno
– Lade Seite in Hauptspeicher falls nötig
– Rückgabe einer Referenz auf pageno
• unpin(pageno, dirty)
– Freistellung einer Seite pageno zur möglichen
Auslagerung
– dirty = true bei Modifikationen der Seite
Wofür
nötig?
26
Implementation von pin()
Implementation of pin ()
1
2
3
4
5
6
7
8
9
10
11
12
Function: pin(pageno)
if buffer pool already contains pageno then
pinCount (pageno)
pinCount (pageno) + 1 ;
return address of frame holding pageno ;
else
select a victim frame v using the replacement policy ;
if dirty (v) then
write v to disk ;
read page pageno from disk into frame v ;
pinCount (pageno)
1;
dirty (pageno)
false ;
return address of frame v ;
27
Implementation von unpin()
Implementation of unpin ()
1
Function: unpin(pageno, dirty)
2
pinCount (pageno)
if dirty then
dirty (pageno)
3
4
pinCount (pageno)
1;
dirty ;
Why don’t we write pages back to disk during unpin ()?
Warum werden Seiten
nicht gleich beim unpin
zurückgeschrieben?
28
Verdrängungsstrategien
Die Effektivität des Puffer-Verwalters hängt von der
gewählten Verdrängungsstrategie ab, z.B.:
• Least Recently Used (LRU)
– Verdrängung der Seite mit längszurückliegendem
unpin()
• LRU-k
– Wie LRU, aber k-letztes unpin(), nicht letztes
• Most Recently Used (MRU)
– Verdrängung der Seite mit jüngstem unpin()
• Random
– Verdrängung einer
beliebigen Seite
Wann welche Strategie
einsetzen?
29
Pufferverwaltung in der Praxis
• Prefetching
– Antizipation von Anfragen, um CPU- und I/O-Aktivität
zu überlappen
• Spekulatives Prefetching: Nehme sequentiellen
Seitenzugriff an und lese im Vorwege
• Prefetch-Listen mit Instruktionen für den Pufferverwalter
für Prefetch-Seiten
• Fixierungs- oder Verdrängungsempfehlung
– Höherer Code kann Fixierung (z.B. für Indexseiten) oder
schnelle Verdrängung (bei seq. Scans) empfehlen
• Partitionierte Pufferbereiche
– Z.B. separate Bereiche für Index und Tabellen
30
Datenbanken vs. Betriebssysteme
• Haben wir nicht gerade ein Betriebssystem entworfen?
• Ja
– Verwaltung für externen Speicher und Pufferverwaltung
ähnlich
• Aber
– DBMS weiß mehr über Zugriffsmuster (z.B. Prefetching)
– Limitationen von Betriebssystemen häufig zu stark für
DBMS (Obergrenzen für Dateigrößen,
Plattformunabhängigkeit nicht gegeben)
31
Datenbanken vs. Betriebssysteme
• Gegenseitige Störung möglich
– Doppelte Seitenverwaltung
– DMBS-Transaktionen vs. Transaktionen auf Dateien
organisiert vom Betriebssystem (journalling)
– DBMS Pufferbereiche durch Betriebssystem ausgelagert
– DBMS schalten Betriebssystemdienste aus
• Direkter Zugriff auf Festplatten
• Eigene Prozessverwaltung
• ...
32
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Anwendungen
Applications
Webformulare
Web
Forms
SQL-Schnittstelle
SQL
Interface
Operator-Evaluierer
Operator
Evaluator
Optimierer
Optimizer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Puffer-Verwalter
Buffer
Manager
WiederRecovery
herstellungsManager
Verwalter
this course
Parser
Parser
dieser Teil des Kurses
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Verwalter
für externen
Speicher
Disk Space
Manager
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
33
Datenbank-Dateien
Database Files
I
I
I
So far we have talked about pages. Their management is
• Seitenverwaltung unbeeinflusst vom Inhalt
oblivious with respect to their actual content.
• the
DBMS
verwaltet
von Tupeln,
...
On
conceptual
level,Tabellen
a DBMS manages
tables Indexstrukturen,
of tuples
and
(among
others). von Datensätzen (records)
• indexes
Tabellen
sind Dateien
Such tables
arebesteht
implemented
as files
ofmehrerer
records: Seiten
– Datei
aus einer
oder
I A file consists of one or more pages.
– Jede Seite speichert eine oder mehrere Datensätze
I Each page contains one or more records.
– Jeder
Datensatz
korrespondiert
I Each
record
corresponds
to one tuple. zu einem Tupel
file 0
free
file 1
page 0
page 1
page 2
page 3
free
page 4
Fall 2008
page 5
page 6
Systems Group — Department of Computer Science — ETH Zürich
page 7
37
34
Heap-Dateien
Heap Files
• The
Wichtigster
Dateityp:
Speicherung
von
mit
most important
type of files
in a database is
the Datensätzen
heap file. It
willkürlicher
Ordnung
(konform
mit SQL)
stores
records in no
particular order
(in line with,
e.g., SQL).
Linked list ofListe
pages von Seiten
Verkettete
header
page
data
page
data
page
···
data
page
pages w/
free space
data
page
data
page
···
data
page
full pages
ü +Einfach
zu implementieren
easy to implement
– most
pages will
in freeder
pagefreie
list Seiten
✗Viele
Seiten
aufend
derupListe
–(haben
might have
search Kapazität)
many pages to place a (large) record
alsotonoch
✗Viele
Seiten
anzufassen bis passende Seite gefunden
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
38
35
Heap-Dateien
Heap Files
Directory
of pages
• Verzeichnis
von Seiten
data
page
···
data
page
data
page
✗Verwendung als Abbildung mit Informationen über freie
I use as space map with information about free page
Plätze (Granularität ist Abwägungssache)
I granularity as trade-off space $ accuracy
ü Suche
nach freien Plätzen effizient
(range from open/closed bit to exact information)
✗Zusatzaufwand für Verzeichnisspeicher
+ free space search more efficient
– small memory overhead to host directory
36
Freispeicher-Verzeichnis
Welche Seite soll für neuen Datensatz gewählt werden?
• Append Only
– Immer in letzte Seite einfügen, sonst neue Seite anfordern
• Best-Fit
– Alle Seiten müssen betrachtet werden, Reduzierung der
Fragmentierung
• First-Fit
– Suche vom Anfang, nehme erste Seite mit genug Platz
– Erste Seiten füllen sich schnell, werden immer wieder betrachtet
• Next-Fit
– Verwalte Zeiger und führe Suche fort, wo Suche beim vorigen
Male endete
37
Inhalt
einer Seite
Inside
a Page
Inside a Page
IDID
NAME
NAME
4711 John
John
4711
1723 Marc
1723
Marc
6381 Betty
6381 Betty
I
I
SEX
M
M
F
SEX
M
M
F
4 7 1 1 J o4h 7
n 1 1 J o hM n
1723M
arc
M
6
3
8
1
B
e t tMy 6
arc
F
F
•I record
Datensatz-Kennung
identifier (rid):
hpageno,
slotnoi
(record
identifier,
record
identifier
(rid): rid)
I record position (within page):
hpageno,
• Datensatz-Position
slotno
⇥ bytesslotnoi
per slot
(Versatz
auf (within
der Seite)
I Tuple
record
position
page):
deletion?
record
shouldn’t
change
Slotno
Bytes
pro
Slot
slotno
⇥xidbytes
per
slot
! slot directory (bitmap)
•Tuple
Datensatz
gelöscht?
deletion?
slot
directory
I
I
no. of records
in this page
slot
directory
101
3 Header
–record
rid sollte
sich nichtchange
ändern
id shouldn’t
!–slot
directory (bitmap)
Slot-Verzeichnis
(Bitmap)
I
Fall 2008
M1723M
381Betty
Systems Group — Department of Computer Science — ETH Zürich
no. of records
in this page
42
101
3 Header
38
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
42
nside aInhalte
Page—Variable-Sized
Fields Länge
einer Seite: Felder variabler
I
I
I
I
Variable-sized
fields moved
• Felder variabler
Längeto
zum
end of Ende
each verschoben
record.
I Placeholder points to
– Platzhalter zeigt auf Position
location.
Warum?
I
Why?
• Slot-Verzeichnis
zeigt auf
Start eines
Feldes
Slot directory
points
to start of
each• record.
Felder können auf Seite
Recordsverschoben
can move werden
on page.
(z.B. wenn sich Feldgröße
I E.g., if field size changes.
ändert)
Create “forward address” if
• Einführung einer
record won’t fit on page.
Vorwärtsreferenz, wenn
I
Future
updates?
Feld
nicht
auf Seite passt
4711 • MJohn?1723 • MM
arc?6381 • FBetty?172
3• • M T i m o t h y ?
forward
slot
directory
Was passiert bei Updates?
•
no. of records
in this page
•
•
3 Header
39
Alternative Seiteneinteilungen
Alternative
Page
Layouts
Alternative Page Layouts
We have just populated data pages in a row-wise fashion:
We
have just wurden
populated Datensätzen
data pages in a row-wise
fashion:
• Im Beispiel
zeilenweise
angeordnet:
a
a11
a
a22
aa33
aa4
4
b
b11
b
b22
bb33
bb4
4
c
c11
c
c22
cc33
cc4
4
d
d11
d
d22
dd33
dd4
a1
b1
c1
a
b
c
c1 1 d1 1 a2 1
c1 b2 d1 c2 a2 d2
d2b2 a3 c2 b3d2
d2 c3 a3 d3 b3
c3
d3
a4
b4
a
b
c4 4 d4 4
c4
d4
page 0
page 0
4
c4
c4
page 1
page 1
We could
could as
as well
wellAnordnung
dothat
thatcolumn-wise:
column-wise:
• Spaltenweise
genauso möglich:
We
do
aa11
aa22
aa33
aa44
Fall2008
2008
Fall
bb11
bb22
bb33
bb44
cc11
cc22
cc33
cc44
dd11
dd22
dd33
dd44
aa1 1
aa33
aa44
aa22
aa3 3
bb1 1
bb3 3
bb4 4
page00
page
SystemsGroup
Group—
—Department
DepartmentofofComputer
ComputerScience
Science——ETH
ETHZürich
Zürich
Systems
bb2 2
bb3 3
· ·· ·· ·
page1 1
page
4444
40
Alternative Page Layouts
Alternative Seitenanordnungen
These two approaches are also known as NSM (n-ary storage
model) and DSM (decomposition storage model).1
Vorgestellte Schemata heißen auch:
I
I
Tuning knob for certain workload types (e.g., OLAP)
– Row-Store
Different behavior with respect to compression.
– Column-Store
Anwendungen
fürPAX
verschiedene
A•hybrid
approach is the
(Partition
Attributes
Accross)
Lasttypen
undlayout:
Anwendungskontexte
(z.B.
OLAP)
Divide each
page
into minipages.
•I Unterschiedliche
Group attributes into them.
Kompressionsmöglichkeiten
% Ailamaki et al. Weaving Relations for Cache
• Kombination
Performance.
VLDB 2001.möglich:
minipage 3
minipage 2
I
minipage 1
minipage 0
page 0
– Unterteilung einer Seite in Miniseiten
1
Recently,
terms row-store and
column-store have become popular, too.
– mit the
entsprechender
Aufteilung
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
Ailamaki et al. Weaving Relations for Cache Performance. VLDB 2001
45
41
Zusammenfassung
• Kennzeichen von Speichermedien
– Wahlfreier Zugriff langsam (I/O-Komplexität)
• Verwalter für externen Speicher
– Abstraktion von Hardware-Details
– Seitennummer à Physikalischer Speicherort
• Puffer-Verwalter
– Seiten-Caching im Hauptspeicher
– Verdrängungsstrategie
• Dateiorganisation
– Stabile Record-Bezeichner (rids)
– Verwaltung statischer und dynamischer Felder
Herunterladen