本文介绍了基于现代文件系统的应用层崩溃一致性协议的首个全面研究。研究发现,应用程序使用复杂的更新协议来持久化状态,而这些协议的正确性高度依赖于底层文件系统的微妙行为,我们称之为持久性属性。作者开发了一个名为BOB的工具来测试持久性属性,并使用它来证明这些属性在六种流行的Linux文件系统中存在广泛的差异。作者还构建了一个名为ALICE的框架,分析应用程序更新协议并发现崩溃漏洞,即需要特定持久性属性才能保证正确性的更新协议代码。使用ALICE,作者分析了11个广泛使用的系统,并发现了60个漏洞,其中许多会导致严重后果。作者还展示了ALICE可以用于评估新文件系统设计对应用程序级一致性的影响。