Native OS Support for Persistent Memory with Regions

Modern operating systems have been designed around the hypotheses that (a) memory is both byte-addressable and volatile and (b) storage is block addressable and persistent. The arrival of new Persistent Memory (PM) technologies, has made these assumptions obsolete. Despite much of the recent work in this space, the need for consistently sharing PM data across multiple applications remains an urgent, unsolved problem. The Region System is a high-performance operating system stack for PM that implements usable consistency and persistence for application data. The region system provides support for consistently mapping and sharing data resident in PM across user application address spaces. Its high-performance design minimizes the expensive PM ordering and durability operations by embracing a minimalistic approach to metadata construction and management. Finally, the region system creates a novel IPI based PMSYNC operation, which ensures atomic persistence of mapped pages across multiple address spaces.

[1]  Jinpeng Wei,et al.  Software Persistent Memory , 2012, USENIX Annual Technical Conference.

[2]  Scott Hahn,et al.  A protected block device for Persistent Memory , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

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

[4]  Vasily Tarasov,et al.  A Fast and Slippery Slope for File Systems , 2015, ACM SIGOPS Oper. Syst. Rev..

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

[6]  Steven Swanson,et al.  Providing safe, user space access to fast, solid state disks , 2012, ASPLOS XVII.

[7]  Amirsaman Memaripour,et al.  Mojim: A Reliable and Highly-Available Non-Volatile Memory System , 2015, ASPLOS.

[8]  Terence Kelly,et al.  Failure-atomic msync(): a simple and efficient mechanism for preserving the integrity of durable data , 2013, EuroSys '13.

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

[10]  Jun Yang,et al.  Fine-grained metadata journaling on NVM , 2016, 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST).

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

[12]  Rajesh K. Gupta,et al.  Moneta: A High-Performance Storage Array Architecture for Next-Generation, Non-volatile Memories , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

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

[14]  Akshat Verma,et al.  Truly Non-blocking Writes , 2011, HotStorage.

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

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

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

[18]  Steven Swanson,et al.  QuickSAN: a storage area network for fast, distributed, solid state disks , 2013, ISCA.

[19]  Terence Kelly,et al.  Failure-Atomic Updates of Application Data in a Linux File System , 2015, FAST.

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

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

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

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

[24]  Sanjay Kumar,et al.  Yat: A Validation Framework for Persistent Memory Software , 2014, USENIX Annual Technical Conference.