@inproceedings{aa23cf8df05e4e1db314c16ffff7febf,
title = "Determinizing crash behavior with a verified snapshot-consistent flash translation layer",
abstract = "This paper introduces the design of a snapshot-consistent flash translation layer (SCFTL) for flash disks, which has a stronger guarantee about the possible behavior after a crash than conventional designs. More specifically, the flush operation of SCFTL also has the functionality of making a “disk snapshot.” When a crash occurs, the flash disk is guaranteed to recover to the state right before the last flush. The major benefit of SCFTL is that it allows a more efficient design of upper layers in the storage stack. For example, the file system built on SCFTL does not require the use of a journal for crash recovery. Instead, it only needs to perform a flush operation of SCFTL at the end of each atomic transaction. We use a combination of a proof assistant, a symbolic executor, and an SMT solver, to formally verify the correctness of our SCFTL implementation. We modify the xv6 file system to support group commit and utilize SCFTL's stronger crash guarantee. Our evaluation using file system benchmarks shows that the modified xv6 on SCFTL is 3 to 30 times faster than xv6 with logging on conventional FTLs, and is in the worst case only two times slower than the state-of-the-art setting: the ext4 file system on the Physical Block Device (pblk) FTL.",
author = "Chang, {Yun Sheng} and Yao Hsiao and Lin, {Tzu Chi} and Tsao, {Che Wei} and Wu, {Chun Feng} and Chang, {Yuan Hao} and Ko, {Hsiang Shang} and Chen, {Yu Fang}",
note = "Publisher Copyright: {\textcopyright} 2020 Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2020. All rights reserved.; 14th USENIX Symposium on Operating Systems Design and Implementation,OSDI 2020 ; Conference date: 04-11-2020 Through 06-11-2020",
year = "2020",
language = "English",
series = "Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2020",
publisher = "USENIX Association",
pages = "81--97",
booktitle = "Proceedings of the 14th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2020",
}