How to use Persistent Memory in your Database

Persistent or Non Volatile Memory (PMEM or NVM) has recently become commercially available under several configurations with different purposes and goals. Despite the attention to the topic, we are not aware of a comprehensive empirical analysis of existing relational database engines under different PMEM configurations. Such a study is important to understand the performance implications of the various hardware configurations and how different DB engines can benefit from them. To this end, we analyze three different engines (PostgreSQL, MySQL, and SQLServer) under common workloads (TPC-C and TPC-H) with all possible PMEM configurations supported by Intel’s Optane NVM devices (PMEM as persistent memory in AppDirect mode and PMEM as volatile memory in Memory mode). Our results paint a complex picture and are not always intuitive due to the many factors involved. Based on our findings, we provide insights on how the different engines behave with PMEM and which configurations and queries perform best. Our results show that using PMEM as persistent storage usually speeds up query execution, but with some caveats as the I/O path is not fully optimized. Additionally, using PMEM in Memory mode does not offer any performance advantage despite the larger volatile memory capacity. Through the extensive coverage of engines and parameters, we provide an important starting point for exploiting PMEM in databases and tuning relational engines to take advantage of this new technology.

[1]  Jaeyoung Do,et al.  Lessons learned from the early performance evaluation of Intel optane DC persistent memory in DBMS , 2020, DaMoN.

[2]  Viktor Leis,et al.  Persistent Memory I/O Primitives , 2019, DaMoN.

[3]  Yoshiyasu Doi,et al.  Managing Non-Volatile Memory in Database Systems , 2018, SIGMOD Conference.

[4]  Adrian Jackson,et al.  An early evaluation of Intel's optane DC persistent memory module and its impact on high-performance scientific applications , 2019, SC.

[5]  Samuel Madden,et al.  Large-scale in-memory analytics on Intel® Optane™ DC persistent memory , 2020, DaMoN.

[6]  Ryan Johnson,et al.  Scalable Logging through Emerging Non-Volatile Memory , 2014, Proc. VLDB Endow..

[7]  Lin Ma,et al.  Self-Driving Database Management Systems , 2017, CIDR.

[8]  Stratis Viglas,et al.  REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures , 2015, Proc. VLDB Endow..

[9]  Qin Jin,et al.  Persistent B+-Trees in Non-Volatile Main Memory , 2015, Proc. VLDB Endow..

[10]  Gang Liu,et al.  Zen: a High-Throughput Log-Free OLTP Engine for Non-Volatile Main Memory , 2021, Proc. VLDB Endow..

[11]  Tilmann Rabl,et al.  Drop It In Like It's Hot: An Analysis of Persistent Memory as a Drop-in Replacement for NVMe SSDs , 2021, DaMoN.

[12]  Xiao Liu,et al.  Basic Performance Measurements of the Intel Optane DC Persistent Memory Module , 2019, ArXiv.

[13]  Ismail Oukid,et al.  Evaluating Persistent Memory Range Indexes , 2019, Proc. VLDB Endow..

[14]  Jichuan Chang,et al.  Software-Defined Far Memory in Warehouse-Scale Computers , 2019, ASPLOS.

[15]  Andrew Pavlo,et al.  Spitfire: A Three-Tier Buffer Manager for Volatile and Non-Volatile Memory , 2021, SIGMOD Conference.

[16]  Andrew Pavlo,et al.  Write-Behind Logging , 2016, Proc. VLDB Endow..

[17]  Mihnea Andrei,et al.  SAP HANA Adoption of Non-Volatile Memory , 2017, Proc. VLDB Endow..

[18]  Steven Swanson,et al.  An Empirical Guide to the Behavior and Use of Scalable Persistent Memory , 2019, FAST.

[19]  Ivy B. Peng,et al.  System evaluation of the Intel optane byte-addressable NVM , 2019, MEMSYS.

[20]  Andrew Pavlo,et al.  How to Build a Non-Volatile Memory Database Management System , 2017, SIGMOD Conference.

[21]  Joy Arulraj,et al.  Multi-Tier Buffer Management and Storage System Design for Non-Volatile Memory , 2019, ArXiv.

[22]  Andrew Pavlo,et al.  Non-Volatile Memory Database Management Systems , 2019, Non-Volatile Memory Database Management Systems.

[23]  Sanjay Kumar,et al.  System software for persistent memory , 2014, EuroSys '14.

[24]  Frank Mueller,et al.  Performance characterization of a DRAM-NVM hybrid memory architecture for HPC applications using intel optane DC persistent memory modules , 2019, MEMSYS.

[25]  Tilmann Rabl,et al.  Maximizing Persistent Memory Bandwidth Utilization for OLAP Workloads , 2021, SIGMOD Conference.

[26]  Ismail Oukid,et al.  Bridging the Latency Gap between NVM and DRAM for Latency-bound Operations , 2019, DaMoN.

[27]  Subramanya Dulloor,et al.  Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems , 2015, SIGMOD Conference.