skip to main content
research-article
Public Access

CrashMonkey and ACE: Systematically Testing File-System Crash Consistency

Published:20 April 2019Publication History
Skip Abstract Section

Abstract

We present CrashMonkey and Ace, a set of tools to systematically find crash-consistency bugs in Linux file systems. CrashMonkey is a record-and-replay framework which tests a given workload on the target file system by simulating power-loss crashes while the workload is being executed, and checking if the file system recovers to a correct state after each crash. Ace automatically generates all the workloads to be run on the target file system. We build CrashMonkey and Ace based on a new approach to test file-system crash consistency: bounded black-box crash testing (B3). B3 tests the file system in a black-box manner using workloads of file-system operations. Since the space of possible workloads is infinite, B3 bounds this space based on parameters such as the number of file-system operations or which operations to include, and exhaustively generates workloads within this bounded space. B3 builds upon insights derived from our study of crash-consistency bugs reported in Linux file systems in the last 5 years. We observed that most reported bugs can be reproduced using small workloads of three or fewer file-system operations on a newly created file system, and that all reported bugs result from crashes after fsync()-related system calls. CrashMonkey and Ace are able to find 24 out of the 26 crash-consistency bugs reported in the last 5 years. Our tools also revealed 10 new crash-consistency bugs in widely used, mature Linux file systems, 7 of which existed in the kernel since 2014. Additionally, our tools found a crash-consistency bug in a verified file system, FSCQ. The new bugs result in severe consequences like broken rename atomicity, loss of persisted files and directories, and data loss.

References

  1. Abutalib Aghayev, Theodore Ts’o, Garth Gibson, and Peter Desnoyers. 2017. Evolving ext4 for shingled disks. In 15th USENIX Conference on File and Storage Technologies (FAST’17). USENIX Association, 105--120. https://www.usenix.org/conference/fast17/technical-sessions/presentation/aghayev. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Amazon. 2018. Amazon EC2 On-Demand Pricing. https://aws.amazon.com/ec2/pricing/on-demand/.Google ScholarGoogle Scholar
  3. Apple. 2018. fsync(2) Mac OS X Developer Tools Manual Page. https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man2/fsync.2.html.Google ScholarGoogle Scholar
  4. Josef Bacik. 2018. dm: Log Writes Target. https://www.redhat.com/archives/dm-devel/2014-December/msg00047.html.Google ScholarGoogle Scholar
  5. Josef Bacik. 2013. xfstests: Add a Rename fsync Test. https://patchwork.kernel.org/patch/3234541/.Google ScholarGoogle Scholar
  6. Josef Bacik. 2013. xfstests: Add Generic/321 to Test fsync() on Directories V2. https://patchwork.kernel.org/patch/3234531/.Google ScholarGoogle Scholar
  7. Srivatsa S. Bhat, Rasha Eqbal, Austin T. Clements, M. Frans Kaashoek, and Nickolai Zeldovich. 2017. Scaling a file system to many cores using an operation log. In Proceedings of the 26th Symposium on Operating Systems Principles. ACM, 69--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Liu Bo. 2018. btrfs: Fix Unexpected -EEXIST When Creating New Inode. https://patchwork.kernel.org/patch/10184679/.Google ScholarGoogle Scholar
  9. James Bornholt, Antoine Kaufmann, Jialin Li, Arvind Krishnamurthy, Emina Torlak, and Xi Wang. 2016. Specifying and checking file system crash-consistency models. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’16), Tom Conte and Yuanyuan Zhou (Eds.). ACM, 83--98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. btrfs Wiki. 2018. btrfs Check. https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-check.Google ScholarGoogle Scholar
  11. Tej Chajed. 2018. Disable Logged Writes for Crash Safety. https://github.com/mit-pdos/fscq/commit/97b50eceedf15a2c82ce1a5cf83c231eb3184760.Google ScholarGoogle Scholar
  12. Haogang Chen, Tej Chajed, Alex Konradi, Stephanie Wang, Atalay Ileri, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2017. Verifying a high-performance crash-safe file system using a tree specification. In Proceedings of the 26th Symposium on Operating Systems Principles. ACM, 270--286. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2015. Using crash hoare logic for certifying the FSCQ file system. In Proceedings of the 25th Symposium on Operating Systems Principles (SOSP’15), Ethan L. Miller and Steven Hand (Eds.). ACM, 18--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Vijay Chidambaram. 2015. Orderless and Eventually Durable File Systems. Ph.D. Dissertation. University of Wisconsin, Madison.Google ScholarGoogle Scholar
  15. Vijay Chidambaram. 2018. btrfs: Strange Behavior (Possible Bugs) in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77929.html.Google ScholarGoogle Scholar
  16. Vijay Chidambaram. 2018. btrfs: Symlink Not Persisted Even After fsync. https://www.spinics.net/lists/fstests/msg09379.html.Google ScholarGoogle Scholar
  17. Vijay Chidambaram, Thanumalayan Sankaranarayana Pillai, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2013. Optimistic crash consistency. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP’13). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Vijay Chidambaram, Tushar Sharma, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2012. Consistency without ordering. In Proceedings of the 10th USENIX Symposium on File and Storage Technologies (FAST’12). 101--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Dave Chinner. 2018. btrfs: Symlink Not Persisted Even After fsync. https://www.spinics.net/lists/fstests/msg09363.html.Google ScholarGoogle Scholar
  20. Dave Chinner. 2018. INFO: Task Hung in xlog_grant_head_check. https://lkml.org/lkml/2018/5/22/1056.Google ScholarGoogle Scholar
  21. Dave Chinner. 2018. Symlink Not Persisted Even After fsync. https://www.spinics.net/lists/linux-btrfs/msg76835.html.Google ScholarGoogle Scholar
  22. Dave Chinner. 2018. WARNING: Bad Unlock Balance in xfs_iunlock. https://lkml.org/lkml/2018/4/3/9.Google ScholarGoogle Scholar
  23. Jonathan Corbet. 2014. Toward Better Testing. https://lwn.net/Articles/591985/.Google ScholarGoogle Scholar
  24. David Drysdale. 2016. Coverage-guided kernel fuzzing with syzkaller. Linux Weekly News 2 (2016), 33.Google ScholarGoogle Scholar
  25. The Open Group. 2018. The Open Group Base Specifications Issue 7. http://pubs.opengroup.org/onlinepubs/9699919799/.Google ScholarGoogle Scholar
  26. Eryu Guan. 2015. fstests: Generic Test for fsync of File with Multiple Links. https://www.spinics.net/lists/linux-btrfs/msg45915.html.Google ScholarGoogle Scholar
  27. Eryu Guan. 2017. ext4: fix fdatasync(2) After fallocate(2) Operation. https://lore.kernel.org/patchwork/patch/864704/.Google ScholarGoogle Scholar
  28. Eryu Guan. 2018. ext4: Update idisksize if Direct Write Past Ondisk Size. https://marc.info/?l=linux-ext48m=1516696690305478w=2.Google ScholarGoogle Scholar
  29. Greg Kroah Hartman. 2016. btrfs: Fix Empty Symlink After Creating Symlink and fsync Parent dir. https://lore.kernel.org/patchwork/patch/685585/.Google ScholarGoogle Scholar
  30. Dave Hitz, James Lau, and Michael Malcolm. 1994. File system design for an NFS File server appliance. In Proceedings of the 1994 USENIX Winter Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long short-term memory. Neural Computation 9, 8 (1997), 1735--1780. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Yige Hu, Zhiting Zhu, Ian Neal, Yougjin Kwon, Tianyu Cheng, Vijay Chidambaram, and Emmett Witchel. 2018. TxFS: Leveraging file-system crash consistency to provide ACID transactions. In Proceedings of the 2018 USENIX Annual Technical Conference (ATC’18). USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Dave Jones. 2011. Trinity: A system call fuzzer. In Proceedings of the 13th Ottawa Linux Symposium.Google ScholarGoogle Scholar
  34. Diederik P. Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. Arxiv:1412.6980.Google ScholarGoogle Scholar
  35. Harendra Kumar, Yuvraj Patel, Ram Kesavan, and Sumith Makam. 2017. High performance metadata integrity protection in the WAFL copy-on-write file system. In Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST’17). USENIX Association, 197--212. https://www.usenix.org/conference/fast17/technical-sessions/presentation/kumar. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Ubuntu Bugs LaunchPad. 2018. Bug #317781: Ext4 Data Loss. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781?comments=all.Google ScholarGoogle Scholar
  37. Changman Lee, Dongho Sim, Joo-Young Hwang, and Sangyeun Cho. 2015. F2FS: A new file system for flash storage. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15). USENIX Association, 273--286. http://dl.acm.org/citation.cfm?id=2750482.2750503. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Joe Mambretti, Jim Chen, and Fei Yeh. 2015. Next generation clouds, the chameleon cloud testbed, and software defined networking (sdn). In Proceedings of the 2015 International Conference on Cloud Computing Research and Innovation (ICCCRI’15). IEEE, 73--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Filipe Manana. 2014. btrfs: Fix Directory Recovery from fsyncLog. https://patchwork.kernel.org/patch/4864571/.Google ScholarGoogle Scholar
  40. Filipe Manana. 2014. btrfs: Fix fsync Data Loss after a Ranged fsync. https://patchwork.kernel.org/patch/4813651/.Google ScholarGoogle Scholar
  41. Filipe Manana. 2015. btrfs: Add Missing Inode Update When Punching Hole. https://patchwork.kernel.org/patch/5830801/.Google ScholarGoogle Scholar
  42. Filipe Manana. 2015. btrfs: Add Missing Inode Update When Punching Hole. https://www.spinics.net/lists/linux-btrfs/msg42047.html.Google ScholarGoogle Scholar
  43. Filipe Manana. 2015. btrfs: Fix fsync Data Loss After Adding Hard Link to Inode. https://patchwork.kernel.org/patch/5822681/.Google ScholarGoogle Scholar
  44. Filipe Manana. 2015. btrfs: Fix fsync Data Loss After Append Write. https://patchwork.kernel.org/patch/6624481/.Google ScholarGoogle Scholar
  45. Filipe Manana. 2015. btrfs: Fix Hole Punching When Using the No-Holes Feature. https://patchwork.kernel.org/patch/7536021/.Google ScholarGoogle Scholar
  46. Filipe Manana. 2015. btrfs: Fix Metadata Inconsistencies After Directory fsync. https://patchwork.kernel.org/patch/6058101/.Google ScholarGoogle Scholar
  47. Filipe Manana. 2015. btrfs: Fix Stale Directory Entries After fsync Log Replay. https://patchwork.kernel.org/patch/6852751/.Google ScholarGoogle Scholar
  48. Filipe Manana. 2015. btrfs: Remove Deleted xattrs on fsync Log Replay. https://www.spinics.net/lists/linux-btrfs/msg42162.html.Google ScholarGoogle Scholar
  49. Filipe Manana. 2016. btrfs: Fix File Loss on Log Replay After Renaming a File and fsync. https://patchwork.kernel.org/patch/8293181/.Google ScholarGoogle Scholar
  50. Filipe Manana. 2016. btrfs: Fix for Incorrect Directory Entries After fsync Log Replay. https://patchwork.kernel.org/patch/8766401/.Google ScholarGoogle Scholar
  51. Filipe Manana. 2016. fstests: Generic Test for Directory fsync After Rename Operation. https://patchwork.kernel.org/patch/8312681/.Google ScholarGoogle Scholar
  52. Filipe Manana. 2016. fstests: Generic Test for fsync After File Rename. https://patchwork.kernel.org/patch/9297215/.Google ScholarGoogle Scholar
  53. Filipe Manana. 2016. fstests: Generic Test for fsync After Renaming Directory. https://patchwork.kernel.org/patch/8694291/.Google ScholarGoogle Scholar
  54. Filipe Manana. 2016. fstests: Generic Test for fsync After Renaming File. https://patchwork.kernel.org/patch/8694301/.Google ScholarGoogle Scholar
  55. Filipe Manana. 2018. btrfs: Blocks Allocated Beyond EOF are Lost. https://www.spinics.net/lists/linux-btrfs/msg75108.html.Google ScholarGoogle Scholar
  56. Filipe Manana. 2018. Btrfs: Fix Log Replay Failure After Linking Special File and fsync. https://www.mail-archive.com/[email protected]/msg73890.html.Google ScholarGoogle Scholar
  57. Filipe Manana. 2018. btrfs: Fix Log Replay Failure after Unlink and Link Combination. https://www.spinics.net/lists/linux-btrfs/msg75204.html.Google ScholarGoogle Scholar
  58. Filipe Manana. 2018. btrfs: Strange Behavior (Possible Bugs) in btrfs. https://www.spinics.net/lists/linux-btrfs/msg81425.html.Google ScholarGoogle Scholar
  59. Filipe Manana. 2018. btrfs: Sync Log After Logging New Name. https://www.mail-archive.com/[email protected]/msg77875.html.Google ScholarGoogle Scholar
  60. Filipe Manana. 2018. Generic: Test fsync New File After Removing Hard Link. https://marc.info/?l=linux-btrfs8m=1519833491120058w=2.Google ScholarGoogle Scholar
  61. Filipe Manana. 2018. Re: Strange Behavior (Possible Bugs) in btrfs. https://www.spinics.net/lists/linux-btrfs/msg81425.html.Google ScholarGoogle Scholar
  62. Ashlie Martinez and Vijay Chidambaram. 2017. Crashmonkey: A framework to systematically test file-system crash consistency. In Proceedings of the 9th USENIX Conference on Hot Topics in Storage and File Systems. USENIX Association, 6--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Chris Mason. 2018. btrfs: Inconsistent Behavior of fsync in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77282.html.Google ScholarGoogle Scholar
  64. Chris Mason. 2018. btrfs: Inconsistent Behavior of fsync in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77318.html.Google ScholarGoogle Scholar
  65. Avantika Mathur, Mingming Cao, Suparna Bhattacharya, Andreas Dilger, Alex Tomas, and Laurent Vivier. 2007. The new ext4 filesystem: Current status and future plans. In Proceedings of the Linux Symposium, Vol. 2. 21--33.Google ScholarGoogle Scholar
  66. Marshall K. McKusick, Gregory R. Ganger, et al. 1999. Soft updates: A technique for eliminating most synchronous writes in the fast filesystem. In Proceedings of the USENIX Annual Technical Conference, FREENIX Track. 1--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. R. McMillan. 2012. Amazon Blames Generators for Blackout that Crushed Netflix. http://www.wired.com/wiredenterprise/2012/07/amazon explains/.Google ScholarGoogle Scholar
  68. R. Miller. 2012. Power Outage Hits London Data Center. http://www.datacenterknowledge.com/archives/2012/07/10/power-outage-hits-london-data-center/.Google ScholarGoogle Scholar
  69. R. Miller. 2013. Data Center Outage Cited in Visa Downtime Across Canada. http://www.datacenterknowledge.com/archives/2013/01/28/data-center-outage-cited-in-visa-downtime-across-canada/.Google ScholarGoogle Scholar
  70. R. Miller. 2013. Power Outage Knocks Dreamhost Customers Offline. http://www.datacenterknowledge.com/archives/2013/03/20/power-outage- knocks-dreamhost-customers-offline/.Google ScholarGoogle Scholar
  71. Jayashree Mohan. 2018. btrfs: Hard Link Not Persisted On fsync. https://www.spinics.net/lists/linux-btrfs/msg76878.html.Google ScholarGoogle Scholar
  72. Jayashree Mohan. 2018. btrfs: Inconsistent Behavior of fsync in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77219.html.Google ScholarGoogle Scholar
  73. Jayashree Mohan, Ashlie Martinez, Soujanya Ponnapalli, Pandian Raju, and Vijay Chidambaram. 2018. Finding crash-consistency bugs with bounded black-box crash testing. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI’18). USENIX Association, 33--50. https://www.usenix.org/conference/osdi18/presentation/mohan. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Vegard Nossum and Quentin Casasnovas. 2016. Filesystem Fuzzing with American Fuzzy Lop. https://lwn.net/Articles/685182/.Google ScholarGoogle Scholar
  75. Thanumalayan Sankaranarayana Pillai, Ramnatthan Alagappan, Lanyue Lu, Vijay Chidambaram, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2017. Application crash consistency and performance with CCFS. In Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST’17). USENIX Association, 181--196. https://www.usenix.org/conference/fast17/technical-sessions/presentation/pillai. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Thanumalayan Sankaranarayana Pillai, Vijay Chidambaram, Ramnatthan Alagappan, Samer Al-Kiswany, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2014. All file systems are not created equal: On the complexity of crafting crash-consistent applications. In Proceedings of the 11th Symposium on Operating Systems Design and Implementation (OSDI’14).Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. POSIX. 2018. fsync: The Open Group Base Specifications Issue 6. http://pubs.opengroup.org/onlinepubs/009695399/functions/fsync.html.Google ScholarGoogle Scholar
  78. Vijayan Prabhakaran, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2005. Analysis and evolution of journaling file systems. In Proceedings of the USENIX Annual Technical Conference (USENIX’05). 105--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Eunhee Rho, Kanchan Joshi, Seung-Uk Shin, Nitesh Jagadeesh Shetty, Jooyoung Hwang, Sangyeun Cho, Daniel DG Lee, and Jaeheon Jeong. 2018. FStream: Managing flash streams in the file system. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST’18). USENIX Association, 257--264. https://www.usenix.org/conference/fast18/presentation/rho. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Ohad Rodeh, Josef Bacik, and Chris Mason. 2013. BTRFS: The linux b-tree filesystem. ACM Transactions on Storage (TOS) 9, 3 (2013), 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Mendel Rosenblum and John Ousterhout. 1992. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems (TOCS) 10, 1 (Feb. 1992), 26--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, and Xi Wang. 2016. Push-button verification of file systems via crash refinement. In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI’16). USENIX Association, 1--16. http://dl.acm.org/citation.cfm?id=3026877.3026879. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Yongseok Son, Sunggon Kim, Heon Y. Yeom, and Hyuck Han. 2018. High-performance transaction processing in journaling file systems. In Proceedings of the16th USENIX Conference on File and Storage Technologies (FAST’18). USENIX Association, 227--240. https://www.usenix.org/conference/fast18/presentation/son. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Adan Sweeney, Doug Doucette, Wei Hu, Curtis Anderson, Mike Nishimoto, and Geoff Peck. 1996. Scalability in the XFS file system. In Proceedings of the USENIX Annual Technical Conference (USENIX’96). Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Ted Ts’o. 2018. Symlink Not Persisted Even After fsync. https://www.spinics.net/lists/linux-btrfs/msg76844.html.Google ScholarGoogle Scholar
  86. Theodore Y. Ts’o. 2018. btrfs: Inconsistent Behavior of fsync in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77389.html.Google ScholarGoogle Scholar
  87. Theodore Y. Ts’o. 2018. btrfs: Inconsistent Behavior of fsync in btrfs. https://www.spinics.net/lists/linux-btrfs/msg77340.html.Google ScholarGoogle Scholar
  88. UTSASLab. 2018. Crash-Consistency Bugs Studied and Reproduced. https://github.com/utsaslab/crashmonkey/blob/master/reproducedBugs.md.Google ScholarGoogle Scholar
  89. UTSASLab. 2018. New Crash-Consistency Bugs Found. https://github.com/utsaslab/crashmonkey/blob/master/newBugs.md.Google ScholarGoogle Scholar
  90. J. Verge. 2014. Internap Data Center Outage Takes Down Livestream and Stackexchange. http://www.datacenterknowledge.com/archives/2014/05/16/internap-data-center-outage-takes-livestream-stackexchange/.Google ScholarGoogle Scholar
  91. Dmitry Vyukov. 2018. Syzbot. https://lwn.net/Articles/749910/.Google ScholarGoogle Scholar
  92. R. S. V. Wolffradt. 2014. Fire In Your Data Center: No Power, No Access, Now What? http://www.govtech.com/state/Fire-in-your-Data-Center-No-Power-No-Access-Now-What.html.Google ScholarGoogle Scholar
  93. Youjip Won, Jaemin Jung, Gyeongyeol Choi, Joontaek Oh, Seongbae Son, Jooyoung Hwang, and Sangyeun Cho. 2018. Barrier-enabled IO stack for flash storage. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST’18). USENIX Association, 211--226. http://dl.acm.org/citation.cfm?id=3189759.3189779. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Junfeng Yang, Can Sar, and Dawson Engler. 2006. EXPLODE: A lightweight, general system for finding serious storage system errors. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI’06). Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Junfeng Yang, Paul Twohey, Dawson R. Engler, and Madanlal Musuvathi. 2004. Using model checking to find serious file system errors (awarded best paper!). In Proceedings of the 6th Symposium on Operating System Design and Implementation (OSDI’04), Eric A. Brewer and Peter Chen (Eds.). USENIX Association, 273--288. http://www.usenix.org/events/osdi04/tech/yang.html. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Chao Yu. 2017. f2fs: Keep isize Once Block is Reserved Cross EOF. https://sourceforge.net/p/linux-f2fs/mailman/message/36104201/.Google ScholarGoogle Scholar
  97. Chao Yu. 2018. f2fs: Enforce fsync_mode=strict for Renamed Directory. https://lkml.org/lkml/2018/4/25/674.Google ScholarGoogle Scholar
  98. Chao Yu. 2018. f2fs: Fix to Set KEEP_SIZE Bit in f2fs_zero_range. https://lore.kernel.org/patchwork/patch/889955/.Google ScholarGoogle Scholar
  99. Jun Yuan, Yang Zhan, William Jannen, Prashant Pandey, Amogh Akshintala, Kanchan Chandnani, Pooja Deo, Zardosht Kasheff, Leif Walsh, Michael Bender, Martin Farach-Colton, Rob Johnson, Bradley C. Kuszmaul, and Donald E. Porter. 2016. Optimizing every operation in a write-optimized file system. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST’16). USENIX Association, 1--14. https://www.usenix.org/conference/fast16/technical-sessions/presentation/yuan. Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Shuanglong Zhang, Helen Catanese, and Andy An-I Wang. 2016. The composite-file file system: Decoupling the one-to-one mapping of files and metadata for better performance. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST’16). USENIX Association, 15--22. https://www.usenix.org/conference/fast16/technical-sessions/presentation/zhang-shuanglong. Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Mai Zheng, Joseph Tucek, Dachuan Huang, Feng Qin, Mark Lillibridge, Elizabeth S. Yang, Bill W Zhao, and Shashank Singh. 2014. Torturing databases for fun and profit. In Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI’14). USENIX Association, 449--464. https://www.usenix.org/conference/osdi14/technical-sessions/presentation/zheng_mai. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. CrashMonkey and ACE: Systematically Testing File-System Crash Consistency

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Storage
          ACM Transactions on Storage  Volume 15, Issue 2
          Systor 2018 Special Section on ATC 2018, Special Section on OSDI 2018 and Regular Papers
          May 2019
          187 pages
          ISSN:1553-3077
          EISSN:1553-3093
          DOI:10.1145/3326597
          • Editor:
          • Sam H. Noh
          Issue’s Table of Contents

          Copyright © 2019 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 20 April 2019
          • Accepted: 1 March 2019
          • Received: 1 November 2018
          Published in tos Volume 15, Issue 2

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format