Qualitative Comparison of Persistent Memory Programming Interfaces
Abstract
Persistent Memories (PM) are fast, byte-addressable, and data-persistent. This new technology requires caution when being utilized. Due to its persistence, ensuring the integrity of the data structures after system failures is necessary. To use it efficiently and safely, several programming interfaces have been created with the aim of assisting the programmer in the task of building solutions that make use of persistent memory. In this article, we will qualitatively analyze some popular interfaces, observe how they choose to address current issues in persistent memory programming, and assess the degree of effectiveness in performing this task.
References
Jerrin Shaji George, Mohit Verma, R. V. P. S. V. (2020). go-pmem: Native support for programming persistent memory in go. In 2020 USENIX Annual Technical Conference. USENIX.
Jinglei Ren, Qingda Hu, S. K. T. M. (2017). Programming for non-volatile main memory is hard. In Proceedings of APSys ’17.
Kelsey R. Fulton, Anna Chan, D. V. M. H. M. L. M. (2021). Benefits and drawbacks of adopting a secure programming language: Rust as a case study. In Proceedings of the Seventeenth Symposium on Usable Privacy and Security. Usenix.
Morteza Hoseinzadeh, S. S. (2021). Corundum: Statically-enforced persistent memory safety. In Proceedings of the 26th ASPLOS.
