database systems do not scale to 1000 cpu cores and...

69
Database Systems Do Not Scale to 1000 CPU Cores And Other Tales of the Macabre @andy_pavlo

Upload: votram

Post on 28-Apr-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Database Systems Do Not Scale to 1000 CPU Cores And Other Tales of the Macabre

@andy_pavlo

Page 2: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

2

Three million children die per year due to poor nutrition.

Source: http://www.wfp.org/hunger/stats

Page 3: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

3

Three days after you die, stomach enzymes start to digest you.

Source: http://discovermagazine.com/2006/sep/10-20thingsdeath

Page 4: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

4

Everyone in this room will be dead in 65 years.

Source: http://discovermagazine.com/2006/sep/10-20thingsdeath

Page 5: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

5

Database systems cannot scale to 1000 CPU cores.

Source: http://www.vldb.org/pvldb/vol8/p209-yu.pdf

Page 6: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 6

DBx1000 on Graphite Simulator Write-Intensive Workload High Contention

Page 7: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 6

DBx1000 on Graphite Simulator Write-Intensive Workload High Contention

Page 8: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Why This Matters

• The era of single-core CPU speed-up is over. • Database applications are getting more

complex and larger. • Existing DBMSs are unable to take advantage of

future “many-core” CPU architectures.

7

Page 9: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Today’s Talk

• Transaction Processing • Experimental Platform • Evaluation & Discussion

8

Page 10: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Today’s Talk

• Transaction Processing • Experimental Platform • Evaluation & Discussion

8

Page 11: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

9

Transaction Processing

Page 12: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

On-line Transaction Processing

• Fast operations that ingest new data and then update state using ACID transactions.

• Transaction Example: – Send $50 from user A to user B

10

Page 13: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Concurrency Control

• Allows transactions to access a database in a multi-programmed fashion while preserving the illusion that each of them is executing alone on a dedicated system.

• Provides Atomicity + Isolation in ACID

11

Page 14: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Concurrency Control

• Two-Phase Locking (Pessimistic) • Timestamp Ordering (Optimistic)

12

Page 15: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B)

Shrinking Phase

LOCK(A) LOCK(B)

Growing Phase

Page 16: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 17: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 18: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 19: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 20: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 21: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Transaction #2

BEGI

N

COMM

IT

LOCK(B) LOCK(A) WRITE(A) UNLOCK(A) UNLOCK(B) WRITE(B)

Two-Phase Locking (2PL) 13

Transaction #1 BE

GIN

COMM

IT

LOCK(A) LOCK(B) UNLOCK(A) UNLOCK(B) READ(A) WRITE(B) LOCK(A) LOCK(B)

Page 22: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Two-Phase Locking (2PL)

• Deadlock Detection (DEADLOCK) • Non-waiting Deadlock Prevention (NO_WAIT) • Wait-and-Die Deadlock Prevention (WAIT_DIE)

14

Page 23: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10000

10000

• • •

10000

Page 24: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10000

10000

• • •

10000

Page 25: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10000

10000

• • •

10000

10001

Page 26: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10001

10000

• • •

10000

10001

Page 27: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10001

10001

• • •

10000

10001

Page 28: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10001

10001

• • •

10000

10001

Page 29: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10001

10001

• • •

10005

10001

Page 30: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Record Read Timestamp

Write Timestamp

A

B 10000

Timestamp Ordering (T/O) 15

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • •

10001

10001

• • •

10005

10001

Page 31: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Timestamp Ordering (T/O)

• Basic T/O (TIMESTAMP) • Multi-Version Concurrency Control (MVCC) • Optimistic Concurrency Control (OCC)

16

Page 32: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

Record Write Timestamp

A1 10000

B1 10000

Page 33: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

Page 34: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

Txn Read Set

Write Set

10001 { A1 }

Page 35: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

10001 B2

Txn Read Set

Write Set

10001 { A1 } { B2 }

Page 36: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

10001 B2

Txn Read Set

Write Set

10001 { A1 } { B2 }

Page 37: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

10001 B2

10003 A2

Txn Read Set

Write Set

10001

10003

{ A1 } { B2 }

{ A2 } { B2 }

Page 38: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Multi-Version CC 17

Transaction #1 BE

GIN

COMM

IT

READ(A) WRITE(B) WRITE(A)

• • • • • • •

10001

Record Write Timestamp

A1 10000

B1 10000

10001 B2

10003 A2

Txn Read Set

Write Set

10001

10003

{ A1 } { B2 }

{ A2 } { B2 }

Page 39: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Concurrency Control Schemes 18

DL_DETECT NO_WAIT WAIT_DIE

2PL w/ Deadlock Detection 2PL w/ Non-waiting Prevention 2PL w/ Wait-and-Die Prevention

TIMESTAMP MVCC OCC

Basic T/O Algorithm Multi-Version T/O Optimistic Concurrency Control

Page 40: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Concurrency Control Schemes 18

DL_DETECT NO_WAIT WAIT_DIE

2PL w/ Deadlock Detection 2PL w/ Non-waiting Prevention 2PL w/ Wait-and-Die Prevention

TIMESTAMP MVCC OCC

Basic T/O Algorithm Multi-Version T/O Optimistic Concurrency Control

Page 41: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Concurrency Control Schemes 18

DL_DETECT NO_WAIT WAIT_DIE

2PL w/ Deadlock Detection 2PL w/ Non-waiting Prevention 2PL w/ Wait-and-Die Prevention

TIMESTAMP MVCC OCC

Basic T/O Algorithm Multi-Version T/O Optimistic Concurrency Control

Page 42: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

19

Evaluation Testbed

Page 43: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

20

No DBMS supports multiple CC schemes.

No CPU supports 1000 cores.

Page 44: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Experimental Platform 21

DBx1000

Worker Threads

Page 45: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Experimental Platform 21

DBx1000 Graphite Simulator

Core

L2

L1

Worker Threads

Page 46: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Experimental Platform 21

DBx1000 Graphite Simulator

Compute Cluster

Core

L2

L1

Worker Threads

Page 47: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Target Workload

• Yahoo! Cloud Serving Benchmark (YCSB) – 20 million tuples – Each tuple is 1KB (total database is ~20GB)

• Each transactions reads/modifies 16 tuples. • Varying skew in transaction access patterns. • Serializable isolation level.

22

Page 48: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

23

Evaluation

Page 49: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 24

DBx1000 on Graphite Simulator Read-Only Workload No Contention

Page 50: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 25

DBx1000 on Graphite Simulator Write-Intensive Workload Medium Contention

Page 51: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 26

DBx1000 on Graphite Simulator Write-Intensive Workload High Contention

Page 52: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB //

Time % Breakdown (512 Cores)

26 DBx1000 on Graphite Simulator Write-Intensive Workload High Contention

Page 53: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Bottlenecks

• Lock Thrashing – DL_DETECT, WAIT_DIE

• Timestamp Allocation – All T/O algorithms + WAIT_DIE

• Memory Allocations – OCC + MVCC

27

Page 54: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Bottlenecks

• Lock Thrashing – DL_DETECT, WAIT_DIE

• Timestamp Allocation – All T/O algorithms + WAIT_DIE

• Memory Allocations – OCC + MVCC

27

Page 55: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Locking Thrashing

• Each transaction waits longer to acquire locks, causing other transactions to wait a longer to acquire locks.

• The perfect workload is where transactions acquire locks in primary key order.

28

Page 56: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 29

DBx1000 with 2PL DL_DETECT Write-Intensive Workload No Deadlocks (Ordered Lock Acquisition)

Page 57: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 29

DBx1000 with 2PL DL_DETECT Write-Intensive Workload No Deadlocks (Ordered Lock Acquisition)

Page 58: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

YCSB // 29

DBx1000 with 2PL DL_DETECT Write-Intensive Workload No Deadlocks (Ordered Lock Acquisition)

Page 59: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

30

Page 60: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

30

Page 61: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

END @andy_pavlo

Page 62: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

32

Maybe it’s time for me to get my life back together…

Page 63: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Hardware/Software Co-Design

• Bottlenecks can only be overcome through new hardware-level optimizations: – Hardware-accelerated Lock Sharing – Asynchronous Memory Copying – Decentralized Memory Controller.

33

Page 64: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

Next Steps

• Evaluating other main bottlenecks in DBMSs: – Logging + Recovery – Indexes

• Extend DBx1000 to support distributed concurrency control algorithms.

34

Page 65: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

35

Andy Pavlo

Mike Stonebraker

Srini Devadas

Xiangyao Yu

http://cmudb.io/1000cores

Page 66: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

http://15445.courses.cs.cmu.edu

15-445/645 Database Systems

Page 67: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

http://pelotondb.io

Page 68: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And
Page 69: Database Systems Do Not Scale to 1000 CPU Cores and …15418.courses.cs.cmu.edu/spring2017content/lectures/27_dbscaling/... · Database Systems Do Not Scale to 1000 CPU Cores And

END @andy_pavlo