Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3037697.3037737acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Failure-Atomic Slotted Paging for Persistent Memory

Published: 04 April 2017 Publication History
  • Get Citation Alerts
  • 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.
    [2]
    Mobibench. https://github.com/ESOS-Lab/Mobibench.
    [3]
    Quartz. https://github.com/HewlettPackard/quartz.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [10]
    Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. Nvram-aware logging in transaction systems. Proceedings of the VLDB Endowment, 8(4), 2014.
    [11]
    Taeho Hwang, Jaemin Jung, and Youjip Won. Heapo: Heap-based persistent object store. ACM Transactions on Storage (TOS), 11(1), 2014.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [24]
    Dushyanth Narayanan and Orion Hodson. Whole-system persistence. In 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012.
    [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.
    [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.
    [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.
    [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.
    [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.
    [30]
    Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems. McGraw-Hill, Inc., New York, NY, USA, 2005.
    [31]
    Andy Rudoff. Programming models for emerging non-volatile memory technologies. ;login, 38(3):40--45, June 2013.
    [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.
    [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.
    [34]
    Abraham Silberschatz, Henry Korth, and S. Sudarshan. Database Systems Concepts. McGraw-Hill, 2005.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.

    Cited By

    View all
    • (2024)Skip It: Take Control of Your Cache!Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640407(1077-1094)Online publication date: 27-Apr-2024
    • (2023)ESL: A High-Performance Skiplist with Express LaneApplied Sciences10.3390/app1317992513:17(9925)Online publication date: 1-Sep-2023
    • (2023)Persistent Processor ArchitectureProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623772(1075-1091)Online publication date: 28-Oct-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '17: Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems
    April 2017
    856 pages
    ISBN:9781450344654
    DOI:10.1145/3037697
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 04 April 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. database buffer caching
    2. database recovery
    3. non-volatile memory
    4. slotted page structure

    Qualifiers

    • Research-article

    Funding Sources

    • NRF
    • MKE/KEIT
    • MSIP

    Conference

    ASPLOS '17

    Acceptance Rates

    ASPLOS '17 Paper Acceptance Rate 53 of 320 submissions, 17%;
    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)21
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Skip It: Take Control of Your Cache!Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640407(1077-1094)Online publication date: 27-Apr-2024
    • (2023)ESL: A High-Performance Skiplist with Express LaneApplied Sciences10.3390/app1317992513:17(9925)Online publication date: 1-Sep-2023
    • (2023)Persistent Processor ArchitectureProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3623772(1075-1091)Online publication date: 28-Oct-2023
    • (2022)In-page shadowing and two-version timestamp ordering for mobile DBMSsProceedings of the VLDB Endowment10.14778/3551793.355180215:11(2402-2414)Online publication date: 1-Jul-2022
    • (2022)DPrime+DAbort: A High-Precision and Timer-Free Directory-Based Side-Channel Attack in Non-Inclusive Cache Hierarchies using Intel TSX2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA53966.2022.00014(67-81)Online publication date: Apr-2022
    • (2022)CFFS: A Persistent Memory File System for Contiguous File Allocation With Fine-Grained MetadataIEEE Access10.1109/ACCESS.2022.320253210(91678-91698)Online publication date: 2022
    • (2022)Pivotal B+tree for Byte-Addressable Persistent MemoryIEEE Access10.1109/ACCESS.2022.317091610(46725-46737)Online publication date: 2022
    • (2021)PACTreeProceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles10.1145/3477132.3483589(424-439)Online publication date: 26-Oct-2021
    • (2021)NVOverlay: Enabling Efficient and Scalable High-Frequency Snapshotting to NVM2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA52012.2021.00046(498-511)Online publication date: Jun-2021
    • (2020)An empirical guide to the behavior and use of scalable persistent memoryProceedings of the 18th USENIX Conference on File and Storage Technologies10.5555/3386691.3386708(169-182)Online publication date: 24-Feb-2020
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media