![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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042923/5f722ddba221ac73085b88a7/html5/thumbnails/32.jpg)
3232