Next generation storage: Non-Volatile Memory

Authors

  • Olzhas Kaiyrakhmet Nullptr Lock

Keywords:

NVRAM, Persistent Memory, Non-volatile Memory, Intel Optane PM

Abstract

The next generation memory storage revolution is triggered with the advent of the Non-Volatile Memory (NVRAM), also known as Persistent Memory (PM). Previous revolution had occurred when flash memory was introduced. Likewise, NVRAM is going to deliver new possibilities for applications. However, the new memory can hardly find usage for regular consumers now. Most of the research is currently focused around the applications pertaining to fast operations on large data, such as SQL/NoSQL databases, data analytics, and storage systems. Unless the foundations of a good understanding and practices are not laid down, this technology would not reach its full potential of applications. In this paper we introduce this new memory technology, the current state of research with it, and the possible future developments.

References

Direct access for files, kernel.org https://www.kernel.org/doc/Documentation/filesystems/dax.txt

PMDK https://pmem.io/pmdk/

Persistent Collections for Java https://github.com/pmem/pcj

Yang, Jian, et al. "An empirical guide to the behavior and use of scalable persistent memory." 18th {USENIX} Conference on File and Storage Technologies ({FAST} 20). 2020. https://www.usenix.org/conference/fast20/presentation/yang

Izraelevitz, Joseph, et al. "Basic performance measurements of the intel optane DC persistent memory module." arXiv preprint arXiv:1903.05714 (2019). https://arxiv.org/abs/1903.05714

Intel OptaneTM DC Persistent Memory https://www.intel.com/content/www/us/en/architecture-and-technology/optane-dc-persistent-memory.html

Intel Persistent Memory Programming. https://pmem. io/pmdk/

Intel and Micron’s 3D XPointTM Technology. https://www.micron.com/about/ our-innovation/3d-xpoint-technology

Rudoff, Andy. "Persistent memory programming." Login: The Usenix Magazine 42.2 (2017): 34-40. https://www.usenix.org/system/files/login/articles/login_summer17_07_rudoff.pdf/

NVM Programming Model https://www.snia.org/tech_activities/standards/curr_standards/npm

Kim, Wook-Hee, et al. "FAST and FAIR B+-Tree for Byte-Addressable Persistent Memory." http://nvmw.ucsd.edu/nvmw2019-program/unzip/current/nvmw2019-final51.pdf

Cha, Hokeun, et al. "B3-Tree: Byte-Addressable Binary B-Tree for Persistent Memory." ACM Transactions on Storage (TOS) 16.3 (2020): 1-27. https://dl.acm.org/doi/abs/10.1145/3394025

Lee, Se Kwon, et al. "Recipe: converting concurrent DRAM indexes to persistent-memory indexes." Proceedings of the 27th ACM Symposium on Operating Systems Principles. 2019. https://dl.acm.org/doi/pdf/10.1145/3341301.3359635

Yao, Ting, et al. "MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based {KV} Stores with Matrix Container in {NVM}." 2020 {USENIX} Annual Technical Conference ({USENIX}{ATC} 20). 2020. https://www.usenix.org/conference/atc20/presentation/yao

Han, Shukai, Dejun Jiang, and Jin Xiong. "SplitKV: Splitting {IO} Paths for Different Sized Key-Value Items with Advanced Storage Devices." 12th {USENIX} Workshop on Hot Topics in Storage and File Systems (HotStorage 20). 2020. https://www.usenix.org/conference/hotstorage20/presentation/han

Kannan, Sudarsun, et al. "Redesigning LSMs for nonvolatile memory with NoveLSM." 2018 {USENIX} Annual Technical Conference ({USENIX}{ATC} 18). 2018. https://www.usenix.org/conference/atc18/presentation/kannan

Kaiyrakhmet, Olzhas, et al. "SLM-DB: single-level key-value store with persistent memory." 17th {USENIX} Conference on File and Storage Technologies ({FAST} 19). 2019. https://www.usenix.org/conference/fast19/presentation/kaiyrakhmet

Anderson, Thomas E., et al. "Assise: Performance and Availability via Client-local {NVM} in a Distributed File System." 14th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 20). 2020. https://www.usenix.org/conference/osdi20/presentation/anderson

Yang, Jian, Joseph Izraelevitz, and Steven Swanson. "Orion: A distributed file system for non-volatile main memory and RDMA-capable networks." 17th {USENIX} Conference on File and Storage Technologies ({FAST} 19). 2019. https://www.usenix.org/conference/fast19/presentation/yang

George, Jerrin Shaji, et al. "go-pmem: Native support for programming persistent memory in go." 2020 {USENIX} Annual Technical Conference ({USENIX}{ATC} 20). 2020. https://www.usenix.org/conference/atc20/presentation/george

Published

2021-01-12

How to Cite

Kaiyrakhmet, O. (2021). Next generation storage: Non-Volatile Memory. SPAST Express, 1(1). Retrieved from https://spast.org/ojspath/article/view/23

Issue

Section

Reviews & Perspectives