HMFS: A hybrid in-memory file system with version consistency

Abstract Emerging non-volatile memory (NVM) such as PCM and STT-RAM has memory-like byte-addressability as well as disk-like persistent storage capability. It offers an opportunity to bring NVM into the existing computer architecture for constructing an efficient and high-performance in-memory file system. Several NVM-optimized file systems have been designed. However, most of them fail to exploit all important features of NVM, and can only guarantee the file system consistency to the data consistency level. In this paper, we present HMFS, a hybrid in-memory full-versioning file system. HMFS manages DRAM and NVM in a unified address space and adopts different updating mechanisms to them. Besides, HMFS achieves version consistency with a simple and efficient multi-version approach. Experimental results show that HMFS achieves significant throughput improvement comparing with the state-of-the-art NVM-optimized file systems, such as PMFS and NOVA, and 3 . 1 × to 13 . 5 × higher versioning efficiency compared to some other multi-versioned file system such as BTRFS and NILFS2.

[1]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[2]  Craig A. N. Soules,et al.  Metadata Efficiency in Versioning File Systems , 2003, FAST.

[3]  Jeanna Neefe Matthews,et al.  Improving the performance of log-structured file systems with adaptive methods , 1997, SOSP.

[4]  Kang L. Wang,et al.  Low-power non-volatile spintronic memory: STT-RAM and beyond , 2013 .

[5]  Josef Bacik,et al.  BTRFS: The Linux B-Tree Filesystem , 2013, TOS.

[6]  Stephen M. Rumble,et al.  Log-structured memory for DRAM-based storage , 2014, FAST.

[7]  Parthasarathy Ranganathan,et al.  Consistent, durable, and safe memory management for byte-addressable non volatile main memory , 2013, TRIOS@SOSP.

[8]  OHAD RODEH,et al.  B-trees, shadowing, and clones , 2008, TOS.

[9]  Ren-Shuo Liu,et al.  NVM duet: unified working memory and persistent store architecture , 2014, ASPLOS.

[10]  Douglas J. Santry,et al.  GCTrees: Garbage collecting snapshots , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[11]  Kaladhar Voruganti,et al.  An empirical study of file systems on NVM , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[12]  Ajay Joshi,et al.  Design and Optimization of Nonvolatile Multibit 1T1R Resistive RAM , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[13]  Jongmoo Choi,et al.  Optimizations of LFS with slack space recycling and lazy indirect block update , 2010, SYSTOR '10.

[14]  Sanjay Kumar,et al.  System software for persistent memory , 2014, EuroSys '14.

[15]  Jeffrey S. Vetter,et al.  A Survey of Software Techniques for Using Non-Volatile Memories for Storage and Main Memory Systems , 2016, IEEE Transactions on Parallel and Distributed Systems.

[16]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[17]  Jian Xu,et al.  NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories , 2016, FAST.

[18]  Ittai Abraham,et al.  Silver: A Scalable, Distributed, Multi-versioning, Always Growing (Ag) File System , 2016, HotStorage.

[19]  H.-S. Philip Wong,et al.  Phase Change Memory , 2010, Proceedings of the IEEE.

[20]  Koji Sato,et al.  The Linux implementation of a log-structured file system , 2006, OPSR.

[21]  Linpeng Huang,et al.  HMVFS: A Hybrid Memory Versioning File System , 2016, 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST).

[22]  Jaemin Jung,et al.  HEAPO: Heap-Based Persistent Object Store , 2015, TOS.

[23]  Jongmoo Choi,et al.  Slack Space Recycling: Delaying On-Demand Cleaning in LFS for Performance and Endurance , 2013, IEICE Trans. Inf. Syst..

[24]  A. L. Narasimha Reddy,et al.  NVMFS: A hybrid file system for improving random write in nand-flash SSD , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[25]  A. L. Narasimha Reddy,et al.  SCMFS: A file system for Storage Class Memory , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[26]  Sangyeun Cho,et al.  Memorage: emerging persistent RAM based malleable main memory and storage architecture , 2013, ICS '13.

[27]  Michael M. Swift,et al.  Aerie: flexible file-system interfaces to storage-class memory , 2014, EuroSys '14.

[28]  Li Liu,et al.  HMTT: a platform independent full-system memory trace monitoring system , 2008, SIGMETRICS '08.

[29]  Andrea C. Arpaci-Dusseau,et al.  End-to-end Data Integrity for File Systems: A ZFS Case Study , 2010, FAST.

[30]  Rajesh K. Gupta,et al.  NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories , 2011, ASPLOS XVI.

[31]  Sang-Won Lee,et al.  SFS: random write considered harmful in solid state drives , 2012, FAST.

[32]  Scott A. Brandt,et al.  MRAMFS: a compressing file system for non-volatile RAM , 2004, The IEEE Computer Society's 12th Annual International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunications Systems, 2004. (MASCOTS 2004). Proceedings..

[33]  Christopher Frost,et al.  Better I/O through byte-addressable, persistent memory , 2009, SOSP '09.