39
Zum Einsatz von SSDs in DBMS: Festplattenersatz oder Herausforderung an neue Speicherstrukturen?! Kai-Uwe Sattler Database & Information Systems Group Ilmenau University of Technology, Germany www.tu-ilmenau.de/dbis

Zum Einsatz von SSDs in DBMS: Festplattenersatz … · Memory based Solid State Drives, ... • Random Writes auf gewisse Größe begrenzen ... innodb_secondary_buffer_pool 29 0 45

Embed Size (px)

Citation preview

Zum Einsatz von SSDs in DBMS: Festplattenersatz oder Herausforderung an neue Speicherstrukturen?!

Kai-Uwe SattlerDatabase & Information Systems GroupIlmenau University of Technology, Germanywww.tu-ilmenau.de/dbis

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Überblick

• Einführung & Motivation

• Funktionsweise & Eigenschaften von SSDs

• Performance-Erwartungen

• Micro-Benchmarking

• SSDs für DBMS

• Konsequenzen

• Fazit & Ausblick

2

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Motivation

• Rasant wachsendes Datenvolumen: Google (Melnik @BTW 2009)

• 20 PB Daten täglich verarbeiten

• strukturierte Daten, Text, Bilder, Video

• 15 h Video-Upload jede Minute

• 20 PB von Disk lesen: bei 50 MB/s = 12 Jahre

• 1TB-Disks verfügbar (ab 170 €), aber (Gray 2006):

• 5 .. 15h bei sequentiellem Lesen

• 1 ..150 d bei wahlfreiem Lesen

• heute SATA-I (150 MB/s), SAS-II 6 Gbit/s (500 MB/s)

http://www.flickr.com/photos/nikclayton/1394374289/

3

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Motivation

http://kerryosborne.oracle-guy.com/

4

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Kosten für Flash-Speicher

Leventhal: Flash Storage Memory, CACM 51(7), 20085

0

75

150

225

300

2003 2004 2005 2006 2007

Kosten ($) pro GB

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Motivation

• „Tape is Dead, Disk is Tape, Flash is Disk, RAM Locality is King“ J. Gray 2006

• seit 1995 Verdopplung der Kapazität

• Preisverfall getrieben durch Bedarf im Consumer-Bereich (von $30 auf $3 pro Chip in 2006)

• 5000 IO-Operationen pro Chip

• Leserate 20 MB/s, Schreibrate 10 MB/s pro Chip - n-fach bei n Chips

• Intel X25-M: 270 MB/s (mit dd gemessen)

• Energiebedarf (www.au-ja.de)

Intel X-25M WD5000AAKS

Lesen/Schreiben 0,15 W 8,77 W

Leerlauf 0,06 W 8,4 W

Ruhezustand 0,06 W 0,97 W

6

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Was sind SSDs?

• Halbleiterlaufwerke meist auf Basis von Flash Memory

• NOR vs. NAND

• Single-Level Cell (SLC):

• nur 1 Bit pro Zelle

• Multi-Level Cell (MLC):

• mehrere Bits pro Zelle (meist 4)

• langsamer, kürzere Lebenszeit

• höhere Dichte = höhere Kapazität

7

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Aufbau von SSDs

Controller

Buffer

ECC

SATAInter-face

NAND

NAND

NAND

Cache

n*1000 Blöckea 64 ... 128 Pagesa 2/4 KB Daten+

128 Byte ECC

8

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSD: Operationen

• Zellen-Operationen

• Default-Wert einer Zelle = 1

• Programmierung = Wert 1 ➞ 0

• Löschen (Erase): 0 ➞ 1

• Granularität

• Read/Write-Operationen auf Page-Ebene

• Read: ca. 60 μs, Write: ca. 900 μs

• Erase auf Block-Ebene

• Anzahl der Erase-Operationen:

• ca. 105 für MLC

• aber - bei 50 MB/s gleichmäßiges Beschreiben von 128 GB: ca. 8,5 Jahre

9

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSD-Organisation: Flash Translation Layer

• Block Mapping

• Abbildung zwischen logischen Blockadressen (LBA) und physischen Flash-Pages

• direkte Map + indirekte Map (für Recovery)

• Notwendigkeit: kein Write „in Place“ möglich

• jede Write-Operation auf logischer Page geht zu anderer phys. Page

• Wear Leveling

• Vermeiden der Lokalität von Write-Operationen (Verkürzung der Lebenszeit)

• Garbage Collection

• Schreiben auf neue Blöcke erfordert Recycling alter Blöcke

10

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSD-Anbindung: SATA vs. PCIe

• Intel X25-M (MLC)

• SATA 1.5 Gbit/s und 3 Gbit/s

• Leselatenz: 85 μs

• Bandbreite: 250 MB/s Lesen, 70 MB/s Schreiben

• Leistungsaufnahme: 150 mW

• Preis: 220€ für 80 GB

11

• FusionIO ioDrive (SLC)

• PCIe X4

• Leselatenz: 50 μs

• Bandbreite: 750 MB/s Lesen, 650 MB/s Schreiben

• Preis: ca. 1900€ für 80 GB

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Erwartungen

• schnelle wahlfreie und sequenzielle Lesezugriffe

• kein Unterschied zwischen wahlfreien und sequenziellen Zugriffen

• geringe und konstante Latenz aufgrund fehlender mechanischer Teile

• kleine Blöckgrößen möglich

• schneller als HDDs

• Schreiben wesentlich langsamer als Lesen

12

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Was passiert, wenn ...

• MySQL 5.1, SQL-Bench und SysBench auf HDD und SSD (X-25m)

13

0

150000

300000

450000

600000

read write other

Queries Perfomed

0

55

110

165

220

Transactions per sec.

HDD SSD

0

150

300

450

600

alter-table create insert select

sql-bech (secs.)

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

DB-Beschleunigung durch SSDs?

• Ja, aber ...

• auf welcher Speicherebene (extern, Cache, ...)?

• für welche Workloads?

• große Unterschiede der SSDs (Softwareimplementierung, Cache, ...)

• komplexes internes Design ➞ Performance-Tuning kompliziert

• Anpassung der DBMS-Datenstrukturen?

• Bechmarking

• auf Raw-Device-Ebene

• auf DB-Ebene

• Datenstrukturen und DB-Operationen

14

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Micro-Bechmarking: Raw Device-Ebene

• Fragestellungen

• konstante Latenz für Leseoperationen?

• Bandbreite vs. Blockgröße?

• Effekte der Fragmentierung?

• Wie teuer ist Schreiben wirklich?

• Interferenzen zwischen Lese-/Schreiboperationen bzw. Hintergrundoperationen

• Quellen:

• uFLIP-Benchmark: http://uflip.inria.fr/~uFLIP/ und Bouganim et al.: uFLIP: Understanding Flash IO Patterns, CIDR 2009

• Chen et al.: Understanding Intrinsic Characteristics and System Implications of Flash Memory based Solid State Drives, SIGMETRICS/Performance 2009

• Baumann et al.: Flashing Databases: Expectations and Limitations, DaMoN 2010

15

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Gleichmäßige Latenz bei Leseoperationen?

• Herstellerangabe (2008): 25 ... 60 μs• Experiment: 4KB Leseanforderung, Random, Sequential, Stride

• Erklärung: Readahead, Interleaving beim Lesen mehrerer Planes

16

100

80

60

40

20

0

% R

eque

sts

0,05 0,1 0,15 0,2 0,3 0,4

Lese-Latenz (ms)

SequentialStrideRandom

kumulative Verteilung

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Optimale Blockgröße

17

0

75

150

225

300

2 KB 4 KB 8 KB 16 KB 64 KB 256 KB 1 MB

Ban

db

reit

e M

B/s

BlockgrößeSSD random SSD sequential

0

7,5

15,0

22,5

30,0

2 KB 4 KB 8 KB 16 KB 64 KB 256 KB 1 MB 4 MB 16 MB 64 MB

Ban

db

reit

e M

B/s

BlockgrößeHDD random HDD sequential

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Sind Random Writes teuer?

• Herstellerangabe (2008): Write = 250 .. 900 μs, Erase = 800 .. 1500 μs

• Experiment: 4 KB Schreibanforderung

• Erklärung: größere Puffer in High-End-Devices

18

100

80

60

40

20

0

% R

eque

sts

0,05 0,1 0,15 0,2 0,3 0,4

Schreib-Latenz (ms)

SequentialStrideRandom

kumulative Verteilung

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Welchen Effekt hat Fragmentierung?

• Read-/Write-Workloads vor bzw. nach Fragmentierung

• kein Einfluss auf Random Reads

• signifikante Reduzierung bei Sequential Reads (43 MB/s ➞ 15 MB/s)

19

0

12,5

25,0

37,5

50,0

RND-RD SEQ-RD RND-WR SEQ-WR

unfragmentiert fragmentiert

Ban

db

reit

e M

B/s

ecs.

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Interferenzen zwischen Lese- und Schreiboperationen?

• Workload aus 1000 Requests (Read/Write)

• wenig Einfluss bei Write

• write(n)-read(n): Leselatenz durch Flush der internen Caches

20

100

80

60

40

20

0

% R

eque

sts

0,25 0,5 0,75 1,0

Latenz (ms)

write(n)-read(n)only-readread(n)-write(n+1)

100

80

60

40

20

0

% R

eque

sts

0,25 0,5 0,75 1,0

Latenz (ms)

write(n)-read(n)only-readread(n)-write(n+1)

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Zwischenfazit

• geringe Latenz durch komplexen Software-Layer ➞ größere IO-Einheiten

• Empfehlung für Blöckgröße: 32 KB (Vielfachs von Flash-Pages)

• Random Writes auf gewisse Größe begrenzen (für 4 .. 16 MB wie Sequential Write)

• konkurrierende IO-Zugriffe bis zu gewissem Maße ohne Einfluss

• Opimierung der Datenorganisation auf Disk weiterhin notwendig

• Scheduling der IO-Operationen

• dynamisches Block-Mapping kann mit der Zeit zu Performance-Änderungen führen

21

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Einsatz in DBMS

• Device für spezielle Aufgaben: Transaction Log, Rollback Segment, Temporary Table Spaces

• Lee et al.: A Case for Flash Memory SSD in Enterprise Database Systems, SIGMOD’08

• als Cache

• Flash Cache in Oracle Exadata, Flash Cache für MySQL

• spezialisierte Datenstrukturen: B-Tree-Varianten, Cluster-Strukturen

• Wu, Chang, Kuo: An Efficient B-Tree Layer for Flash-Memory Storage Systems, Real-Time and Embedded Computing Systems and Applications 2003

• Flash-Operationen: Joins, Scans, ...

• Tsirogiannis et al.: Query Processing Techniques for Solid State Drives, SIGMOD‘09

22

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSDs für Transaction Log

• Idee: geringe Schreiblatenz für Logging nutzen

• Experiment: kommerzielles DBMS mit SSD für Transaction Log

• Fazit: IO-Begrenzung kann zu CPU-Begrenzung führen!

23

0

1750

3500

5250

7000

4 8 16 32 64

Transactions per second

HDD SSD

Anz. paralleler Transaktionen

0

22,5

45,0

67,5

90,0

4 8 16 32 64

CPU-Auslastung

Anz. paralleler Transaktionen

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSDs für temporäre Tablespaces

• Nutzung für externes Sortieren, Hash Joins, Sort-Merge Joins, ...

• IO-Muster

24

250

200

150

100

50

0

Log.

Sek

tora

dres

se

10 20 30 40 60 80

Zeit50 70 90

250

200

150

100

50

0

Log.

Sek

tora

dres

se

10 20 30 40 60 80

Zeit50 70 90

HDD SSD

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

SSDs für temporäre Tablespaces /2

• Sort-Performance

25

0

75

150

225

300

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Aufwand für externes Sortieren

HDD SSD

Puffergröße (MB)

Lauf

zeit

(sec

s.)

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Flash Cache

• eingeführt mit Sun‘s ZFS: Level 2 ARC

http://blogs.sun.com/brendan/entry/test

RAM

Disk Storage Pool

L2ARC ZIL

Main Memory Cache(DRAM)

SSD Layer

Flash Cachefür Reads

Log Device für Writes

26

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Oracle Exadata

• Vorkonfigurierte RAC Database Machine

• DBS: 64 Nehalem Cores, 576 GB RAM

• Netzwerk: InfiniBand 40 Gbit/s

• Exadata Storage Server:

• 112 Nehalem Cores, 336 GB RAM

• 100 TB SAS HDD

• 5 TB Flash Cache

• Flash Cache

• automatischer Write-through Cache

• von Hand:create table emp( ... )storage (flash_cache keep)

27

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Oracle Exadata

28

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Flash Cache für MySQL

• Secondary Bufferpool: aus Main-Memory-Bufferpool verdrängte Seiten werden auf SSD ausgelagert

• im Fall von MM-Bufferpool-Misses: Lookup im Flash Cache

• Implementiert von Facebook-Mitarbeitern: innodb_secondary_buffer_pool

29

0

45

90

135

180

ohne FlashCache mit FlashCache

Sysbench - tps

4 Disk RAID10, X25-M 40 GB Cache

0

1250

2500

3750

5000

0 MB 512 MB 920 MB

TPC-C (tpmC), 1.2 GB DB

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

B+-Baum auf SSDs

• Variante 1: SSDs als normales Block Device

• B+-Baum-Knoten werden in aufeinander folgenden Flash Pages gespeichert

• Vorteil: einfache Portierung

• Nachteil: teuere Updates, auch bei kleinen Änderungen ggf. Schreiben in neue physische Page + Garbage Collection

• Variante 2: Log-basierter Ansatz

• Änderungen im B+-Baum als Log-Eintrag in Main-Memory-Buffer; bei Überlauf auf Flash schreiben

• Vorteil: geringe Update-Kosten

• Nachteil: Lesen ist aufwendiger, da Rekonstruktion über Log-Einträge

• Variante 3: Kombination aus beiden = Self Tuning B+Tree• Nath, Kansal: FlashDB: Dynamic Self-tuning Database for NAND Flash, IPSN‘07

30

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

BFTL: B-Tree Layer for Flash Memory

• Wu, Chang, Kuo: An Efficient B-Tree Layer for Flash-Memory Storage Systems, Real-Time and Embedded Computing Systems and Applications 2003.

31

100

30 60 95 150 200

10 40 70 97 120 ...

20 25 85

Primärschlüssel

Inhalt

Inhalte20 25 85 IndexUnits

Flash Translation Layer

Sektor 1 Sektor 2

ReservationBuffer

Logische Sicht auf B-Baum

BFTL

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

BFTL: Performance

• 8 MB-NAND-Prototyp, Anzahl Seiten nach 24.000 eingefügten Schlüsseln

32

0

10000

20000

30000

40000

0 0,2 0,4 0,6 0,8 1

BFTL FTL

#Pag

es W

rite

Anteil geordneter Schlüssel beim Einfügen Anteil geordneter Schlüssel beim Einfügen #P

ages

Rea

d0

25000

50000

75000

100000

0 0,2 0,4 0,6 0,8 1

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Anfrageoperationen: FlashScan

• Idee: Ausnutzung der kleineren möglichen Blockgrößen

• Page-Format: klassisches NSM vs. PAX

1 1 1 1 0 0 0 0 0

1042104310441045

Jamaica BlueArabica Black

New York EspressoArabica Black

1 1 1 1 0 0 0 0 0

Miniseite fürProdNr

Miniseite fürBezeichnung

Präsenzbits

Miniseitenverzeichnis

17,9914,9516,9511,99

Miniseite fürPreis

Satz-verzeichnis

33

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Anfrageoperationen: FlashScan

• Reduzierung der Scans auf tatsächlich benötigte Spalten durch Verwendung von PAX-Seiten

• Tsirogiannis et al.: Query Processing Techniques for Solid State Drives, SIGMOD‘09

34

0

37,5

75,0

112,5

150,0

0% 20% 40% 60% 80% 100%

NSMScanFlashScan 100% SELFlashScan 0.01% SEL

Projektivität

Lauf

zeit

(sec

)

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Anfrageoperatoren: Standard Joins

• Performance von Standard-Join-Operationen • Do, Patel: Join Processing for Flash SSDs: Remembering Past Lessons, DaMoN 2009• 5400 RPM HDD vs. OCZ SATA-II SSD

35

0

1,25

2,50

3,75

5,00

Block Nested Loop Sort Merge Grace Hash Hybrid Hash

Speedup für SSD-Varianten gegenüber HDD (100 MB Bufferpool)

Join TimeIO Time

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Fazit

• kleinere Blockgrößen möglich

• spezielle Scans, Seitengrößen für B-Baum-Indexe, multidimensionales Clustering

• Tendenz zu CPU-Begrenzung (im Vergleich zu IO-Begrenzung bei HDD)

• Random Reads für Random Writes

• Random Writes produzieren größere IO-Varianz, dadurch weniger vorhersagbar

• Blocked IO kann Performance signifikant verbessert:

• Latenz der Software-Layers

• größere IO-Einheiten generieren weniger Erase-Operationen

36

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Einsatzszenarien für DBMS

• als schnellere Festplatte:

• teuer, Schreiblatenz bei Update-in-Place

• ermöglicht kleinere Blöckgrößen, erfordert Anpassung von Datenstrukturen

• als 2nd-Level-Cache (Write-through Cache):

• Beschleunigung der Leseoperationen

• kein Einfluss auf Schreiboperationen

• geringe Kosten im Vergleich zur reinen SSD-Nutzung

• als Medium für spezielle Zwecke (Logging, Rollback, temporäre Tabellen):

• Ausnutzung geringer Latenzen für Schreiboperationen

• eventuell Probleme durch begrenzte Anzahl von Schreibvorgängen

37

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Zusammenfassung & Ausblick

• signifikante IO-Beschleunigung für DBMS durch SSDs

• permanente Weiterentwicklung

• komplexer Software-Layer

• IO-Begrenzung kann zur CPU-Begrenzung werden

• verschiedene Einsatzmöglichkeiten

• FlashCache - zusätzliche Speicherebene

• jedoch kein naiver Festplattenersatz (Preis vs. Nutzen)

• Einfluss auf DBMS-Architektur

• physische Datenorganisation: Indexe, Clustering

• Operatoren & Logging

• Kostenmodell

• Interface für SSDs: SATA / SAS vs. PCIe?

38

Zum Einsatz von SSDs in DBMS | Kai-Uwe Sattler | TU Ilmenau | 09.06.2010▶

Literatur

• Leventhal: Flash Storage Memory, CACM 51(7), 2008

• Graefe: The five-minute rule 20 years later (and how flash memory changes the rules). CACM 52(7), 2009

• Do, Patel: Join Processing for Flash SSDs: Remembering Past Lessons, DaMoN 2009

• Bouganim et al.: uFLIP: Understanding Flash IO Patterns, CIDR 2009

• Chen et al.: Understanding Intrinsic Characteristics and System Implications of Flash Memory based Solid State Drives, SIGMETRICS/Performance 2009

• Lee et al.: A Case for Flash Memory SSD in Enterprise Database Systems, SIGMOD 2008

• Wu, Chang, Kuo: An Efficient B-Tree Layer for Flash-Memory Storage Systems, Real-Time and Embedded Computing Systems and Applications 2003

• Tsirogiannis et al.: Query Processing Techniques for Solid State Drives, SIGMOD 2009

• Baumann, Nijs, Strobel, Sattler: Flashing Databases: Expectations and Limitations, DaMoN 2010

39