155
© The Author(s) 2020
S. Scargall, Programming Persistent Memory, https://doi.org/10.1007/978-1-4842-4932-1_10
CHAPTER 10
Volatile Use of Persistent
Memory
Introduction
This chapter discusses how applications that require a large quantity of volatile memory
can leverage high-capacity persistent memory as a complementary solution to dynamic
random-access memory (DRAM).
Applications that work with large data sets, like in-memory databases, caching
systems, and scientific simulations, are often limited by the amount of volatile
memory capacity available in the system or the cost of the DRAM required to load a
complete data set. Persistent memory provides a high capacity memory tier to solve
these memory-hungry application problems.
In the memory-storage hierarchy (described in Chapter 1), data is stored in tiers with
frequently accessed data placed in DRAM for low-latency access, and less frequently
accessed data is placed in larger capacity, higher latency storage devices. Examples of
such solutions include Redis on Flash (https://redislabs.com/redis-enterprise/
technology/redis-on-flash/) and Extstore for Memcached (https://memcached.org/
blog/extstore-cloud/).
For memory-hungy applications that do not require persistence, using the larger
capacity persistent memory as volatile memory provides new opportunities and
solutions.
Using persistent memory as a volatile memory solution is advantageous when an
application:
• Has control over data placement between DRAM and other storage
tiers within the system
• Does not need to persist data
© The Author(s) 2020
S. Scargall, Programming Persistent Memory, https://doi.org/10.1007/978-1-4842-4932-1_10
CHAPTER 10
Volatile Use of Persistent
Memory
Introduction
This chapter discusses how applications that require a large quantity of volatile memory
can leverage high-capacity persistent memory as a complementary solution to dynamic
random-access memory (DRAM).
Applications that work with large data sets, like in-memory databases, caching
systems, and scientific simulations, are often limited by the amount of volatile
memory capacity available in the system or the cost of the DRAM required to load a
complete data set. Persistent memory provides a high capacity memory tier to solve
these memory-hungry application problems.
In the memory-storage hierarchy (described in Chapter 1), data is stored in tiers with
frequently accessed data placed in DRAM for low-latency access, and less frequently
accessed data is placed in larger capacity, higher latency storage devices. Examples of
such solutions include Redis on Flash (https://redislabs.com/redis-enterprise/
technology/redis-on-flash/) and Extstore for Memcached (https://memcached.org/
blog/extstore-cloud/).
For memory-hungy applications that do not require persistence, using the larger
capacity persistent memory as volatile memory provides new opportunities and
solutions.
Using persistent memory as a volatile memory solution is advantageous when an
application:
• Has control over data placement between DRAM and other storage
tiers within the system
• Does not need to persist data
