skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Functional

Efficient logging in non-volatile memory by exploiting coherency protocols

Published:12 October 2017Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

References

  1. 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 ScholarGoogle ScholarCross RefCross Ref
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle Scholar
  13. Jian Huang, K Schwan, and Mk Qureshi. 2014. NVRAM-aware Logging in Transaction Systems. Proc. VLDB Endow. 8, 4 (2014), 389–400. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarCross RefCross Ref
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. SNIA. 2013. NVM Programming Model (NPM). (2013). http://www.snia.org/sites/default/files/NVMProgrammingModelGoogle ScholarGoogle Scholar
  26. 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 ScholarGoogle Scholar
  27. Haris Volos, Andres Jaan Tack, and Michael M Swift. 2011. Mnemosyne : Lightweight Persistent Memory. Asplos (2011), 1–13. DOI: Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Tianzheng Wang and Ryan Johnson. 2014. Scalable Logging through Emerging Non-Volatile Memory. VLDB 7, 10 (2014), 865–876. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Efficient logging in non-volatile memory by exploiting coherency protocols

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!