Using the Block Translation Table for sector atomicity

Using the Block Translation Table for sector atomicity

Persistent memory based storage is able to perform IO at byte (or more accurately, cache line) granularity. However, we often want to expose such storage as traditional block devices. The block drivers for persistent memory will do exactly this. However, they do not provide any atomicity guarantees. …

Read More
Git Workflow

Git Workflow

Now that we’ve created the GitHub Repository for the PMDK, here’s a more detailed description of the git workflow we’ve chosen. The basic idea is: Current development happens on the master branch Releases are created periodically by tagging After a major release, a stable-1.x …

Read More
NVM Library Overview

NVM Library Overview

[Edit on 2017-12-11: In the years since this entry was written, this work has evolved into PMDK.] Why are we building an NVM Library? Where does it live? How does it work? This blog entry provides some answers, which refer to this picture showing the overall library architecture: Why? The operating …

Read More
Linux Examples

Linux Examples

[Edit on 2017-12-11: The Linux examples are outdated now, look at PMDK instead.] The basic architecture. for exposing persistent memory gives applications a very raw type of access. Applications can load/store directly to the persistence, but then what. What are the interesting problems facing an …

Read More
Crawl, Walk, Run...

Crawl, Walk, Run...

If you can’t fly then run, if you can’t run then walk, if you can’t walk then crawl, but whatever you do you have to keep moving forward. Martin Luther King Jr. This project, as well as the support for persistent memory in various operating systems, can be thought of as a crawl, …

Read More