Abstract
Non-volatile memory technologies such as PCM, ReRAM and STT-RAM allow data to be saved to persistent storage significantly faster than hard drives or SSDs. Many of the use cases for non-volatile memory requires persistent logging since it enables a set of operations to execute in an atomic manner. However, a logging protocol must handle reordering, which causes a write to reach the non-volatile memory before a previous write operation.
In this paper, we show that reordering results from two parts of the system: the out-of-order execution in the CPU and the cache coherence protocol. By carefully considering the properties of these reorderings, we present a logging protocol that requires only one round trip to non-volatile memory while avoiding expensive computations, thus increasing performance. We also show how the logging protocol can be extended to building a durable set (hash map) that also requires a single round trip to non-volatile memory for inserting, updating, or deleting operations.
Supplemental Material
Available for Download
- Hiroyuki Akinaga and Hisashi Shima. 2010. Resistive Random Access Memory (ReRAM) Based on Metal Oxides. Proc. IEEE 98, 12 (dec 2010), 2237–2251. DOI: Google Scholar
Cross Ref
- Joy Arulraj and Andrew Pavlo. 2015. Let’s Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems. Proc. 2015 ACM SIGMOD Int. Conf. Manag. Data 1 (2015), 707–722. DOI: Google Scholar
Digital Library
- Hillel Avni and Trevor Brown. 2016. PHyTM: Persistent Hybrid Transactional Memory. PVLDB 10, 4 (2016), 409–420. http://www.vldb.org/pvldb/vol10/p409-brown.pdfGoogle Scholar
Digital Library
- Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. 2016. Makalu: fast recoverable allocation of non-volatile memory. Proc. 2016 ACM SIGPLAN Int. Conf. Object-Oriented Program. Syst. Lang. Appl. - OOPSLA 2016 (2016), 677–694. DOI: Google Scholar
Digital Library
- Hans-J. Boehm, Sarita V. Adve, Hans-J. Boehm, and Sarita V. Adve. 2008. Foundations of the C++ concurrency memory model. In Proc. 2008 ACM SIGPLAN Conf. Program. Lang. Des. Implement. - PLDI ’08, Vol. 43. ACM Press, New York, New York, USA, 68. DOI: Google Scholar
Digital Library
- Hans-J. Boehm and Dhruva R. Chakrabarti. 2016. Persistence programming models for non-volatile memory. Proc. 2016 ACM SIGPLAN Int. Symp. Mem. Manag. - ISMM 2016 (2016), 55–67. DOI: Google Scholar
Digital Library
- Dhruva R Chakrabarti, Hans-J. Boehm, and Kumud Bhandari. 2014. Atlas: Leveraging Locks for Non-volatile Memory Consistency. Proc. 2014 ACM Int. Conf. Object Oriented Program. Syst. Lang. & Appl. (2014), 433–452. DOI: Google Scholar
Digital Library
- Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proc. ACM SIGOPS 22nd Symp. Oper. Syst. Princ. - SOSP ’09. ACM Press, New York, New York, USA, 133. DOI: Google Scholar
Digital Library
- Kshitij Doshi, Ellis Giles, and Peter Varman. 2016. Atomic persistence for SCM with a non-intrusive backend controller. In 2016 IEEE Int. Symp. High Perform. Comput. Archit. IEEE, 77–89. DOI: Google Scholar
Cross Ref
- Pascal Felber, Christof Fetzer, and Torvald Riegel. 2008. Dynamic performance tuning of word-based software transactional memory. In Proc. 13th ACM SIGPLAN Symp. Princ. Pract. parallel Program. - PPoPP ’08. ACM Press, New York, New York, USA, 237. DOI: Google Scholar
Digital Library
- M. Hosomi, H. Yamagishi, T. Yamamoto, K. Bessho, Y. Higo, K. Yamane, H. Yamada, M. Shoji, H. Hachino, C. Fukumoto, H. Nagao, and H. Kano. 2005. A novel nonvolatile memory with spin torque transfer magnetization switching: spin-ram. In IEEE Int. Devices Meet. 2005. IEDM Tech. Dig. IEEE, 459–462. DOI: Google Scholar
Cross Ref
- Qingda Hu, Jinglei Ren, Anirudh Badam, and Thomas Moscibroda. 2017. Log-Structured Non-Volatile Main Memory. In 2017 USENIX Annu. Tech. Conf. (USENIX ATC 17). http://jinglei.ren.systems/lsnvmmGoogle Scholar
- Jian Huang, K Schwan, and Mk Qureshi. 2014. NVRAM-aware Logging in Transaction Systems. Proc. VLDB Endow. 8, 4 (2014), 389–400. DOI: Google Scholar
Digital Library
- A Joshi, V Nagarajan, S Viglas, and M Cintra. 2017. ATOM: Atomic Durability in Non-volatile Memory through Hardware Logging. 23rd IEEE Symp. High Perform. Comput. Archit. - HPCA’17 (2017).Google Scholar
Cross Ref
- Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M Chen, and Thomas F Wenisch. 2016. High-Performance Transactions for Persistent Memories. Asplos (2016), 399–411. DOI: Google Scholar
Digital Library
- Benjamin C. Lee, Engin Ipek, Onur Mutlu, Doug Burger, Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. In Proc. 36th Annu. Int. Symp. Comput. Archit. - ISCA ’09, Vol. 37. ACM Press, New York, New York, USA, 2. DOI: Google Scholar
Digital Library
- Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, Jinglei Ren, Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, Jinglei Ren, Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, Jinglei Ren, Mengxing Liu, Mingxing Zhang, Kang Chen, Xuehai Qian, Yongwei Wu, Weimin Zheng, and Jinglei Ren. 2017. DudeTM: Building Durable Transactions with Decoupling for Persistent Memory. In Proc. Twenty-Second Int. Conf. Archit. Support Program. Lang. Oper. Syst. - ASPLOS ’17, Vol. 45. ACM Press, New York, New York, USA, 329–343. DOI: Google Scholar
Digital Library
- Youyou Lu, Jiwu Shu, Long Sun, and Onur Mutlu. 2014. Loose-Ordering Consistency for persistent memory. In 2014 IEEE 32nd Int. Conf. Comput. Des. IEEE, 216–223. DOI: Google Scholar
Cross Ref
- Jeremy Manson, William Pugh, Sarita V. Adve, Jeremy Manson, William Pugh, and Sarita V. Adve. 2005. The Java memory model. In Proc. 32nd ACM SIGPLAN-SIGACT sysposium Princ. Program. Lang. - POPL ’05, Vol. 40. ACM Press, New York, New York, USA, 378–391. DOI: Google Scholar
Digital Library
- Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In 2014 ACM/IEEE 41st Int. Symp. Comput. Archit. IEEE, 265–276. DOI: Google Scholar
Cross Ref
- Steven Pelley, Thomas F. Wenisch, Brian T. Gold, and Bill Bridge. 2013. Storage management in the NVRAM era. Proc. VLDB Endow. 7, 2 (oct 2013), 121–132. DOI: Google Scholar
Digital Library
- Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Vijayan Prabhakaran, Lakshmi N. Bairavasundaram, Nitin Agrawal, Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2005. IRON file systems. In Proc. Twent. ACM Symp. Oper. Syst. Princ. -SOSP ’05, Vol. 39. ACM Press, New York, New York, USA, 206. DOI: Google Scholar
Digital Library
- Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, Jude A. Rivers, Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. ACM SIGARCH Comput. Archit. News 37, 3 (jun 2009), 24. DOI: Google Scholar
Digital Library
- David Schwalb, Markus Dreseler, Matthias Uflacker, and Hasso Plattner. 2015. NVC-Hashmap: A Persistent and Concurrent Hashmap For Non-Volatile Memories. In Proc. 3rd VLDB Work. In-Memory Data Mangement Anal. - IMDM ’15. ACM Press, New York, New York, USA, 1–8. DOI: Google Scholar
Digital Library
- SNIA. 2013. NVM Programming Model (NPM). (2013). http://www.snia.org/sites/default/files/NVMProgrammingModelGoogle Scholar
- Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory. Proc. 9th USENIX Conf. File Storage Technol. - FAST (2011), 61–75.Google Scholar
- Haris Volos, Andres Jaan Tack, and Michael M Swift. 2011. Mnemosyne : Lightweight Persistent Memory. Asplos (2011), 1–13. DOI: Google Scholar
Digital Library
- Tianzheng Wang and Ryan Johnson. 2014. Scalable Logging through Emerging Non-Volatile Memory. VLDB 7, 10 (2014), 865–876. Google Scholar
Digital Library
- H.-S. Philip Wong, Heng-Yuan Lee, Shimeng Yu, Yu-Sheng Chen, Yi Wu, Pang-Shiu Chen, Byoungil Lee, Frederick T. Chen, and Ming-Jinn Tsai. 2012. Metal-Oxide RRAM. Proc. IEEE 100, 6 (jun 2012), 1951–1970. DOI: Google Scholar
Cross Ref
Index Terms
Efficient logging in non-volatile memory by exploiting coherency protocols
Recommendations
Two-level logging with non-volatile byte-addressable memory in log-structured file systems
CF '15: Proceedings of the 12th ACM International Conference on Computing FrontiersThe file system durability is provided by flushing dirty pages periodically into the non-volatile storage. Since the traditional storage devices such as hard disk and flash memory can be written in the unit of block, the file system writes a whole block ...
Redesign the Memory Allocator for Non-Volatile Main Memory
Special Issue on Hardware and Algorithms for Learning On-a-chip and Special Issue on Alternative Computing SystemsThe non-volatile memory (NVM) has the merits of byte-addressability, fast speed, persistency and low power consumption, which make it attractive to be used as main memory. Commonly, user process dynamically acquires memory through memory allocators. ...
Managing Non-Volatile Memory in Database Systems
SIGMOD '18: Proceedings of the 2018 International Conference on Management of DataNon-volatile memory (NVM) is a new storage technology that combines the performance and byte addressability of DRAM with the persistence of traditional storage devices like flash (SSD). While these properties make NVM highly promising, it is not yet ...






Comments