Providing Atomic Sector Updates in Software for Persistent Memory


One Line Summary

A discussion of the workings, and performance and scalability problems of the 'BTT' algorithm to provide atomic sector updates.


Persistent or non volatile memory technologies are often heralded as the next big leap in storage technologies. A lot of existing software can reap the benefits of these technologies if the storage were presented as a standard block device. Traditionally, software expects that sector writes will never be torn – either a sector makes it to storage in its entirety, or not at all. Since persistent memory is inherently byte addressable, simply presenting a persistent memory range as a block device using drivers like ‘brd’ or ‘pmem’ does not provide us with this atomicity guarantee. In this presentation, Vishal Verma will present a mechanism to solve the sector tearing problem in software using a lightweight system called the Block Translation Table (BTT), which uses existing software constructs to solve some of the unique problems of providing atomic update semantics for byte addressable memory. He will also talk about performance and scalability hotspots and discuss ideas the audience may have.


memory, persistent, atomicity, btt

Presentation Materials