A consistency mechanism for NVM-Based in-memory file systems

Non-Volatile Memory (NVM) has evolved to achieve non-volatility and byte-addressability with latency comparable to DRAM. This inspires the development of a new generation of file systems, namely NVM-based in-memory file systems, which include NVM on memory bus and allow in-NVM data to be directly accessed like DRAM. Meanwhile, an important issue, the consistency problem, arises as a new challenge. That is, the direct modification to the in-NVM data can be interrupted by arbitrary crashes in the system, which results in part of the modification being durable and others being lost. Traditional consistency mechanisms assume the existence of DRAM buffering and hence cannot be applied to this hybrid memory architecture. While several consistency methods have been proposed for NVM-based in-memory file systems, most of them have side-effects including unfriendliness to DRAM and penalties on concurrency control, which degrade the system performance. In this paper, we propose a novel mechanism to guarantee the consistency of NVM-based in-memory file systems. We abstract the storage area as a layered structure and employ a lazy-validated snapshot strategy to achieve a high consistency level. Since every consistency method comes with a cost, we introduce several algorithms to efficiently deal with block-sharing and reduce the overhead of consistency mechanism. The experimental results show that our mechanism incurs negligible consistency overhead and outperforms a state-of-the-art snapshot file system by reducing the latency of snapshot taking and removal by 95% and 60% respectively.

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

[2]  Ohad Rodeh IBM Research Report Deferred Reference Counters for Copy-On-Write B-trees , 2010 .

[3]  Andrea C. Arpaci-Dusseau,et al.  Association Proceedings of the Third USENIX Conference on File and Storage Technologies San Francisco , CA , USA March 31 – April 2 , 2004 , 2004 .

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

[5]  Sascha Vongehr The Missing Memristor: Novel Nanotechnology or rather new Case Study for the Philosophy and Sociology of Science? , 2012 .

[6]  A. L. Narasimha Reddy,et al.  SCMFS: A File System for Storage Class Memory and its Extensions , 2013, ACM Trans. Storage.

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

[8]  Andrea C. Arpaci-Dusseau,et al.  A logic of file systems , 2005, FAST'05.

[9]  James Lau,et al.  File System Design for an NFS File Server Appliance , 1994, USENIX Winter.

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

[11]  Joo Young Hwang,et al.  F2FS: A New File System for Flash Storage , 2015, FAST.

[12]  Vijayalakshmi Srinivasan,et al.  Scalable high performance main memory system using phase-change memory technology , 2009, ISCA '09.

[13]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[14]  Chris Dragga,et al.  GCTrees: Garbage collecting snapshots , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[15]  Andrea C. Arpaci-Dusseau,et al.  Consistency without ordering , 2012, FAST.