skip to main content
research-article

Persisting RB-Tree into NVM in a Consistency Perspective

Authors Info & Claims
Published:26 February 2018Publication History
Skip Abstract Section

Abstract

Byte-addressable non-volatile memory (NVM) is going to reshape conventional computer systems. With advantages of low latency, byte-addressability, and non-volatility, NVM can be directly put on the memory bus to replace DRAM. As a result, both system and application softwares have to be adjusted to perceive the fact that the persistent layer moves up to the memory. However, most of the current in-memory data structures will be problematic with consistency issues if not well tuned with NVM. This article places emphasis on an important in-memory structure that is widely used in computer systems, i.e., the Red/Black-tree (RB-tree). Since it has a long and complicated update process, the RB-tree is prone to inconsistency problems with NVM. This article presents an NVM-compatible consistent RB-tree with a new technique named cascade-versioning. The proposed RB-tree (i) is all-time consistent and scalable and (ii) needs no recovery procedure after system crashes. Experiment results show that the RB-tree for NVM not only achieves the aim of consistency with insignificant spatial overhead but also yields comparable performance to an ordinary volatile RB-tree.

References

  1. Bruno Becker, Stephan Gschwind, Thomas Ohler, Bernhard Seeger, and Peter Widmayer. 1996. An asymptotically optimal multiversion B-tree. VLDB J. 5, 4 (Dec 1996), 264--275. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. 2012. Implications of CPU Caching on Byte-addressable Non-Volatile Memory Programming. Technical Report HPL-2012-236. HP Laboratories.Google ScholarGoogle Scholar
  3. Hung-Sheng Chang, Yuan-Hao Chang, Pi-Cheng Hsiu, Tei-Wei Kuo, and Hsiang-Pang Li. 2015. Marching-based wear-leveling for PCM-based storage systems. ACM Trans. Des. Autom. Electron. Syst. 20, 2, Article 25 (March 2015), 22 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Yu-Ming Chang, Pi-Cheng Hsiu, Yuan-Hao Chang, Chi-Hao Chen, Tei-Wei Kuo, and Cheng-Yuan Michael Wang. 2016. Improving PCM endurance with a constant-cost wear leveling design. ACM Trans. Des. Autom. Electron. Syst. 22, 1, Article 9 (June 2016), 27 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cheng Chen, Jun Yang, Qingsong Wei, Chundong Wang, and Mingdi Xue. 2016. Fine-grained metadata journaling on NVM. In Proceedings of the IEEE International Conference on Massive Storage Systems and Technologies (MSST’16). IEEE Computer Society, Washington, DC, 1--12.Google ScholarGoogle ScholarCross RefCross Ref
  6. Shimin Chen and Qin Jin. 2015. Persistent B+-trees in non-volatile main memory. Proc. VLDB Endow. 8, 7 (Feb. 2015), 786--797. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. NV-Heaps: Making persistent objects fast and safe with next-generation, non-volatile memories. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI). ACM, New York, NY, 105--118. 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 Proceedings of the ACM SIGOPS Symposium on Operating Systems Principles (SOSP’09). ACM, New York, NY, 133--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gaurav Dhiman, Raid Ayoub, and Tajana Rosing. 2009. PDRAM: A hybrid PRAM and DRAM main memory system. In Proceedings of the 46th Annual Design Automation Conference (DAC’09). ACM, New York, NY, 664--469. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Alexandre P. Ferreira, Miao Zhou, Santiago Bock, Bruce Childers, Rami Melhem, and Daniel Mossé. 2010. Increasing PCM main memory lifetime. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE’10). European Design and Automation Association, Leuven, Belgium, 914--919. http://dl.acm.org/citation.cfm?id=1870926.1871147 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Eran Gal and Sivan Toledo. 2005. Algorithms and data structures for flash memories. ACM Comput. Surv. 37, 2 (June 2005), 138--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. John L. Hennessy and David A. Patterson. 2006. Computer Architecture, Fourth Edition: A Quantitative Approach. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Hu, M. Xie, C. Pan, C. J. Xue, Q. Zhuge, and E. H. M. Sha. 2015. Low overhead software wear leveling for hybrid PCM + DRAM main memory on embedded systems. IEEE Trans. VLSI Syst. 23, 4 (April 2015), 654--663.Google ScholarGoogle Scholar
  14. Intel. 2016. Intel© 64 and IA-32 Architectures Optimization Reference Manual. Technical Report 248966-033. Intel Corporation.Google ScholarGoogle Scholar
  15. Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting phase change memory as a scalable dram alternative. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA’09). ACM, New York, NY, 2--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Duo Liu, Tianzheng Wang, Yi Wang, Zili Shao, Qingfeng Zhuge, and Edwin Sha. 2013. Curling-PCM: Application-specific wear leveling for phase change memory based embedded systems. In Proceedings of the 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC’13). IEEE Computer Society, Washington, DC, 279--284.Google ScholarGoogle Scholar
  17. Huizhang Luo, Jingtong Hu, Liang Shi, Chun Jason Xue, and Qingfeng Zhuge. 2016. Two-step state transition minimization for lifetime and performance improvement on MLC STT-RAM. In Proceedings of the 53rd Annual Design Automation Conference (DAC’16). ACM, New York, NY, Article 171, 6 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. A. Mandelman, R. H. Dennard, G. B. Bronner, J. K. DeBrosse, R. Divakaruni, Y. Li, and C. J. Radens. 2002. Challenges and future directions for the scaling of dynamic random-access memory (DRAM). IBM J. Res. Dev. 46, 2--3 (March 2002), 187--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Micron and Intel. 2015. 3D XPoint Technology. Retrieved from http://www.micron.com/about/innovations/3d-xpoint-technology. (2015).Google ScholarGoogle Scholar
  20. Iulian Moraru, David G. Andersen, Michael Kaminsky, Nathan Binkert, Niraj Tolia, Reinhard Munz, and Parthasarathy Ranganathan. 2011. Persistent, Protected and Cached: Building Blocks for Main Memory Data Stores. Technical Report CMU-PDL-11-114. Carnegie Mellon University, Intel Labs, HP Labs, Pittsburgh, PA, USA. 1--24 pages.Google ScholarGoogle Scholar
  21. W. Mueller, G. Aichmayr, W. Bergner, E. Erben, T. Hecht, C. Kapteyn, A. Kersch, S. Kudelka, F. Lau, J. Luetzen, A. Orth, J. Nuetzel, T. Schloesser, A. Scholz, U. Schroeder, A. Sieck, A. Spitzer, M. Strasser, P. F. Wang, S. Wege, and R. Weis. 2005. Challenges for the DRAM cell scaling to 40nm. In Proceedings of the IEEE International Electron Devices Meeting (IEDM’05). IEEE, New York, NY. 339.Google ScholarGoogle Scholar
  22. Sanketh Nalli, Swapnil Haria, Mark D. Hill, Michael M. Swift, Haris Volos, and Kimberly Keeton. 2017. An analysis of persistent memory use with WHISPER. In Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’17). ACM, New York, NY, 135--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Dushyanth Narayanan and Orion Hodson. 2012. Whole-system persistence. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVII). ACM, New York, NY, 401--410. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In Proceeding of the 41st Annual International Symposium on Computer Architecuture (ISCA’14). IEEE Press, Piscataway, NJ, 265--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Vijayan Prabhakaran, Thomas L. Rodeheffer, and Lidong Zhou. 2008. Transactional flash. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). USENIX Association, Berkeley, CA, 147--160. http://dl.acm.org/citation.cfm?id=1855741.1855752 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. K. Qiu, Q. Li, J. Hu, W. Zhang, and C. J. Xue. 2016. Write mode aware loop tiling for high performance low power volatile PCM in embedded systems. IEEE Trans. Comput. 65, 7 (Jul. 2016), 2313--2324.Google ScholarGoogle ScholarCross RefCross Ref
  27. Moinuddin K. Qureshi, John Karidis, Michele Franceschini, Vijayalakshmi Srinivasan, Luis Lastras, and Bulent Abali. 2009. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling. In Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 42). ACM, New York, NY, 14--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable high performance main memory system using phase-change memory technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA’09). ACM, New York, NY, 24--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Zhenyu Sun, Xiuyuan Bi, Hai (Helen) Li, Weng-Fai Wong, Zhong-Liang Ong, Xiaochun Zhu, and Wenqing Wu. 2011. Multi retention level STT-RAM cache designs with a dynamic refresh scheme. In Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-44). ACM, New York, NY, 329--338. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Viking Technology. 2015. ArxCis-NV DIMM. Retrieved from http://www.vikingtechnology.com/arxcis-nv.Google ScholarGoogle Scholar
  31. Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’11). USENIX, Berkeley, CA, USA, 61--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Haris Volos, Guilherme Magalhaes, Ludmila Cherkasova, and Jun Li. 2015. Quartz: A lightweight performance emulator for persistent memory software. In Proceedings of the 16th Annual Middleware Conference (Middleware’15). ACM, New York, NY, USA, 37--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). ACM, New York, NY, 91--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Tianzheng Wang, Duo Liu, Yi Wang, and Zili Shao. 2015. Towards write-activity-aware page table management for non-volatile main memories. ACM Trans. Embed. Comput. Syst. 14, 2, Article 34 (Feb. 2015), 23 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Qingsong Wei, Jianxi Chen, and Cheng Chen. 2015. Accelerating file system metadata access with byte-addressable nonvolatile memory. Trans. Stor. 11, 3, Article 12 (July 2015), 28 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Qingsong Wei, Chundong Wang, Cheng Chen, Yechao Yang, Jun Yang, and Mingdi Xue. 2017. Transactional NVM cache with high performance and crash consistency. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC’17). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Michael Wu and Willy Zwaenepoel. 1994. eNVy: A non-volatile, main memory storage system. In Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS VI). ACM, New York, NY, 86--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Xiaojian Wu and A. L. Narasimha Reddy. 2011. SCMFS: A file system for storage class memory. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC’11). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Cong Xu, Dimin Niu, Naveen Muralimanohar, Norman P. Jouppi, and Yuan Xie. 2013. Understanding the trade-offs in multi-level cell ReRAM memory design. In Proceedings of the 50th Annual Design Automation Conference (DAC’13). ACM, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. 2015. NV-Tree: Reducing consistency cost for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15). USENIX Association, Berkeley, CA, 167--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Mengying Zhao, Liang Shi, Chengmo Yang, and Chun Jason Xue. 2014. Leveling to the last mile: Near-zero-cost bit level wear leveling for PCM-based main memory. In Proceedings of the 2014 IEEE 32nd International Conference on Computer Design (ICCD’14). IEEE Computer Society, Washington, DC, 16--21.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Persisting RB-Tree into NVM in a Consistency Perspective

          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

          • Published in

            cover image ACM Transactions on Storage
            ACM Transactions on Storage  Volume 14, Issue 1
            Special Issue on NVM and Storage
            February 2018
            237 pages
            ISSN:1553-3077
            EISSN:1553-3093
            DOI:10.1145/3190860
            • Editor:
            • Sam H. Noh
            Issue’s Table of Contents

            Copyright © 2018 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 26 February 2018
            • Accepted: 1 January 2018
            • Revised: 1 September 2017
            • Received: 1 February 2017
            Published in tos Volume 14, Issue 1

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          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!