Don't Persist All : Efficient Persistent Data Structures
2019, ArXiv
Abstract
Data structures used in software development have inbuilt redundancy to improve software reliability and to speed up performance. Examples include a Doubly Linked List which allows a faster deletion due to the presence of the previous pointer. With the introduction of Persistent Memory, storing the redundant data fields into persistent memory adds a significant write overhead, and reduces performance. In this work, we focus on three data structures - Doubly Linked List, B+Tree and Hashmap, and showcase alternate partly persistent implementations where we only store a limited set of data fields to persistent memory. After a crash/restart, we use the persistent data fields to recreate the data structures along with the redundant data fields. We compare our implementation with the base implementation and show that we achieve speedups around 5-20% for some data structures, and up to 165% for a flush-dominated data structure.
References (14)
- D. J. Taylor, D. E. Morgan, and J. P. Black. Redundancy in data structures: Improving software fault tolerance. IEEE Trans. Softw. Eng., 6(6):585-594, November 1980.
- Intel optane dc persistent memory. https://www.intel.com/content/www/ us/en/architecture-and-technology/optane-dc-persistent-memory.html.
- Jeff Dean. Latency numbers every programmer should know. https: //gist.github.com/jboner/2841832.
- Paul Alcorn. Intel optane dimm pricing: $695 for 128gb, $2595 for 256gb, $7816 for 512gb (update). https://www.tomshardware.com/news/ intel-optane-dimm-pricing-performance,39007.html, Apr 2019.
- Andy Rudoff. Persistent memory programming. Login: The Usenix Magazine, 42:34-40, 2017.
- Haris Volos, Andres Jaan Tack, and Michael M. Swift. Mnemosyne: Lightweight persistent memory. SIGPLAN Not., 47(4):91-104, March 2011.
- Joel Coburn, Adrian M Caulfield, Ameen Akel, Laura M Grupp, Rajesh K Gupta, Ranjit Jhala, and Steven Swanson. Nv-heaps: mak- ing persistent objects fast and safe with next-generation, non-volatile memories. ACM Sigplan Notices, 47(4):105-118, 2012.
- Jian Xu and Steven Swanson. NOVA: A log-structured file system for hybrid volatile/non-volatile main memories. In 14th USENIX Conference on File and Storage Technologies (FAST 16), pages 323-338, Santa Clara, CA, 2016. USENIX Association.
- Sanketh Nalli, Swapnil Haria, Mark D. Hill, Michael M. Swift, Haris Volos, and Kimberly Keeton. An analysis of persistent memory use with whisper. SIGOPS Oper. Syst. Rev., 51(2):135-148, April 2017.
- David Schwalb, Markus Dreseler, Matthias Uflacker, and Hasso Plattner. Nvc-hashmap: A persistent and concurrent hashmap for non-volatile memories. In Proceedings of the 3rd VLDB Workshop on In-Memory Data Mangement and Analytics, page 4. ACM, 2015.
- Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. Nv-tree: reducing consistency cost for nvm- based single level systems. In 13th {USENIX} Conference on File and Storage Technologies ({FAST} 15), pages 167-181, 2015.
- Douglas Comer. Ubiquitous b-tree. ACM Computing Surveys (CSUR), 11(2):121-137, 1979.
- libcutils/hashmap.c -aosp/platform/system/core -git at google. https://chromium.googlesource.com/aosp/platform/system/core//master/ libcutils/hashmap.c.
- Alper Ilkbahar. Intel optane dc persistent memory operating modes explained. https://itpeernetwork.intel.com/ intel-optane-dc-persistent-memory-operating-modes/, Nov 2018.