Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

clfB-tree: Cacheline Friendly Persistent B-tree for NVRAM

Published: 26 February 2018 Publication History
  • Get Citation Alerts
  • Abstract

    Emerging byte-addressable non-volatile memory (NVRAM) is expected to replace block device storages as an alternative low-latency persistent storage device. If NVRAM is used as a persistent storage device, a cache line instead of a disk page will be the unit of data transfer, consistency, and durability.
    In this work, we design and develop clfB-tree—a B-tree structure whose tree node fits in a single cache line. We employ existing write combining store buffer and restricted transactional memory to provide a failure-atomic cache line write operation. Using the failure-atomic cache line write operations, we atomically update a clfB-tree node via a single cache line flush instruction without major changes in hardware. However, there exist many processors that do not provide SW interface for transactional memory. For those processors, our proposed clfB-tree achieves atomicity and consistency via in-place update, which requires maximum four cache line flushes. We evaluate the performance of clfB-tree on an NVRAM emulation board with ARM Cortex A-9 processor and a workstation that has Intel Xeon E7-4809 v3 processor. Our experimental results show clfB-tree outperforms wB-tree and CDDS B-tree by a large margin in terms of both insertion and search performance.

    References

    [1]
    Rudolf Bayer and Karl Unterauer. 1977. Prefix B-trees. ACM Trans. Database Syst. (TODS) 2, 1 (1977), 11--26.
    [2]
    Shimin Chen and Qin Jin. 2015. Persistent B+-Trees in non-volatile main memory. Proc. VLDB Endow. (PVLDB) 8, 7 (2015), 786--797.
    [3]
    Joel Coburn, Adrian M. Caulfield, Ameen Akel, Laura M. Grupp, Rajesh K. Gupta, Ranjit Jhala, and Steven Swanson. 2011. 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’11).
    [4]
    J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. C. Lee, D. Burger, and D. Coetzee. 2009. Better I/O through byte-addressable, persistent memory. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP’09).
    [5]
    Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System software for persistent memory. In Proceedings of the 9th ACM European Conference on Computer Systems (EuroSys’14). 15:1--15:15.
    [6]
    Jorge Guerra, Leonardo Marmol, Daniel Campello, Carlos Crespo, Raju Rangaswami, and Jinpeng Wei. 2012. Software persistent memory. In Proceedings of the USENIX Annual Technical Conference (ATC’12).
    [7]
    Jian Huang, Karsten Schwan, and Moinuddin K. Qureshi. 2014. NVRAM-aware logging in transaction systems. Proc. VLDB Endow. 8, 4 (2014).
    [8]
    Taeho Hwang, Jaemin Jung, and Youjip Won. 2014. HEAPO: Heap-based persistent object store. ACM Trans. Stor. (TOS) 11, 1 (2014).
    [9]
    Dohee Kim, Eunji Lee, Sungyong Ahn, and Hyokyung Bahn. 2013. Improving the storage performance of smartphones through journaling in non-volatile memory. IEEE Trans. Consum. Electron. 59, 3 (2013), 556--561.
    [10]
    Junghoon Kim, Changwoo Min, and Young Ik Eom. 2014. Reducing excessive journaling overhead with small-sized NVRAM for mobile devices. IEEE Trans. Consum. Electron. 6, 2 (June 2014).
    [11]
    Wook-Hee Kim, Beomseok Nam, Dongil Park, and Youjip Won. 2014. Resolving journling 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’14).
    [12]
    Eunji Lee, Hyokyung Bahn, and Sam H. Noh. 2013. 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’13).
    [13]
    Taemin Lee, Dongki Kim, Hyunsun Park, and Sungjoo Yoo. 2014. FPGA-based prototyping systems for emerging memory technologies. In Proceedings of the 25th IEEE International Symposium on Rapid System Prototyping (RSP’14).
    [14]
    Wongun Lee, Keonwoo Lee, Hankeun Son, Wook-Hee Kim, Beomseok Nam, and Youjip Won. 2015. WALDIO: Eliminating the filesystem journaling in resolving the journaling of journal anomaly. In Proceedings of the 2015 USENIX Anual Technical Conference (ATC’15).
    [15]
    Ren-Shuo Liu, De-Yu Shen, Chia-Lin Yang, Shun-Chih Yu, Cheng-Yuan, and Michael Wang. 2014. NVM duet: Unified working memory and persistent store architecture. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14).
    [16]
    Youyou Lu, Jiwu Shu, and Long Sun. 2015. Blurred persistence in transactional persistent memory. In Proceedings of the 31st International Conference on Massive Storage Systems and Technology (MSST’15).
    [17]
    Iulian Moraru, David G. Andersen, Michael Kaminsky, Niraj Tolia, Nathan Binkert, and Parthasarathy Ranganathan. 2013. 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’13).
    [18]
    Gihwan Oh, Sangchul Kim, Sang-Won Lee, and Bongki Moon. 2015. SQLite optimization with phase change memory for mobile applications. Proc. VLDB Endow. (PVLDB) 8, 12 (2015), 1454--1465.
    [19]
    Ismail Oukid, Johan Lasperas, Anisoara Nica, Thomas Willhalm, and Wolfgang Lehner. 2016. FPTree: A hybrid SCM-DRAM persistent and concurrent B-tree for storage class memory. In Proceedings of the 2016 ACM SIGMOD International Conference on Management of Data (SIGMOD’16).
    [20]
    Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. 2014. Memory persistency. In Proceedings of the 41st International Symposium on Computer Architecture (ISCA’14). 265--276.
    [21]
    Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and durable data structures for non-volatile byte-addressable memory. In Proceedings of the 9th USENIX conference on File and Storage Technologies (FAST’11).
    [22]
    Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight persistent memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11).
    [23]
    Zhaoguo Wang, Hao Qian, Jinyang Li, and Haibo Chen. 2014. Using restricted transactional memory to build a scalable in-memory database. In Proceedings of the ACM SIGOPS/Eurosys European Conference on Computer Systems (EuroSys’14).
    [24]
    Xiaojian Wu and A. L. Narasimha Reddy. 2011. SCMFS: A file system for storage class memory. In Proceedings of the ACM/IEEE SC2011 Conference.
    [25]
    Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, and Khai Leong Yong. 2015. NV-Tree: Reducing consistency const for NVM-based single level systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST’15).

    Cited By

    View all
    • (2024)Snapshotting Mechanisms for Persistent Memory-Mapped FilesProceedings of the 2024 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating algorithms for Distributed systems10.1145/3663338.3665832(1-9)Online publication date: 17-Jun-2024
    • (2024)A survey on persistent memory indexes: Recent advances, challenges and opportunitiesJournal of Systems Architecture10.1016/j.sysarc.2024.103140(103140)Online publication date: Apr-2024
    • (2024)A read-efficient and write-optimized hash table for Intel Optane DC Persistent MemoryFuture Generation Computer Systems10.1016/j.future.2024.06.028161(49-65)Online publication date: Dec-2024
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Storage
    ACM Transactions on Storage  Volume 14, Issue 1
    Special Issue on NVM and Storage
    February 2018
    237 pages
    ISSN:1553-3077
    EISSN:1553-3093
    DOI:10.1145/3190860
    • Editor:
    • Sam H. Noh
    Issue’s Table of Contents
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 February 2018
    Accepted: 01 July 2017
    Received: 01 February 2017
    Published in TOS Volume 14, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Non-volatile memory
    2. data structure
    3. persistent indexing

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

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

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Snapshotting Mechanisms for Persistent Memory-Mapped FilesProceedings of the 2024 Workshop on Advanced Tools, Programming Languages, and PLatforms for Implementing and Evaluating algorithms for Distributed systems10.1145/3663338.3665832(1-9)Online publication date: 17-Jun-2024
    • (2024)A survey on persistent memory indexes: Recent advances, challenges and opportunitiesJournal of Systems Architecture10.1016/j.sysarc.2024.103140(103140)Online publication date: Apr-2024
    • (2024)A read-efficient and write-optimized hash table for Intel Optane DC Persistent MemoryFuture Generation Computer Systems10.1016/j.future.2024.06.028161(49-65)Online publication date: Dec-2024
    • (2024)A quantitative evaluation of persistent memory hash indexesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00812-133:2(375-397)Online publication date: 1-Mar-2024
    • (2023)ESH: Design and Implementation of an Optimal Hashing Scheme for Persistent MemoryApplied Sciences10.3390/app13201152813:20(11528)Online publication date: 20-Oct-2023
    • (2023)Construction and Training of Multi-Associative Graph NetworksMachine Learning and Knowledge Discovery in Databases: Research Track10.1007/978-3-031-43418-1_17(277-292)Online publication date: 18-Sep-2023
    • (2022)PLINProceedings of the VLDB Endowment10.14778/3565816.356582616:2(243-255)Online publication date: 23-Nov-2022
    • (2022)CapriProceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing10.1145/3502181.3531474(71-83)Online publication date: 27-Jun-2022
    • (2021)Analysis and Comparison of Binary and Interpolation Search Algorithms in a B-treeProceedings of the 25th Pan-Hellenic Conference on Informatics10.1145/3503823.3503837(74-78)Online publication date: 26-Nov-2021
    • (2021)Two Birds With One Stone: Boosting Both Search and Write Performance for Tree Indices on Persistent MemoryACM Transactions on Embedded Computing Systems10.1145/347698120:5s(1-25)Online publication date: 17-Sep-2021
    • Show More Cited By

    View Options

    Get Access

    Login options

    Full Access

    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