Silhouette: Leveraging Consistency Mechanisms to Detect Bugs in Persistent Memory-Based File Systems
Grants: NSF grants DGE-2146354 and FSU Research Foundation
PIs: Bing Jiao, Florida State University Ashvin Goel, University of Toronto An-I Andy Wang, Florida State University
Writing file system code for persistent memory is challenging because writes may not be propagated to persistent memory in the correct order, resulting in inconsistency after crashes. Theoretically, we want to examine crashed system images resulting from all possible persistence orderings of pending writes, but this search space grows exponentially as the number of pending writes increases. Existing systems use sampling to trim this search space by skipping analyses for classes of writes, resulting in missing opportunities to detect bugs.
We introduced the Silhouette framework, which leverages the observation that file systems tend to use a few common consistency mechanisms (e.g., journal) to persist data. Therefore, instead of exploring the persistence ordering constraints of individual writes, we explored the ordering constraints at a higher level of persistence phases in common consistency mechanisms. Once we have verified that these mechanisms are correct, we only need to examine the remaining writes that are not protected by these mechanisms.
Compared to the state of the art, our solution reduced the search space by 3,300x, accelerated the bug-finding process by 10x, and found all bugs discovered by existing systems and 15 new bugs not previously reported.
Figure 1: Undo Journal Invariants.
Figure 2: Mapping Low-level Stores to High-level Consistency Mechanisms.
Publications
- Jiao25
- Bing Jiao, Ashvin Goel, and An-I Andy Wang. Silhouette: Leveraging Consistency Mechanisms to Detect Bugs in Persistent Memory-Based File Systems. Proceedings of the 23rd USENIX Conference on File and Storage Technologies (FAST), 2025.
Presentations
Bing Jiao. Silhouette: Leveraging Consistency Mechanisms to Detect Bugs in Persistent Memory-Based File Systems, slides and video, poster. Presented at the 23rd USENIX Conference on File and Storage Technologies, Santa Clara, CA, February 26, 2025.
Repository
Silhouette. GitHub
This material is based upon work supported by the National Science Foundation under grant no. DGE-2146354. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation, US Department of Education, the Philanthropic Education Organization, or the FSU Research Foundation.