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.
- [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 Scholar
- [2] [n.d.]NVML Library. Retrieved 12 Jan. 2021 from http://pmem.io/nvml.Google Scholar
- [3] . 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 ScholarDigital Library
- [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 Scholar
- [5] . 2016. Makalu: Fast recoverable allocation of non-volatile memory. In Proceedings of the 2016 ACM SIGPLAN International Conference.Google ScholarDigital Library
- [6] . 2014. Atlas: Leveraging locks for non-volatile memory consistency. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages & Applications.Google ScholarDigital Library
- [7] . 2015. Persistent B+-Trees in non-volatile main memory. Proceedings of the Vldb Endowment 8, 7 (2015), 786–797.Google ScholarDigital Library
- [8] . 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 ScholarDigital Library
- [9] . 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles. 133–146.Google ScholarDigital Library
- [10] [n.d.]. . 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 Scholar
- [11] [n.d.]. . 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 Scholar
- [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 Scholar
- [13] . 2006. jemalloc: A Scalable Concurrent Malloc(3) Implementation. Retrieved 10 Jan. 2021 from https://github.com/jemalloc/jemalloc.Google Scholar
- [14] . 2006. ptmalloc3: Multi-threaded Extension to Dlmalloc. Retrieved 10 Jan. 2021 from http://malloc.de/en/.Google Scholar
- [15] . 2019. Software wear management for persistent memories. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST’19). USENIX Association, 45–63.Google ScholarDigital Library
- [16] . 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, 187–200.Google Scholar
- [17] . 2011. Scalable spin-transfer torque RAM technology for normally-off computing. Design & Test of Computers IEEE 28, 1 (2011), 52–63.Google ScholarDigital Library
- [18] . 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 Scholar
- [19] . 2009. Architecting phase change memory as a scalable DRAM alternative. ACM Sigarch Computer Architecture News 37, 3 (2009), 2–13.Google ScholarDigital Library
- [20] . 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, 257–270.Google Scholar
- [21] . 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, 122–135.Google ScholarDigital Library
- [22] . 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 ScholarDigital Library
- [23] . 2019. Write-optimized dynamic hashing for persistent memory. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST’19). USENIX Association, 31–44.Google ScholarDigital Library
- [24] . 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 ScholarDigital Library - [25] . 2017. Memory management techniques for large-scale persistent-main-memory systems. Proceedings of the VLDB Endowment 10, 11 (2017), 1166–1177.Google ScholarDigital Library
- [26] . 2016. FPTree: A hybrid SCM-DRAM persistent and concurrent B-Tree for storage class memory. In Proceedings of the 2016 International Conference.Google ScholarDigital Library
- [27] . 2008. Phase-change random access memory: A scalable technology. Ibm Journal of Research & Development 52, 4.5 (2008), 465–479.Google ScholarDigital Library
- [28] . 2015. nvm malloc: Memory allocation for NVRAM. In Proceedings of the ADMS@VLDB. 61–72.Google Scholar
- [29] . 1990. tmpfs: A virtual memory file system. In Proceedings of the Autumn 1990 EUUG Conference. 241–248.Google Scholar
- [30] 2011. Mnemosyne. ACM SIGARCH Computer Architecture News 39, 1 (2011), 91–91.Google ScholarDigital Library
- [31] . [n.d.]. Add support for NV-DIMMs to ext4. Retrieved 12 Jan. 2021 from https://lwn.net/Articles/613384/.Google Scholar
- [32] . 2011. SCMFS: A file system for storage class memory. In Proceedings of the High Performance Computing, Networking, Storage & Analysis.Google ScholarDigital Library
- [33] . 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 ScholarDigital Library - [34] . 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, 323–338.Google Scholar
- [35] . 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, 167–181.Google Scholar
- [36] . 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, 207–219.Google Scholar
- [37] . 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 Scholar
- [38] . 1998. Memory allocation for long-running server applications. In Proceedings of the International Symposium on Memory Management.Google ScholarDigital Library
Index Terms
- Zallocator: A High Throughput Write-Optimized Persistent Allocator for Non-Volatile Memory
Recommendations
Makalu: fast recoverable allocation of non-volatile memory
OOPSLA 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsByte addressable non-volatile memory (NVRAM) is likely to supplement, and perhaps eventually replace, DRAM. Applications can then persist data structures directly in memory instead of serializing them and storing them onto a durable block device. ...
Makalu: fast recoverable allocation of non-volatile memory
OOPSLA '16Byte addressable non-volatile memory (NVRAM) is likely to supplement, and perhaps eventually replace, DRAM. Applications can then persist data structures directly in memory instead of serializing them and storing them onto a durable block device. ...
File-Based Memory Management for Non-volatile Main Memory
COMPSAC '13: Proceedings of the 2013 IEEE 37th Annual Computer Software and Applications ConferenceActive research and development efforts on byte addressable non-volatile (NV) memory technologies, such as STT-RAM, PCM, and ReRAM, have been conducted in recent years. Because they are byte addressable, they can be used as main memory by directly ...
Comments