Crash Consistency

The reading and writing of data, one of the most fundamental aspects of any Von Neumann computer, is surprisingly subtle and full of nuance. For example, consider access to a shared memory in a system with multiple processors. While a simple and intuitive approach known as strong consistency is easiest for programmers to understand, many weaker models are in widespread use (e.g., x86 total store ordering); such approaches improve system performance, but at the cost of making reasoning about system behavior more complex and error-prone. Fortunately, a great deal of time and effort has gone into thinking about such memory models, and, as a result, most multiprocessor applications are not caught unaware.

[1]  Mark Lillibridge,et al.  Torturing Databases for Fun and Profit , 2014, OSDI.

[2]  Yale N. Patt,et al.  Metadata update performance in file systems , 1994, OSDI '94.

[3]  Terence Kelly,et al.  Failure-Atomic Updates of Application Data in a Linux File System , 2015, FAST.

[4]  David A. Wood,et al.  A Primer on Memory Consistency and Cache Coherence , 2012, Synthesis Lectures on Computer Architecture.

[5]  Robert B. Ross File Systems , 2011, Encyclopedia of Parallel Computing.

[6]  Cristian Ungureanu,et al.  Revisiting storage for smartphones , 2012, TOS.

[7]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[8]  Andrea C. Arpaci-Dusseau,et al.  All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications , 2014, OSDI.

[9]  Robert B. Hagmann,et al.  Reimplementing the Cedar file system using logging and group commit , 1987, SOSP '87.

[10]  Jennifer Widom,et al.  Database Systems: The Complete Book , 2001 .

[11]  Hairong Kuang,et al.  The Hadoop Distributed File System , 2010, 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).

[12]  Andrea C. Arpaci-Dusseau,et al.  Beyond Storage APIs: Provable Semantics for Storage Stacks , 2015, HotOS.

[13]  Doug Terry,et al.  Replicated data consistency explained through baseball , 2013, CACM.

[14]  Eddie Kohler,et al.  Specifying Crash Safety for Storage Systems , 2015, HotOS.