Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

57
Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store ...

Transcript of Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Page 1: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Hauptspeicher-Datenbanksysteme

• Hardware-Entwicklungen• Column- versus Row-Store• ...

Page 2: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Hauptspeicher-Datenbanksysteme Disk is Tape, Tape is dead … Jim Gray

Die Zeit ist reif für ein Re-engineering der Datenbanksysteme

Man kann heute für 25000 Euro einen Datenbankserver mit 1 TeraByte Hauptspeicher und 32 Rechenkernen kaufen

Page 3: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...
Page 4: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Einsatz von Hauptspeicher-Datenbanksystemen

Page 5: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Feasibility: Main Memory DBMS Amazon

Data VolumeRevenue: 15 billion

EuroAvg. Item Price: 15

Euro1 billion order lines

per year 54 Bytes per order

line 54 GB per year + additional data - compression

Transaction RateAvg: 32 orders per s Peak rate:

Thousands/s+ inquiries

IntelTera Scale InitiativeServer with several

TB main memoryWe just ordered one

from Dell for 49 K Euro

Main Memory capacity will grow faster than Customers‘ Needs

Cf. RAMcloud-project at StanfordOusterhoud et al.

Page 6: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Leistungsengpässe: Profiling eines klassischen Datenbanksystems

Page 7: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

7

Widerholung: Speicherhierarchie

Register

(L1/L2/L3)

Cache

Hauptspeicher

Plattenspeicher

Archivspeicher

Page 8: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

8

Überblick: Speicherhierarchie

Register

Cache

Hauptspeicher

Plattenspeicher

Archivspeicher

1 – 8 ByteCompiler

8 – 128 ByteCache-Controller

4 – 64 KBBetriebssystem

Benutzer

Page 9: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

9

Überblick: Speicherhierarchie

1-10ns

Register

10-100ns

Cache

100-1000ns

Hauptspeicher

10 ms

Plattenspeicher

sec

Archivspeicher

Zugriffslücke

105

Page 10: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

10

Überblick: Speicherhierarchie

1-10ns

Register

10-100ns

Cache

100-1000ns

Hauptspeicher

10 ms

Plattenspeicher

sec

Archivspeicher

Zugriffslü

cke

105

Kopf (1min)

Raum (10 min)

München (1.5h)

Pluto (2 Jahre)

Andromeda

(2000 Jahre)

Page 11: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...
Page 12: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...
Page 13: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Row Store versus Column Store

13

Page 14: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Row Store versus Column Store

14

Page 15: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Anfragebearbeitung

15

Page 16: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Komprimierung

16

Page 17: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Datenstrukturen einer Hauptspeicher-Datenbank

Page 18: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Row-Store-Format

Page 19: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Column-Store-Format

Page 20: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Column-Store-Format (cont‘d)

Page 21: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Einfügeoperation eines Tupels

Insert into Verkaeufe values (12, 007, 4711, 27.50)

Page 22: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Anfragen

Page 23: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Hybrides Speichermodell

Page 24: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Anfragebearbeitung

Page 25: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Anwendungsoperationen in der Datenbank: Stored Procedures

Page 26: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...
Page 27: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Snapshots für Anfragen

OLTP

Snapshot der Haupt-Datenbank

Haupt-Datenbank

OLAP

Page 28: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Update Staging: In vielen Systemen verwendet, zB. NewDB von SAP

Page 29: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Scan-only Datenbanken: ISAO von IBM oder Crescando von der ETHZ

Page 30: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Ursprüngliches Schattenspeicher-Verfahren: Lorie77 für IBM System R

Page 31: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Copy on Write

Update aa‘

2 µs

Page 32: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Snapshotting via fork-ing: Details

Page 33: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Snapshot Maintenance: copy on write

Page 34: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Fast because of Hardware-Support: MMU

Page 35: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

OLAP Queries on Tx-Consistent Snapshots

Page 36: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Multiple Query Sessions

Page 37: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Synchronization-Assertions Serializability of the OLTP Transactions

What else if executed serially We support full ACID see coming slides

Snapshot isolation of the OLAP queriesMulti-version mixed synchronization methodSeveral OLAP queries form one Tx = OLAP SessionBernstein, Hadzilacos, Goodman: Chapter 5.5

Page 38: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Kompaktifizierung: Motivation

Page 39: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Kompaktifizierung der Datenbank

Page 40: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Invalidierung gefrorener Datenobjekte

Page 41: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Transaktionsverwaltung: serielle Ausführung auf Partitionen

Page 42: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Snapshot used for Tx-consistentBackup

Page 43: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Logging the Transaction Processing

To Storage Server via 10 Gb/s rDMA Interface

(e.g. Myrinet or Infiniband)

Page 44: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Isolation von OLAP und OLTP

Page 45: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Tentative Ausführung langer Transaktionen

Page 46: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

•Stand-By for OLTP

•Active for OLAP•Possible for Backup

High Availability &Load Balancing

Page 47: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

A B C D E F

AB

CD

EF

Row

-Sto

re

Column-Store

Page 48: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Indexstrukturen für Hauptspeicher-Datenbanken Radix-Baum / Trie / Präfixbaum

Page 49: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Idee des Adaptiven Radix-Baums ART

Page 50: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Adaptive Knoten des ART-Baums

Page 51: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Join-Berechnung Cache-Lokalität

Mehrkern-Parallelität

NUMA-Berücksichtigung

Synchronisations-freie Parallelität

Page 52: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Grundidee des hoch-parallelen Sort/Merge-Joins

Page 53: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Bereichspartitionierung

Page 54: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Hochparallel Bereichs/Radix-Partitionierung

Page 55: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Paralleler Radix-Join

Page 56: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Mehrfache Partitionierung des Radix-Joins: Cache-Lokalität

Page 57: Hauptspeicher- Datenbanksysteme Hardware-Entwicklungen Column- versus Row-Store...

Hash-Join-Teams: Globale Hashtabelle