A study of application performance with non-volatile main memory

Attaching next-generation non-volatile memories (NVMs) to the main memory bus provides low-latency, byte-addressable access to persistent data that should significantly improve performance for a wide range of storage-intensive workloads. We present an analysis of storage application performance with non-volatile main memory (NVMM) using a hardware NVMM emulator that allows fine-grain tuning of NVMM performance parameters. Our evaluation results show that NVMM improves storage application performance significantly over flash-based SSDs and HDDs. We also compare the performance of applications running on realistic NVMM with the performance of the same applications running on idealized NVMM with the same performance as DRAM. We find that although NVMM is projected to have higher latency and lower bandwidth than DRAM, these difference have only a modest impact on application performance. A much larger drag on NVMM performance is the cost of ensuring data resides safely in the NVMM (rather than the volatile caches) so that applications can make strong guarantees about persistence and consistency. In response, we propose an optimized approach to flushing data from CPU caches that minimizes this cost. Our evaluation shows that this technique significantly improves performance for applications that require strict durability and consistency guarantees over large regions of memory.

[1]  Brad Fitzpatrick,et al.  Distributed caching with memcached , 2004 .

[2]  M. Hosomi,et al.  A novel nonvolatile memory with spin torque transfer magnetization switching: spin-ram , 2005, IEEE InternationalElectron Devices Meeting, 2005. IEDM Technical Digest..

[3]  S. Yuasa,et al.  Spin-torque diode effect in magnetic tunnel junctions , 2005, Nature.

[4]  M. Breitwisch Phase Change Memory , 2008, 2008 International Interconnect Technology Conference.

[5]  D. Ralph,et al.  Spin transfer torques , 2007, 0711.4608.

[6]  Amar Phanishayee,et al.  FAWN: a fast array of wimpy nodes , 2009, SOSP '09.

[7]  Paolo Faraboschi,et al.  Operating System Support for NVM+DRAM Hybrid Main Memory , 2009, HotOS.

[8]  S. Ikeda,et al.  32-Mb 2T1R SPRAM with localized bi-directional write driver and ‘1’/‘0’ dual-array equalized reference cell , 2009, 2009 Symposium on VLSI Circuits.

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

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

[11]  Tohru Ozaki,et al.  A 1.6GB/s DDR2 128Mb chain FeRAM with scalable octal bitline and sensing schemes , 2009, 2009 IEEE International Solid-State Circuits Conference - Digest of Technical Papers.

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

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

[14]  Tohru Ozaki,et al.  A 1.6 GB/s DDR2 128 Mb Chain FeRAM With Scalable Octal Bitline and Sensing Schemes , 2010, IEEE Journal of Solid-State Circuits.

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

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

[17]  Luis Ceze,et al.  Operating System Implications of Fast, Cheap, Non-Volatile Memory , 2011, HotOS.

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

[19]  Kinam Kim,et al.  A fast, high-endurance and scalable non-volatile memory device made from asymmetric Ta2O(5-x)/TaO(2-x) bilayer structures. , 2011, Nature materials.

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

[21]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[22]  Song Jiang,et al.  Workload analysis of a large-scale key-value store , 2012, SIGMETRICS '12.

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

[24]  J Joshua Yang,et al.  Memristive devices for computing. , 2013, Nature nanotechnology.

[25]  Tony Tung,et al.  Scaling Memcache at Facebook , 2013, NSDI.

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

[27]  Ada Gavrilovska,et al.  Reducing the cost of persistence for nonvolatile heaps in end user devices , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[28]  Michael Stonebraker,et al.  A Prolegomenon on OLTP Database Systems for Non-Volatile Memory , 2014, ADMS@VLDB.

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

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

[31]  Kosuke Suzuki,et al.  A Survey of Trends in Non-Volatile Memory Technologies: 2000-2014 , 2015, 2015 IEEE International Memory Workshop (IMW).