famus: Failure-atomic msync() in User Space

famus and famus_snap are new user-space library implementations of failure-atomic msync() (FAMS). See the description of the original FAMS concept in the EuroSys 2013 paper by Park et al. and read about subsequent developments in the ACM Queue article.

Source Code

29 November 2019. Released with USENIX ;login: magazine article; see below.
Extensively tested against sudden whole-system power interruptions in December 2019; passes with flying colors.
famus Release 01
22 July 2019. Preliminary release for PIRL.
Discussed in the ACM Queue article.

Further Reading

(forthcoming) Is Persistent Memory Persistent?
Describes a new testbed for subjecting crash consistency mechanisms to sudden whole-system power interruptions and uses it to test the famus_snap library's data integrity guarantees. (Spoiler alert: famus_snap passes.)
Good Old-Fashioned Persistent Memory
USENIX ;login: magazine, Vol. 44 No. 4, Winter 2019
More working example code and a new library implementation of FAMS called famus_snap that leverages filesystem snapshots.
[PDF (from USENIX)] [PDF (local copy)]
[famus_snap source code (from USENIX)] [famus_snap source code (local copy)]
[Errata (from USENIX)] [Errata (local copy)]
Persistent Memory Programming on Conventional Hardware
ACM Queue magazine, Volume 17 Issue 4, July-August 2019
Presents working examples of the persistent memory style of programming on conventional hardware and discusses the famus library.


Tutorial at NVMW 2020, UC San Diego
Sunday 8 March 2020, morning
NVMW was cancelled this year due to corona virus.
Tutorial at USENIX FAST 2020 Conference, Santa Clara, CA
Monday 24 February 2020, 9:00 am to 12:30 pm
"Persistent Memory Programming on Conventional Hardware"
SNIA Storage Developer Conference, 3:05 pm Wed 25 Sept 2019, Santa Clara, CA
[recorded talk] [slides]
"Persistent Memory Programming on Conventional Hardware"
Persistence in Real Life (PIRL), 10:30 am Mon 23 July 2019, UC San Diego
[blog post (summary of talk)] [slides] [recorded talk]


An earlier platform for fault-tolerant distributed computing, "Ken", essentially contains a user-space implementation of FAMS, but Ken is a monolith and its FAMS aspect is intertwined with other features in such a way as not to be readily separable. famus and famus_snap are new clean-slate implementations of FAMS; they are not based on Ken. For a good summary of the history of FAMS, see the ACM Queue article.

$Id: index.html,v 1.18 2020/03/08 02:03:44 tpkelly Exp $