Datenbanken - IFIS Uni Lübeck

Werbung
Datenbanken
Prof. Dr. Ralf Möller
Universität zu Lübeck
Institut für Informationssysteme
Marc Stelzner (Übungen)
Torben Matthias Kempfert (Tutor)
Maurice-Raphael Sambale (Tutor)
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
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
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
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
Magnetic Disks
rotation
Rotation
Spur
track
rotation
track
block
Block
block
arm
Arm
arm
sector
Sektor platter
sector
Magnetscheibe
platter
heads
Köpfe
heads
Photo: http://www.metallurgy.utah.edu/
Schrittmotor
positioniert
Arme
aufof of
steppermotor
motor
positions
array
AAstepper
positions
anan
array
bestimmte
Spur
disk
headsonon
the
requested
track.
disk
heads
the
requested
track.
•  Platters
Magnetscheiben
rotierenrotate.
ständig
I
(disks)
steadily
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
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 von 1 ms
–  Ein Block mit 8 KB benötigt 16 Sektoren
–  tseq = ts + 1000 ∙ ttr + 16 ∙1000/63 ∙ ts,track-to-track
= 10 ms + 4.14 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 Datei
benötigt wird, kann man gleich die ganze Datei lesen
9
Performance Tricks
Tricks
zurplay
Performanzsteigerung
System
builders
a number of tricks to improve performance.
(track skewing)
track Spurverschiebung
skewing
Align
sector 0Sektor
of each
trackjeden
to avoid
Verschiebe
0 einer
Spur,
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
Spuren
Outer
tracks
are longer
than theäußeren
inner ones.
Therefore,
unterbringen
divide outer tracks into more sectors than inners.
10
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
14
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
http://www.tpc.org/tpcc/results/tpcc_perf_results.asp
12
Spiegelung von Festplatteninhalten
Disk Mirroring
data onto von
multiple
disks auf mehrere Platten
• Replicate
Replizierung
Daten
I
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 (überlegt Plattenfehler)
I Improved failure tolerance (can survive one disk failure).
I• This
also known
as RAID 1(Spiegelung
(mirroring without
parity).
Alsis RAID1
bekannt
ohne
Parität)
(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 ···
•  IVolle I/O-Parallelität
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
I Distribute
•  Verteile
Daten
und
Paritätsinformation
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: >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
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
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
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
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
•  buffer
Vermittelt
zwischen
The
manager
Seitenanforderungen
page
requests
6
3
1
Hauptspeicher
main
4
memory
disk page
free frame
freier
Seite
7
Rahmen
1
7
2
8
Fall 2008
3
4
5
6
9 10 11 · · ·
disk
Festplatte
externem
und internem
mediates between
external
Speicher
storage and(Hauptspeicher)
main memory,
manages a designated
main
• I Verwaltet
hierzu einen
memory area, the
buffer pool
besonderen
Bereich
im
for this task.
Hauptspeicher, den
Disk Pufferbereich
pages are brought
into pool)
(buffer
memory as needed and loaded into
•  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
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
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
30
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- 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?
•  Yes
–  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
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
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,
Indexstrukturen,
...
On
conceptual
level,Tabellen
a DBMS manages
tables 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
Datensätzen
mit
most important
type of files
in a database is
the heap
file. It
stores
records in no
particular order
(in line with,
e.g., SQL).
willkürlicher
Ordnung
(konform
mit 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
+ easy tozu
implement
+ Einfach
implementieren
– most
pages will
in freeder
pagefreie
list Seiten
-  Viele
Seiten
aufend
derupListe
– might have to search many pages to place a (large) record
(haben
also noch Kapazität)
- Fall 2008
Viele Seiten
anzufassen bis passende Seite gefunden
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
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
36
39
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
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
identifier (rid):
• I record
Datensatz-Kennung
hpageno,
slotnoi
I record
(record
identifier,
identifier
(rid): rid)
I record position (within page):
hpageno,
•  Datensatz-Position
slotno
⇥ bytesslotnoi
per slot
(Versatz
auf (within
der Seite)
I record
I Tuple
position
page):
deletion?
record
shouldn’t
change
Slotno
xidbytes
Bytes
pro
Slot
slotno
⇥
per
slot
! slot directory (bitmap)
Datensatz
gelöscht?
I • Tuple
deletion?
slot
directory
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
Inside aInhalte
Page—Variable-Sized
Fields Länge
einer Seite: Felder variabler
I
I
I
I
Variable-sized fields moved to
•  Felder variabler Länge zum
end of Ende
each verschoben
record.
I Placeholder points to
–  Platzhalter zeigt auf Position
location.
Warum?
I
Why?
•  Slot-Verzeichnis
zeigt auf
Slot directory
points
to start of
Start eines
Feldes
each•  record.
Felder können auf Seite
Recordsverschoben
can move werden
on page.
(z.B.
sichchanges.
Feldgröße
I E.g.,
if wenn
field size
ä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
•
no. of records
in this page
•
•
3 Header
Was passiert bei Updates?
Fall 2008
Systems Group — Department of Computer Science — ETH Zürich
39
43
Alternative Seiteneinteilungen
Alternative Page
Page Layouts
Layouts
Alternative
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:
aa11
aa22
aa33
aa4
4
bb11
bb22
bb33
bb4
4
cc11
cc22
cc33
cc4
4
dd11
dd22
dd33
dd4
a1
b1
c1
a
b
c
1
1
c
d
a 1
c1 1 b d1 1 c a22 d
2
2
2
b
c
d
2
2
2
d
a
b
d22 c a33 d b3 3
c33
d33
a4
b4
a
b
4
c
d 4
c4 4
d4 4
page 0
page 0
4
c
c4 4
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
Tuning knob for certain workload types (e.g., OLAP)
I
–  Row-Store
–  Column-Store
Different behavior with respect to compression.
Anwendungen
fürPAX
verschiedene
A• hybrid
approach is the
(Partition
Attributes
Accross)
Lasttypen
undlayout:
Anwendungs-
minipage 3
minipage 2
(z.B.
OLAP)
I kontexte
Divide each
page
into minipages.
• I Unterschiedliche
Group attributes into them.
Kompressionsmöglichkeiten
% Ailamaki et al. Weaving Relations for Cache
•  Kombination
möglich:
Performance.
VLDB 2001.
minipage 1
minipage 0
page 0
–  Unterteilung einer Seite in Miniseiten
1
Recently, the terms row-store and column-store have become popular, too.
–  mit 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
Architektur eines DBMS
Architecture of a DBMS / Course Outline
Applications
Anwendungen
Webformulare
Web
Forms
SQL
Interface
SQL-Schnittstelle
Parser
Parser
Operator
Evaluator
Operator-Evaluierer
Optimizer
Optimierer
Transaction
TransaktionsVerwalter
Manager
Lock
SperrVerwalter
Manager
Dateiverwaltungsund Zugriffsmethoden
Files
and Access
Methods
Buffer
Manager
Puffer-Verwalter
WiederRecovery
herstellungsManager
Verwalter
dieser Teil
des Kurses
this
course
Ausführer
Executor
Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003.
SQL-Kommandos
SQL
Commands
Disk Space
Manager
Verwalter
für externen
Speicher
DBMS
Dateien
für Daten
und Indexe. . .
data
files,
indices,
Fall 2008
Datenbank
Database
Systems Group — Department of Computer Science — ETH Zürich
3
43
Herunterladen