Top Banner
Database Systems Do Not Scale to 1000 CPU Cores And Other Tales of the Macabre @andy_pavlo
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

Apr 28, 2018

Download

Documents

votram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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