Optimistic Crash Consistency
Modern crash consistency solutions such as journaling and copy-on-write degrade performance considerably (almost an order of magnitude for certain workloads). This forces users to choose between strong crash consistency and high performance. One of the reasons crash consistency is so expensive is because file systems conflate ordering an durability of disk writes: ordering writes requires expensive durability operations such as cache flushes.
The Optimistic File System (OptFS) achieves both high performance and strong crash consistency by decoupling ordering and durability of disk writes. Such decoupling allows OptFS to maintain strong crash consistency while trading file-system freshness for increased performance. OptFS requires a slight modification to the disk interface, adding new signals called asynchronous durability notifications.
When compared with ext4, OptFS increases performance significantly (10x for some workloads). It provides a new file-system primitive, oysnc(), that provides only ordering at high performance for applications. We show that applications can use this primitive to achieve application-level consistency at high performance.
You can take a look at the source code for the project by browsing our repository on Github. You can also find source tarballs and patches at our project software page. We also provide a Virtual Machine with all dependencies and OptFS installed and properly configured. With this version, you can simply open the virtual machine and start trying out OptFS!
Related PublicationsOptimistic Crash Consistency
Vijay Chidambaram, Thanumalayan Sanakaranarayana Pillai, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau
Abstract PDF Talk slides Talk video BibTex Source Code