HiNFS

Persistent memory provides data persistence at main memory with emerging non-volatile main memories (NVMMs). Recent persistent memory file systems aggressively use direct access, which directly copy data between user buffer and the storage layer, to avoid the double-copy overheads through the OS page cache. However, we observe they all suffer from slow writes due to NVMMs’ asymmetric read-write performance and much slower performance than DRAM. In this article, we propose HiNFS, a high-performance file system for non-volatile main memory, to combine both buffering and direct access for fine-grained file system operations. HiNFS uses an NVMM-aware Write Buffer to buffer the lazy-persistent file writes in DRAM, while performing direct access to NVMM for eager-persistent file writes. It directly reads file data from both DRAM and NVMM, by ensuring read consistency with a combination of the DRAM Block Index and Cacheline Bitmap to track the latest data between DRAM and NVMM. HiNFS also employs a Buffer Benefit Model to identify the eager-persistent file writes before issuing I/Os. Evaluations show that HiNFS significantly improves throughput by up to 184% and reduces execution time by up to 64%comparing with state-of-the-art persistent memory file systems PMFS and EXT4-DAX.

[1]  Youyou Lu,et al.  Blurred persistence in transactional persistent memory , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[2]  Youyou Lu,et al.  Improving the Performance and Endurance of Persistent Memory with Loose-Ordering Consistency , 2017, ArXiv.

[3]  Yuan Xie,et al.  Kiln: Closing the performance gap between systems with and without persistence support , 2013, 2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[4]  Wei Wang,et al.  ReconFS: a reconstructable file system on flash storage , 2014, FAST.

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

[6]  Jun Yang,et al.  A durable and energy efficient main memory using phase change memory technology , 2009, ISCA '09.

[7]  Andrea C. Arpaci-Dusseau,et al.  A File Is Not a File: Understanding the I/O Behavior of Apple Desktop Applications , 2012, TOCS.

[8]  John Shalf,et al.  Design of a large-scale storage-class RRAM system , 2013, ICS '13.

[9]  Richard B. Bunt,et al.  Disk cache replacement policies for network fileservers , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[10]  Wei Wang,et al.  EDM: An Endurance-Aware Data Migration Scheme for Load Balancing in SSD Storage Clusters , 2014, 2014 IEEE 28th International Parallel and Distributed Processing Symposium.

[11]  Jian Yang,et al.  Mojim: A Reliable and Highly-Available Non-Volatile Memory System , 2015, ASPLOS.

[12]  Tao Li,et al.  Octopus: an RDMA-enabled Distributed Persistent Memory File System , 2017, USENIX ATC.

[13]  Thomas E. Anderson,et al.  A Comparison of File System Workloads , 2000, USENIX Annual Technical Conference, General Track.

[14]  Youyou Lu,et al.  Blurred Persistence , 2016, ACM Trans. Storage.

[15]  Jiwu Shu,et al.  Fast and failure-consistent updates of application data in non-volatile main memory file system , 2016, 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST).

[16]  Youyou Lu,et al.  Loose-Ordering Consistency for persistent memory , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[17]  Gadi Evron,et al.  What is a file? , 2013, CSCW.

[18]  Eunji Lee,et al.  Caching Strategies for High-Performance Storage Media , 2014, TOS.

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

[20]  Sooyong Kang,et al.  Performance Trade-Offs in Using NVRAM Write Buffer for Flash Memory-Based Storage Devices , 2009, IEEE Transactions on Computers.

[21]  Jason Flinn,et al.  Rethink the sync , 2006, OSDI '06.

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

[23]  Ricardo Bianchini,et al.  Page placement in hybrid memory systems , 2011, ICS '11.

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

[25]  Bingsheng He,et al.  NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems , 2015, FAST.

[26]  Michael M. Swift,et al.  Mnemosyne: lightweight persistent memory , 2011, ASPLOS XVI.

[27]  Onur Mutlu,et al.  Architecting phase change memory as a scalable dram alternative , 2009, ISCA '09.

[28]  Raju Rangaswami,et al.  Non-blocking Writes to Files , 2015, FAST.

[29]  Roy H. Campbell,et al.  Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory , 2011, FAST.

[30]  Suman Nath,et al.  Rethinking Database Algorithms for Phase Change Memory , 2011, CIDR.

[31]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

[32]  Jun Li,et al.  Quartz: A Lightweight Performance Emulator for Persistent Memory Software , 2015, Middleware.

[33]  David Flynn,et al.  DFS: A file system for virtualized flash storage , 2010, TOS.

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

[35]  Peter J. Denning,et al.  The working set model for program behavior , 1968, CACM.

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

[37]  Youyou Lu,et al.  Extending the lifetime of flash-based storage through reducing write amplification from file systems , 2013, FAST.

[38]  Steven Swanson,et al.  A study of application performance with non-volatile main memory , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[39]  Thomas F. Wenisch,et al.  Memory persistency , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[40]  Karsten Schwan,et al.  NVRAM-aware Logging in Transaction Systems , 2014, Proc. VLDB Endow..

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

[42]  Nimrod Megiddo,et al.  ARC: A Self-Tuning, Low Overhead Replacement Cache , 2003, FAST.

[43]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[44]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

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

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

[47]  Jun Yang,et al.  Phase-Change Technology and the Future of Main Memory , 2010, IEEE Micro.

[48]  Peter J. Denning,et al.  Operating Systems Theory , 1973 .

[49]  Youyou Lu,et al.  DP2: reducing transaction overhead with differential and dual persistency in persistent memory , 2015, Conf. Computing Frontiers.

[50]  John Wilkes,et al.  UNIX Disk Access Patterns , 1993, USENIX Winter.

[51]  Jun Yang,et al.  Improving write operations in MLC phase change memory , 2012, IEEE International Symposium on High-Performance Comp Architecture.

[52]  Youyou Lu,et al.  A high performance file system for non-volatile main memory , 2016, EuroSys.

[53]  K. Gopalakrishnan,et al.  Phase change memory technology , 2010, 1001.1164.

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

[55]  Jin-Soo Kim,et al.  FAB: flash-aware buffer management policy for portable media players , 2006, IEEE Transactions on Consumer Electronics.

[56]  Youyou Lu,et al.  ParaFS: A Log-Structured File System to Exploit the Internal Parallelism of Flash Devices , 2016, USENIX Annual Technical Conference.

[57]  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).

[58]  R. Stanley Williams,et al.  Memristive devices in computing system: Promises and challenges , 2013, JETC.