141
© The Author(s) 2020
S. Scargall, Programming Persistent Memory, https://doi.org/10.1007/978-1-4842-4932-1_9
CHAPTER 9
pmemkv: A Persistent InMemory Key-Value Store
Programming persistent memory is not easy. In several chapters we have described
that applications that take advantage of persistent memory must take responsibility
for atomicity of operations and consistency of data structures. PMDK libraries like
libpmemobj are designed with flexibility and simplicity in mind. Usually, these are
conflicting requirements, and one has to be sacrificed for the sake of the other. The truth
is that in most cases, an API’s flexibility increases its complexity.
In the current cloud computing ecosystem, there is an unpredictable demand
for data. Consumers expect web services to provide data with predicable low-latency
reliability. Persistent memory’s byte addressability and huge capacity characteristics
make this technology a perfect fit for the broadly defined cloud environment.
Today, as greater numbers of devices with greater levels of intelligence are
connected to various networks, businesses and consumers are finding the cloud to
be an increasingly attractive option that enables fast, ubiquitous access to their data.
Increasingly, consumers are fine with lower storage capacity on endpoint devices in
favor of using the cloud. By 2020, IDC predicts that more bytes will be stored in the
public cloud than in consumer devices (Figure 9-1).
Figure 9-1. Where is data stored? Source: IDC White Paper – #US44413318
© The Author(s) 2020
S. Scargall, Programming Persistent Memory, https://doi.org/10.1007/978-1-4842-4932-1_9
CHAPTER 9
pmemkv: A Persistent InMemory Key-Value Store
Programming persistent memory is not easy. In several chapters we have described
that applications that take advantage of persistent memory must take responsibility
for atomicity of operations and consistency of data structures. PMDK libraries like
libpmemobj are designed with flexibility and simplicity in mind. Usually, these are
conflicting requirements, and one has to be sacrificed for the sake of the other. The truth
is that in most cases, an API’s flexibility increases its complexity.
In the current cloud computing ecosystem, there is an unpredictable demand
for data. Consumers expect web services to provide data with predicable low-latency
reliability. Persistent memory’s byte addressability and huge capacity characteristics
make this technology a perfect fit for the broadly defined cloud environment.
Today, as greater numbers of devices with greater levels of intelligence are
connected to various networks, businesses and consumers are finding the cloud to
be an increasingly attractive option that enables fast, ubiquitous access to their data.
Increasingly, consumers are fine with lower storage capacity on endpoint devices in
favor of using the cloud. By 2020, IDC predicts that more bytes will be stored in the
public cloud than in consumer devices (Figure 9-1).
Figure 9-1. Where is data stored? Source: IDC White Paper – #US44413318
