Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Zallocator: A High Throughput Write-Optimized Persistent Allocator for Non-Volatile Memory

Authors Info & Claims
Published:13 October 2022Publication History
Skip Abstract Section

Abstract

Non-volatile main memory (NVRAM) is likely to break the bottleneck caused by data transferring between main memory and extern storage, and fundamentally change the way applications do data persistence. We can build persistent data structures directly on NVRAM. To do this correctly and efficiently, we need the support of persistent allocators guaranteeing failure-consistency.

However, existing persistent allocators pay huge persistence overhead for failure-consistency. In this article, we present Zallocator, a write-optimized failure-consistency allocator for NVRAM. Zallocator hardly brings write operations to NVRAM. It keeps all the heap management metadata in DRAM, and rebuild them after a crash. Experimental results show that Zallocator achieves a throughput comparable to state-of-the-art transient allocators, and reduces the average number of NVRAM writes per allocation/deallocation to almost zero.

REFERENCES

  1. [1] [n.d.]. Intel and Micron produce breakthrough memory technology. Retrieved 12 Jan. 2021 from http://newsroom.intel.com/community/intel_newsroom/blog/2015/07/28/intel-and-micron-produce-breakthrough-memory-technology.Google ScholarGoogle Scholar
  2. [2] [n.d.]NVML Library. Retrieved 12 Jan. 2021 from http://pmem.io/nvml.Google ScholarGoogle Scholar
  3. [3] Akel Ameen, Caulfield Adrian M., Mollov Todor I., Gupta Rajesh K., and Swanson Steven. 2011. Onyx: A protoype phase change memory storage array. In Proceedings of the 3rd USENIX Conference on Hot Topics in Storage and File Systems.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson. 2000. Hoard: A Scalable Memory Allocator for Multithreaded Applications. SIGPLAN Not. 35, 11 (nov 2000), 117–128. https://doi.org/10.1145/356989.357000Google ScholarGoogle Scholar
  5. [5] Bhandari Kumud, Chakrabarti Dhruva R., and Boehm Hans J.. 2016. Makalu: Fast recoverable allocation of non-volatile memory. In Proceedings of the 2016 ACM SIGPLAN International Conference.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [6] Chakrabarti Dhruva R., Boehm Hansj, and Bhandari Kumud. 2014. Atlas: Leveraging locks for non-volatile memory consistency. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages & Applications.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. [7] Chen Shimin and Jin Qin. 2015. Persistent B+-Trees in non-volatile main memory. Proceedings of the Vldb Endowment 8, 7 (2015), 786797.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Coburn Joel, Caulfield Adrian M., Akel Ameen, Grupp Laura M., and Swanson Steven. 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 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Condit Jeremy, Nightingale Edmund B., Frost Christopher, Ipek Engin, Lee Benjamin, Burger Doug, and Coetzee Derrick. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. 133146.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] [n.d.]. Corp Intel. Intel Architecture Instruction Set Extensions Programming Reference. Retrieved 12 Jan. 2021 from https://software.intel.com/sites/default/files/managed/b4/3a/319433-024.pdf.Google ScholarGoogle Scholar
  11. [11] [n.d.]. Corp Intel. Intel64 and IA-32 Architectures Software Developers Manuals Combined. Retrieved 12 Jan. 2021 from http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html.Google ScholarGoogle Scholar
  12. [12] Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys’14). Association for Computing Machinery, New York, NY, USA, Article 15, 1–15. https://doi.org/10.1145/2592798.2592814Google ScholarGoogle Scholar
  13. [13] Evans J.. 2006. jemalloc: A Scalable Concurrent Malloc(3) Implementation. Retrieved 10 Jan. 2021 from https://github.com/jemalloc/jemalloc.Google ScholarGoogle Scholar
  14. [14] Gloger W.. 2006. ptmalloc3: Multi-threaded Extension to Dlmalloc. Retrieved 10 Jan. 2021 from http://malloc.de/en/.Google ScholarGoogle Scholar
  15. [15] Gogte Vaibhav, Wang William, Diestelhorst Stephan, Kolli Aasheesh, Chen Peter M., Narayanasamy Satish, and Wenisch Thomas F.. 2019. Software wear management for persistent memories. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST’19). USENIX Association, 4563.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Hwang Deukyeon, Kim Wook-Hee, Won Youjip, and Nam Beomseok. 2018. Endurable transient inconsistency in byte-addressable persistent B+-Tree. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST’18). USENIX Association, 187200.Google ScholarGoogle Scholar
  17. [17] Kawahara Takayuki. 2011. Scalable spin-transfer torque RAM technology for normally-off computing. Design & Test of Computers IEEE 28, 1 (2011), 5263.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Lea Doug. 1996. A memory allocator called doug lea’s malloc or dlmalloc for short. (March 26, 2010) Retrieved March 26, 2010 from http://gee.cs.oswego.edu/dl/html/malloc.html. (1996).Google ScholarGoogle Scholar
  19. [19] Lee Benjamin C., Pek Engin, Mutlu Onur, and Burger Douglas Christopher. 2009. Architecting phase change memory as a scalable DRAM alternative. ACM Sigarch Computer Architecture News 37, 3 (2009), 213.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] Lee Se Kwon, Lim K. Hyun, Song Hyunsub, Nam Beomseok, and Noh Sam H.. 2017. WORT: Write optimal radix tree for persistent memory storage systems. In Proceedings of the 15th Usenix Conference on File and Storage Technologies (FAST’17). USENIX Association, 257270.Google ScholarGoogle Scholar
  21. [21] Liétar Paul, Butler Theodore, Clebsch Sylvan, Drossopoulou Sophia, Franco Juliana, Parkinson Matthew J., Shamis Alex, Wintersteiger Christoph M., and Chisnall David. 2019. Snmalloc: A message passing allocator. In Proceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management (ISMM’19). Association for Computing Machinery, New York, 122135.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. [22] Ma Zhulin, Sha Edwin H.-M., Zhuge Qingfeng, Jiang Weiwen, Zhang Runyu, and Gu Shouzhen. 2020. Towards the design of efficient hash-based indexing scheme for growing databases on non-volatile memory. Future Generation Computer Systems 105, 1 (2020), 1–12. https://doi.org/10.1016/j.future.2019.07.035Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Nam Moohyeon, Cha Hokeun, Choi Young-Ri, Noh Sam H., and Nam Beomseok. 2019. Write-optimized dynamic hashing for persistent memory. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST’19). USENIX Association, 3144.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. [24] Ou Jiaxin, Shu Jiwu, and Lu Youyou. 2016. A high performance file system for non-volatile main memory. In Proceedings of the 11th European Conference on Computer Systems (EuroSys’16). Association for Computing Machinery, New York, NY, Article 12, 16 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Oukid Ismail, Booss Daniel, Lespinasse Adrien, Lehner Wolfgang, Willhalm Thomas, and Gomes Grégoire. 2017. Memory management techniques for large-scale persistent-main-memory systems. Proceedings of the VLDB Endowment 10, 11 (2017), 11661177.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Oukid Ismail, Lasperas Johan, Nica Anisoara, Willhalm Thomas, and Lehner Wolfgang. 2016. FPTree: A hybrid SCM-DRAM persistent and concurrent B-Tree for storage class memory. In Proceedings of the 2016 International Conference.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Raoux Simone, Burr Geoffrey W., Breitwisch Matthew J., Rettner Charles T., and Lam Chung Hon. 2008. Phase-change random access memory: A scalable technology. Ibm Journal of Research & Development 52, 4.5 (2008), 465479.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Schwalb David, Berning Tim, Faust Martin, Dreseler Markus, and Plattner Hasso. 2015. nvm malloc: Memory allocation for NVRAM. In Proceedings of the ADMS@VLDB. 6172.Google ScholarGoogle Scholar
  29. [29] Snyder Peter. 1990. tmpfs: A virtual memory file system. In Proceedings of the Autumn 1990 EUUG Conference. 241248.Google ScholarGoogle Scholar
  30. [30] Volos, Haris, Tack, Andres, Jaan, Swift, Michael, and M.2011. Mnemosyne. ACM SIGARCH Computer Architecture News 39, 1 (2011), 9191.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. [31] Wilcox M.. [n.d.]. Add support for NV-DIMMs to ext4. Retrieved 12 Jan. 2021 from https://lwn.net/Articles/613384/.Google ScholarGoogle Scholar
  32. [32] Wu Xiao Jian and Reddy A. L. Narasimha. 2011. SCMFS: A file system for storage class memory. In Proceedings of the High Performance Computing, Networking, Storage & Analysis.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. [33] Xu Cong, Niu Dimin, Muralimanohar Naveen, Jouppi Norman P., and Xie Yuan. 2013. Understanding the trade-offs in multi-level cell ReRAM memory design. In Proceedings of the 50th Annual Design Automation Conference (DAC’13). Association for Computing Machinery, New York, NY, Article 108, 6 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. [34] Xu Jian and Swanson Steven. 2016. NOVA: A log-structured file system for hybrid volatile/non-volatile main memories. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST’16). USENIX Association, 323338.Google ScholarGoogle Scholar
  35. [35] Yang Jun, Wei Qingsong, Chen Cheng, Wang Chundong, Yong Khai Leong, and He Bingsheng. 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, 167181.Google ScholarGoogle Scholar
  36. [36] Zheng Shengan, Hoseinzadeh Morteza, and Swanson Steven. 2019. Ziggurat: A tiered file system for non-volatile main memories and disks. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST’19). USENIX Association, 207219.Google ScholarGoogle Scholar
  37. [37] Zuo Pengfei and Hua Yu. 2017. A write-friendly hashing scheme for non-volatile memory systems. In Proceedings of the 33rd International Conference on Massive Storage Systems and Technology (MSST’17).Google ScholarGoogle Scholar
  38. [38] Larson Per Åke and Krishnan Murali. 1998. Memory allocation for long-running server applications. In Proceedings of the International Symposium on Memory Management.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Zallocator: A High Throughput Write-Optimized Persistent Allocator for Non-Volatile Memory

    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 Journal on Emerging Technologies in Computing Systems
      ACM Journal on Emerging Technologies in Computing Systems  Volume 18, Issue 4
      October 2022
      429 pages
      ISSN:1550-4832
      EISSN:1550-4840
      DOI:10.1145/3563906
      • Editor:
      • Ramesh Karri
      Issue’s Table of Contents

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 13 October 2022
      • Online AM: 19 July 2022
      • Accepted: 1 June 2022
      • Revised: 25 January 2022
      • Received: 2 April 2021
      Published in jetc Volume 18, Issue 4

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    View Full Text

    HTML Format

    View this article in HTML Format .

    View HTML Format