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 (Intel)
10:4512:15 Tuesday, 17 October 2017
Location: Blenheim Room - Palace Suite Level: Beginner
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


Rob Dickinson is a systems architect and software engineer on Intel’s NVML development team as well as the technical lead for pmemkv, a key-value datastore optimized for persistent memory. Previously, Rob led development of end-user monitoring products at Quest Software and Dell Software but won’t admit to how many startups it took to get there. Rob has never met a programming language he didn’t like. He lives with his wife, three kids, and snowboard collection in Boulder, Colorado.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)