Engineering the Future of Software
16–18 October 2017: Conference & Tutorials
18–19 October 2017: Training
London, UK

Planning ahead for persistent memory

Rob Dickinson (
10:4512:15 Tuesday, 17 October 2017
Location: Blenheim Room - Palace Suite
Secondary topics:  Anti-Pattern, Best Practice, Overview, Theoretical
Average rating: ****.
(4.33, 6 ratings)

Prerequisite Knowledge

  • Familiarity with software development

What you'll learn

  • Understand persistent memory basic concepts, how it differs from other traditional types of storage, and how to think about persistent memory in terms of planning your own research initiatives


On the surface, adapting software to use persistent memory seems obvious. After all, persistent memory is simply fast memory that maintains state when the power goes out, like an SSD. But unlike SSDs, the rise of persistent memory inherently challenges long-held ideas and conventions about how software works. While the dust has yet to settle, some basic guidelines about how to best enable software to use persistent memory have become clear. Rob Dickinson presents four key ideas about persistent memory drawn from his experience enabling software for persistent memory over the last year.

  1. Persistent memory is not exactly like memory nor storage: Persistent memory has different performance, capacity, cost, and wear characteristics compared with other types of memory and storage. Rob reviews the new “latency diet” that applications should expect when persistent memory is present.
  2. Persistent memory will be used in concert with other memory and storage technologies: Because persistent memory has unique characteristics, expect hybrid architectures that span all available tiers of storage. Rob presents two examples where hybrids outperform more simplistic approaches.
  3. Persistent memory supports a variety of enablement models: Application architects have a wide range of choices for how to use persistent memory in an application. The most exciting model is to provide raw byte-addressable memory directly into userspace, but this is also the most disruptive. Rob reviews several approaches for enabling use of persistent memory, including some easy ways to get started.
  4. Persistent memory re-exposes some classic problems: The more layers of software that we strip away to improve performance, the more effort has to be spent by the application to do things that were transparent to the application before. Rob explores some of these basic problems, including memory allocation, position independence, type safety, and transactions, as well as efforts underway to provide solutions.
Photo of Rob Dickinson

Rob Dickinson

Over the last 20 years, Rob has led development of monitoring and performance solutions at Xaffire, Dell Software and Intel. He founded to strike a devops-friendly balance between deep API monitoring and the latest privacy and security standards. When Rob isn’t geeking out, he’s camping and snowboarding with his wife and three kids in Colorado.