Snapshot: Fast, Userspace Crash Consistency for CXL and PM Using msync
Suyash Mahar, Mingyao Shen, Terence Kelly, Steven Swanson

TL;DR
Snapshot offers a fast, userspace crash consistency solution for CXL and persistent memory, reducing overhead and improving performance by tracking updates in DRAM and syncing only on msync() calls.
Contribution
It introduces Snapshot, a novel compiler-assisted userspace implementation of FAMS that enhances crash consistency with lower overhead and better performance.
Findings
Achieves 1.2× speedup over PMDK on YCSB benchmark.
Outperforms conventional msync() significantly on CXL SSD.
Kyoto Cabinet commits are up to 8× faster with Snapshot.
Abstract
Crash consistency using persistent memory programming libraries requires programmers to use complex transactions and manual annotations. In contrast, the failure-atomic msync() (FAMS) interface is much simpler as it transparently tracks updates and guarantees that modified data is atomically durable on a call to the failure-atomic variant of msync(). However, FAMS suffers from several drawbacks, like the overhead of msync() and the write amplification from page-level dirty data tracking. To address these drawbacks while preserving the advantages of FAMS, we propose Snapshot, an efficient userspace implementation of FAMS. Snapshot uses compiler-based annotation to transparently track updates in userspace and syncs them with the backing byte-addressable storage copy on a call to msync(). By keeping a copy of application data in DRAM, Snapshot improves access latency. Moreover, with…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Data Storage Technologies · Distributed systems and fault tolerance · Parallel Computing and Optimization Techniques
