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

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

Embed Size (px)

Citation preview

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