Lesson 13: Persistent Memory
- discussion thread
- * PMEM background
-
* Linux DAX
Direct Access for Files in Linux -
^ Crash Consistency Basics
From OSTEP book
On readings: Recommended background readings are marked with (^) above. Optional historical or fun readings are marked with (*). If you feel comfortable with the topic already, you may skip these readings.
Notes
The slides from lecture can be found on Canvas.
PM basics
Usually, your RAM is volatile, meaning that if the power goes off, your data is gone. We’ve had persistent storage for a long time (magnetic core, tape, spinning drives, SSDs, and so on). Persistent memory is especially interesting, because we’re essentially exposing storage via a memory interface. When we say that a PM device is byte-addressable, we are really talking about how we interact with it using loads and stores. This is in contrast to the typical storage interface, which is block-oriented.
Differences
Of course, we cannot simply replace all of DRAM with PMEM. This is because their performance characteristics are different. PM devices tend to be a bit slower, but much more dense than DRAM. You can think of PM as on the spectrum between DRAM and SSD. This suggests an intermediate storage layer, essentially deepening the memory hierarchy. How this interacts with the system is something we’ll discuss over the next two sessions.
Other topics we’ll discuss
- Prior NVDIMM tech
- file system and crash consistency basics
- Abstraction via memory-mapped files
- Crash consistency basics and why the ADR matters