  Non-volatile memory (NVM) is an emerging technology, which has the
persistence characteristics of large capacity storage devices(e.g., HDDs and
SSDs), while providing the low access latency and byte-addressablity of
traditional DRAM memory. This unique combination of features open up several
new design considerations when building database management systems (DBMSs),
such as replacing DRAM (as the main working space memory) or block devices (as
the persistent storage), or complementing both at the same time for several
DBMS components (such as access methods,storage engine, buffer management,
logging/recovery, etc).
  However, interacting with NVM requires changes to application software to
best use the device (e.g. mmap and clflush of small cache lines instead of
write and fsync of large page buffers). Before introducing (potentially major)
code changes to the DBMS for NVM, developers need a clear understanding of NVM
performance in various conditions to help make better design choices.
  In this paper, we provide extensive performance evaluations conducted with a
recently released NVM device, Intel Optane DC Persistent Memory (PMem), under
different configurations with several micro-benchmark tools. Further, we
evaluate OLTP and OLAP database workloads (i.e., TPC-C and TPC-H) with
Microsoft SQL Server 2019 when using the NVM device as an in-memory buffer pool
or persistent storage. From the lessons learned we share some recommendations
for future DBMS design with PMem, e.g.simple hardware or software changes are
not enough for the best use of PMem in DBMSs.
