non-volatile memory (nvm) - github pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf ·...

32

Upload: others

Post on 26-Jul-2020

25 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

1

Page 2: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

2

NON-VOLATILE MEMORY (NVM)2

NVMDRAM SSD

Like DRAM, low latency loads and stores

Like SSD, persistent writes and high density

Page 3: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

33

Why we think NVM is happening for real this time?

Page 4: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

4

#1: INDUSTRY STANDARDS4

• Standard definitions of NVM technologies – Form factors (e.g., JEDEC classification)– Interface specifications (e.g., NVM Express over Fabrics)

JUNE 2016

Page 5: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

5

#2: OPERATING-SYSTEM SUPPORT5

• Growing OS support for NVM– Linux 4.8, e.g. NVM Express over Fabrics library– Windows 10, e.g. Direct access to files on NVM

OCTOBER 2016

Page 6: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

6

#3: PROCESSOR SUPPORT6

• Intel’s Kaby Lake processor– Support for 3D XPoint NVM technology– ISA updates for NVM management

JANUARY 2017

Page 7: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

77

How can we leverage NVM in a DBMS?

Page 8: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

8

• Treat NVM like a faster SSD

8

DRAM

NVM

DBMSDesigned to minimizerandom writes to NVM

#1: DISK-ORIENTED DBMSs

But, NVM supports fast random writes

Page 9: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

9

#2: MEMORY-ORIENTED DBMSs

• Treat NVM as extended memory

9

DRAM NVM

DBMS Designed to overcome the volatility of memory

But, writes to NVM are persistent

Page 10: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

10

DBMSOVERVIEW

DBMSOVERVIEW

LOGGING & RECOVERY

DATA PLACEMENT

LOGGING & RECOVERY

DATA PLACEMENT

10

Page 11: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

11

NVM-AWARE DBMS OVERVIEW11

EXECUTION ENGINE

STORAGEMANAGER

ACCESSINTERFACES

PLANEXECUTOR

QUERYOPTIMIZER

SQLEXTENSIONS

LOGGING &RECOVERY

DATAPLACEMENT

ACCESSMETHODS

ALLOCATORINTERFACE

FILESYSTEMINTERFACE

HOW TO BUILD A NON-VOLATILE MEMORY DBMS UNDER SUBMISSION

Page 12: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

12

#1: ACCESS INTERFACES12

• Allocator Interface– Provide a durability primitive– Prevent persistent memory leaks

• Filesystem Interface– Direct access to files on NVM– Avoid extra copy in page cache

Page 13: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

13

#2: STORAGE MANAGER13

• Logging and Recovery– Leverage NVM’s ability to support fast random writes– Enable instantaneous recovery from failures

• Access Methods– Read and write latencies of NVM are asymmetric– Write-limited access methods such as B+tree

Page 14: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

14

#3: EXECUTION ENGINE14

• Plan Executor– Write-limited sorting algorithm– Makes use of selection sort which takes multiple read passes

• Query Optimizer– Differentiate between reads and writes in cost model– Factor in byte-addressability of NVM

Page 15: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

1515

DBMSOVERVIEW

PRESENT:NVM-AWARE

DBMS

DATA PLACEMENT

LOGGING & RECOVERY

Page 16: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

16

WRITE-AHEAD LOGGING16

Table Heap

LogCheckpoints

1

2 3NVM

DataDataCan we avoid duplicating data in the log and the checkpoints ?

Page 17: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

17

WRITE-BEHIND LOGGING

• Write-ahead log serves two purposes– Transform random database writes into sequential log writes– Support transaction rollback

• NVM supports fast random writes– Directly write data to the multi-versioned database– Later, record metadata about committed txns in log

17

LET’S TALK ABOUT STORAGE AND RECOVERY METHODS FORNON-VOLATILE MEMORY DATABASE SYSTEMSSIGMOD 2015

WRITE-BEHIND LOGGINGVLDB 2016

Page 18: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

18

WRITE-BEHIND LOGGING18

Database2

Database

Log

1

3

DRAM

NVM

MetaData Data

Page 19: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

19

METADATA FOR INSTANT RECOVERY

• Record failed group commit timestamp gap in log– Use it to ignore effects of uncommitted transactions

19

Group Commit

Time

(T1, T2) (T1, T2)

Garbage Collection

List of gaps

T1 T4T3T2

Write-behind logging enables instant recovery and avoids data duplication

Page 20: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

20

EVALUATION

• Compare logging protocols in Peloton– Write-Ahead logging– Write-Behind logging

• TPC-C benchmark• Storage devices– Solid-state drive– Non-volatile memory

20

Page 21: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

21

RECOVERY TIME21

1

10

100

1,000

Solid State Drive Non-Volatile Memory

Write-Behind LoggingWrite-Ahead Logging

Recovery Time(sec) 30x250x

Page 22: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

22

THROUGHPUT22

Write-Behind LoggingWrite-Ahead Logging

Throughput(txn/sec)

1

100

10,000

Solid State Drive Non-Volatile Memory

8x1.3x

Page 23: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

2323

DBMSOVERVIEW

LOGGING & RECOVERY

FUTURE:ANALYTICS

ON NVM

DATA PLACEMENT

Page 24: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

24

NVM-AWARE DATA PLACEMENT

• Support analytics on a multi-tier storage hierarchy– Cost of first-generation NVM devices– DRAM + NVM + SSD

24

Page 25: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

2525

When should the DBMS migrate data between devices in storage hierarchy?

Page 26: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

26

THREE-TIER STORAGE HIERARCHY26

Database2

Database

Log

1

3

DRAM

NVM

Database4

SSD

Data

Data

MetaData

Page 27: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

27

DATA PLACEMENT

• Can directly read data from NVM– No need to copy data over to DRAM for reading

• Cache hot data in DRAM• Dynamically migrate cold data to SSD– And bring back warm data to NVM

27

DATA PLACEMENT IN NON-VOLATILE MEMORY DATABASE SYSTEMS WORK IN PROGRESS

Page 28: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

28

THREE-TIER STORAGE HIERARCHY28

0

60,000

120,000

Read-Heavy Workload

Write-Heavy Workload

Throughput(txn/sec)

10% on NVM 90% on NVM

8x3x

Page 29: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

2929

PAST:EXISTINGSYSTEMS

PRESENT:NVM-ORIENTED

DBMS

FUTURE:ANALYTICS

ON NVM

DBMSOVERVIEW

LOGGING & RECOVERY

DATA PLACEMENT

Page 30: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

30

THE HOME STRETCH

• #1: NVM-aware B+tree (with Microsoft Research)– Write-limited design for NVM

• #2: Data placement in multi-tier storage hierarchy– Data migration policies

• #3: Replication– NVM Express over Fabrics library

30

Page 31: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

3131

Page 32: NON-VOLATILE MEMORY (NVM) - GitHub Pagesmitdbg.github.io/nedbday/2017/talks/arulraj.pdf · NON-VOLATILE MEMORY DATABASE SYSTEMS SIGMOD 2015 WRITE-BEHIND LOGGING VLDB 2016. 18 WRITE-BEHIND

3232