skip to main content
research-article

Failure-Atomic Slotted Paging for Persistent Memory

Authors Info & Claims
Published:04 April 2017Publication History
Skip Abstract Section

Abstract

The slotted-page structure is a database page format commonly used for managing variable-length records. In this work, we develop a novel "failure-atomic slotted page structure" for persistent memory that leverages byte addressability and durability of persistent memory to minimize redundant write operations used to maintain consistency in traditional database systems. Failure-atomic slotted paging consists of two key elements: (i) in-place commit per page using hardware transactional memory and (ii) slot header logging that logs the commit mark of each page. The proposed scheme is implemented in SQLite and compared against NVWAL, the current state-of-the-art scheme. Our performance study shows that our failure-atomic slotted paging shows optimal performance for database transactions that insert a single record. For transactions that touch more than one database page, our proposed slot-header logging scheme minimizes the logging overhead by avoiding duplicating pages and logging only the metadata of the dirty pages. Overall, we find that our failure-atomic slotted-page management scheme reduces database logging overhead to 1/6 and improves query response time by up to 33% compared to NVWAL.

References

  1. Intel and Micron produce breakthrough memory technology. https://newsroom.intel.com/news-releases/intel-and-micron-produce-breakthrou%gh-memory-technology.Google ScholarGoogle Scholar
  2. Mobibench. https://github.com/ESOS-Lab/Mobibench.Google ScholarGoogle Scholar
  3. Quartz. https://github.com/HewlettPackard/quartz.Google ScholarGoogle Scholar
  4. Anastassia Ailamaki, David J. DeWitt, and Mark D. Hill. Data page layouts for relational databases on deep memory hierarchies. VLDB Journal, 11(3):198--215, November 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Shimin Chen and Qin Jin. Persistent B+-Trees in non-volatile main memory. Proceedings of the VLDB Endowment (PVLDB), 8(7):786--797, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. NV-Heaps: Making persisten 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
  7. J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. C. Lee, D. Burger, and D. Coetzee. Better i/o through byte-addressable, persistent memory. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. System software for persistent memory. In Proceedings of the 9th ACM European Conference on Computer Systems (EuroSys), pages 15:1--15:15, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ru Fang, Hui-I Hsiao, Bin He, C. Mohan, and Yun Wang. High performance database logging using storage class memory. In Proceedings of the 27th International Conference on Data Engineering (ICDE), pages 1221--1231, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. Nvram-aware logging in transaction systems. Proceedings of the VLDB Endowment, 8(4), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Taeho Hwang, Jaemin Jung, and Youjip Won. Heapo: Heap-based persistent object store. ACM Transactions on Storage (TOS), 11(1), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Joseph Izraelevitz, Terence Kelly, and Aasheesh Kolli. Failure-atomic persistent memory updates via JUSTDO logging. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages (ASPLOS) ), 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, and Youjip Won. I/O stack optimization for smartphones. In Proceedings of the USENIX Annual Technical Conference (ATC), 2013.Google ScholarGoogle Scholar
  14. Junghoon Kim, Changwoo Min, and Young Ik Eom. Reducing Excessive Journaling Overhead with Small-Sized NVRAM for Mobile Devices. IEEE Transactions on Consumer Electronics, 6(2), June 2014. Google ScholarGoogle ScholarCross RefCross Ref
  15. Wook-Hee Kim, Jinwoong Kim, Woongki Baek, Beomseok Nam, and Youjip Won. Nvwal: Exploiting nvram in write-ahead logging. In 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Wook-Hee Kim, Beomseok Nam, Dongil Park, and Youjip Won. Resolving journaling of journal anomaly in android i/o: Multi-version b-tree with lazy split. In Proceedings of the 11th USENIX conference on File and Storage Technologies (FAST), 2014.Google ScholarGoogle Scholar
  17. Aasheesh Kolli, Steven Pelley, Ali Saidi, Peter M. Chen, and Thomas F. Wenisch. High-performance transactions for persistent memories. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 399--411, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Eunji Lee, Hyokyung Bahn, and Sam H. Noh. Unioning of the buffer cache and journaling layers with non-volatile memory. In Proceedings of the 11th USENIX conference on File and Storage Technologies (FAST), 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Victor Leis, Alfons Kemper, and Thomas Neumann. Exploiting hardware transactional memory in main-memory databases. In Proceedings of the 30th International Conference on Data Engineering (ICDE), 2014. Google ScholarGoogle ScholarCross RefCross Ref
  20. D. Lomet and B. Saltzberg. Access methods for multiversion data. In Proceedings of 1989 ACM SIGMOD International Conference on Management of Data (SIGMOD), 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Sparsh Mittal and Jeffrey S. Vetter. A survey of software techniques for using non-volatile memories for storage and main memory systems. IEEE Transactions on Parallel and Distributed Systems, 27(5):1537--1550, June 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sparsh Mittal, Jeffrey S. Vetter, and Dong Li. A survey of architectural approaches for managing embedded dram and non-volatile on-chip caches. IEEE Transactions on Parallel and Distributed Systems, 26(6):1524--1537, June 2015. Google ScholarGoogle ScholarCross RefCross Ref
  23. Iulian Moraru, David G. Andersen, Michael Kaminsky, Niraj Tolia, Nathan Binkert, and Parthasarathy Ranganathan. Consistent, durable, and safe memory management for byte-addressable non volatile main memory. In Proceedings of the ACM Conference on Timely Results in Operating Systems (TRIOS), 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Dushyanth Narayanan and Orion Hodson. Whole-system persistence. In 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Gihwan Oh, Sangchul Kim, Sang-Won Lee, and Bongki Moon. Sqlite optimization with phase change memory for mobile applications. Proceedings of the VLDB Endowment (PVLDB), 8(12):1454--1465, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Jiaxin Ou, Jiwu Shu, and Youyou Lu. A high performance file system for non-volatile main memory. In Proceedings of the 11th European Conference on Computer Systems (EuroSys 16), 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Ismail Oukid, Johan Lasperas, Anisoara Nica, Thomas Willhalm, and Wolfgang Lehner. FPTree: A hybrid SCM-DRAM persistent and concurrent B-tree for storage class memory. In Proceedings of 2016 ACM SIGMOD International Conference on Management of Data (SIGMOD), 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. Memory persistency. In Proceedings of the 41st International Symposium on Computer Architecture (ISCA), pages 265--276, 2014. Google ScholarGoogle ScholarCross RefCross Ref
  29. Steven Pelley, Thomas F. Wenisch, Brian T. Gold, and Bill Bridge. Storage management in the NVRAM era. Proceedings of the VLDB Endowment, 7(2):121--132, October 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems. McGraw-Hill, Inc., New York, NY, USA, 2005.Google ScholarGoogle Scholar
  31. Andy Rudoff. Programming models for emerging non-volatile memory technologies. ;login, 38(3):40--45, June 2013.Google ScholarGoogle Scholar
  32. Priya Sehgal, Sourav Basu, Kiran Srinivasan, and Kaladhar Voruganti. An empirical study of file systems on nvm. In Proceedings of the 31st International Conference on Massive Stroage Systems (MSST), 2015. Google ScholarGoogle ScholarCross RefCross Ref
  33. Kai Shen, Stan Park, and Meng Zhu. Journaling of journal is (almost) free. In Proceedings of the 11th USENIX conference on File and Storage Technologies (FAST), 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Abraham Silberschatz, Henry Korth, and S. Sudarshan. Database Systems Concepts. McGraw-Hill, 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Craig A. N. Soules, Garth. R. Goodson, John D. Strunk, and Gregory R. Ganger. Metadata efficiency in versioning file systems. In Proceedings of the 2nd USENIX conference on File and Storage Technologies (FAST), pages 43--58, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Kosuke Suzuki and Steven Swanson. The non-volatile memory technology database (nvmdb). Technical Report CS2015--1011, Department of Computer Science & Engineering, University of California, San Diego, May 2015. http://nvmdb.ucsd.edu.Google ScholarGoogle Scholar
  37. Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. Consistent and durable data structures for non-volatile byte-addressable memory. In 9th USENIX conference on File and Storage Technologies (FAST), 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Haris Volos, Guilherme Magalhaes, Ludmila Cherkasova, and Jun Li. Quartz: A lightweight performance emulator for persistent memory software. In 15th Annual Middleware Conference (Middleware '15), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Haris Volos, Andres Jaan Tack, and Michael M. Swift. Mnemosyne: Lightweight persistent memory. In 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Zhaoguo Wang, Hao Qian, Jinyang Li, and Haibo Chen. Using restricted transactional memory to build a scalable in-memory database. In ACM SIGOPS/Eurosys European Conference on Computer Systems (EuroSys), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Xingda Wei, Jiaxin Shi, Yanzhe Chen, Rong Chen, and Haibo Chen. Fast in-memory transaction processing using RDMA and H™. In Proceedings of the 25th Symposium on Operating Systems Principles (SOSP), 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jian Xu and Steven Swanson. 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), 2016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, and Khai Leong Yong. NV-Tree: reducing consistency const for NVM-based single level systems. In Proceedings of the 13th USENIX conference on File and Storage Technologies (FAST), 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Yiying Zhang and Steven Swanson. A study of application performance with non-volatile main memory. In Proceedings of the 31st International Conference on Massive Stroage Systems (MSST), 2015. Google ScholarGoogle ScholarCross RefCross Ref
  45. Jishen Zhao, Sheng Li, Doe Hyun Yoon, Yuan Xie, and Norman P. Jouppi. Kiln: Closing the performance gap between systems with and without persistence support. In Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pages 421--432, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Failure-Atomic Slotted Paging for Persistent 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

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!