B 3 -Tree: Byte-Addressable Binary B-Tree for Persistent Memory

In this work, we propose B 3 -tree , a hybrid index for persistent memory that leverages the byte-addressability of the in-memory index and the page locality of B-trees. As in the byte-addressable in-memory index, B 3 -tree is updated by 8-byte store instructions. Also, as in disk-based index, B 3 -...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:ACM transactions on storage 2020-08, Vol.16 (3), p.1-27
Hauptverfasser: Cha, Hokeun, Nam, Moohyeon, Jin, Kibeom, Seo, Jiwon, Nam, Beomseok
Format: Artikel
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 27
container_issue 3
container_start_page 1
container_title ACM transactions on storage
container_volume 16
creator Cha, Hokeun
Nam, Moohyeon
Jin, Kibeom
Seo, Jiwon
Nam, Beomseok
description In this work, we propose B 3 -tree , a hybrid index for persistent memory that leverages the byte-addressability of the in-memory index and the page locality of B-trees. As in the byte-addressable in-memory index, B 3 -tree is updated by 8-byte store instructions. Also, as in disk-based index, B 3 -tree is failure-atomic since it makes every 8-byte store instruction transform a consistent index into another consistent index without the help of expensive logging. Since expensive logging becomes unnecessary, the number of cacheline flush instructions required for B 3 -tree is significantly reduced. Our performance study shows that B 3 -tree outperforms other state-of-the-art persistent indexes in terms of insert and delete performance. While B 3 -tree shows slightly worse performance for point query performance, the range query performance of B 3 -tree is 2x faster than FAST and FAIR B-tree because the leaf page size of B 3 -tree can be set to 8x larger than that of FAST and FAIR B-tree without degrading insertion performance. We also show that read transactions can access B 3 -tree without acquiring a shared lock because B 3 -tree remains always consistent while a sequence of 8-byte write operations are making changes to it. As a result, B 3 -tree provides high concurrency level comparable to FAST and FAIR B-tree.
doi_str_mv 10.1145/3394025
format Article
fullrecord <record><control><sourceid>crossref</sourceid><recordid>TN_cdi_crossref_primary_10_1145_3394025</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>10_1145_3394025</sourcerecordid><originalsourceid>FETCH-crossref_primary_10_1145_33940253</originalsourceid><addsrcrecordid>eNpjYOA3NNAzNDQx1Tc2tjQxMDJlYuA0NDU11jU2sDRmgbPNzTkYuIqLswwMjM2MTEw5GTidFIwVdEOKUlN5GFjTEnOKU3mhNDeDuptriLOHbnJRfnFxUWpafEFRZm5iUWW8oUE8yKZ4qE3GxKsEANLMKSY</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>B 3 -Tree: Byte-Addressable Binary B-Tree for Persistent Memory</title><source>ACM Digital Library Complete</source><creator>Cha, Hokeun ; Nam, Moohyeon ; Jin, Kibeom ; Seo, Jiwon ; Nam, Beomseok</creator><creatorcontrib>Cha, Hokeun ; Nam, Moohyeon ; Jin, Kibeom ; Seo, Jiwon ; Nam, Beomseok</creatorcontrib><description>In this work, we propose B 3 -tree , a hybrid index for persistent memory that leverages the byte-addressability of the in-memory index and the page locality of B-trees. As in the byte-addressable in-memory index, B 3 -tree is updated by 8-byte store instructions. Also, as in disk-based index, B 3 -tree is failure-atomic since it makes every 8-byte store instruction transform a consistent index into another consistent index without the help of expensive logging. Since expensive logging becomes unnecessary, the number of cacheline flush instructions required for B 3 -tree is significantly reduced. Our performance study shows that B 3 -tree outperforms other state-of-the-art persistent indexes in terms of insert and delete performance. While B 3 -tree shows slightly worse performance for point query performance, the range query performance of B 3 -tree is 2x faster than FAST and FAIR B-tree because the leaf page size of B 3 -tree can be set to 8x larger than that of FAST and FAIR B-tree without degrading insertion performance. We also show that read transactions can access B 3 -tree without acquiring a shared lock because B 3 -tree remains always consistent while a sequence of 8-byte write operations are making changes to it. As a result, B 3 -tree provides high concurrency level comparable to FAST and FAIR B-tree.</description><identifier>ISSN: 1553-3077</identifier><identifier>EISSN: 1553-3093</identifier><identifier>DOI: 10.1145/3394025</identifier><language>eng</language><ispartof>ACM transactions on storage, 2020-08, Vol.16 (3), p.1-27</ispartof><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-crossref_primary_10_1145_33940253</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,776,780,27901,27902</link.rule.ids></links><search><creatorcontrib>Cha, Hokeun</creatorcontrib><creatorcontrib>Nam, Moohyeon</creatorcontrib><creatorcontrib>Jin, Kibeom</creatorcontrib><creatorcontrib>Seo, Jiwon</creatorcontrib><creatorcontrib>Nam, Beomseok</creatorcontrib><title>B 3 -Tree: Byte-Addressable Binary B-Tree for Persistent Memory</title><title>ACM transactions on storage</title><description>In this work, we propose B 3 -tree , a hybrid index for persistent memory that leverages the byte-addressability of the in-memory index and the page locality of B-trees. As in the byte-addressable in-memory index, B 3 -tree is updated by 8-byte store instructions. Also, as in disk-based index, B 3 -tree is failure-atomic since it makes every 8-byte store instruction transform a consistent index into another consistent index without the help of expensive logging. Since expensive logging becomes unnecessary, the number of cacheline flush instructions required for B 3 -tree is significantly reduced. Our performance study shows that B 3 -tree outperforms other state-of-the-art persistent indexes in terms of insert and delete performance. While B 3 -tree shows slightly worse performance for point query performance, the range query performance of B 3 -tree is 2x faster than FAST and FAIR B-tree because the leaf page size of B 3 -tree can be set to 8x larger than that of FAST and FAIR B-tree without degrading insertion performance. We also show that read transactions can access B 3 -tree without acquiring a shared lock because B 3 -tree remains always consistent while a sequence of 8-byte write operations are making changes to it. As a result, B 3 -tree provides high concurrency level comparable to FAST and FAIR B-tree.</description><issn>1553-3077</issn><issn>1553-3093</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2020</creationdate><recordtype>article</recordtype><recordid>eNpjYOA3NNAzNDQx1Tc2tjQxMDJlYuA0NDU11jU2sDRmgbPNzTkYuIqLswwMjM2MTEw5GTidFIwVdEOKUlN5GFjTEnOKU3mhNDeDuptriLOHbnJRfnFxUWpafEFRZm5iUWW8oUE8yKZ4qE3GxKsEANLMKSY</recordid><startdate>20200831</startdate><enddate>20200831</enddate><creator>Cha, Hokeun</creator><creator>Nam, Moohyeon</creator><creator>Jin, Kibeom</creator><creator>Seo, Jiwon</creator><creator>Nam, Beomseok</creator><scope>AAYXX</scope><scope>CITATION</scope></search><sort><creationdate>20200831</creationdate><title>B 3 -Tree</title><author>Cha, Hokeun ; Nam, Moohyeon ; Jin, Kibeom ; Seo, Jiwon ; Nam, Beomseok</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-crossref_primary_10_1145_33940253</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2020</creationdate><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Cha, Hokeun</creatorcontrib><creatorcontrib>Nam, Moohyeon</creatorcontrib><creatorcontrib>Jin, Kibeom</creatorcontrib><creatorcontrib>Seo, Jiwon</creatorcontrib><creatorcontrib>Nam, Beomseok</creatorcontrib><collection>CrossRef</collection><jtitle>ACM transactions on storage</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Cha, Hokeun</au><au>Nam, Moohyeon</au><au>Jin, Kibeom</au><au>Seo, Jiwon</au><au>Nam, Beomseok</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>B 3 -Tree: Byte-Addressable Binary B-Tree for Persistent Memory</atitle><jtitle>ACM transactions on storage</jtitle><date>2020-08-31</date><risdate>2020</risdate><volume>16</volume><issue>3</issue><spage>1</spage><epage>27</epage><pages>1-27</pages><issn>1553-3077</issn><eissn>1553-3093</eissn><abstract>In this work, we propose B 3 -tree , a hybrid index for persistent memory that leverages the byte-addressability of the in-memory index and the page locality of B-trees. As in the byte-addressable in-memory index, B 3 -tree is updated by 8-byte store instructions. Also, as in disk-based index, B 3 -tree is failure-atomic since it makes every 8-byte store instruction transform a consistent index into another consistent index without the help of expensive logging. Since expensive logging becomes unnecessary, the number of cacheline flush instructions required for B 3 -tree is significantly reduced. Our performance study shows that B 3 -tree outperforms other state-of-the-art persistent indexes in terms of insert and delete performance. While B 3 -tree shows slightly worse performance for point query performance, the range query performance of B 3 -tree is 2x faster than FAST and FAIR B-tree because the leaf page size of B 3 -tree can be set to 8x larger than that of FAST and FAIR B-tree without degrading insertion performance. We also show that read transactions can access B 3 -tree without acquiring a shared lock because B 3 -tree remains always consistent while a sequence of 8-byte write operations are making changes to it. As a result, B 3 -tree provides high concurrency level comparable to FAST and FAIR B-tree.</abstract><doi>10.1145/3394025</doi></addata></record>
fulltext fulltext
identifier ISSN: 1553-3077
ispartof ACM transactions on storage, 2020-08, Vol.16 (3), p.1-27
issn 1553-3077
1553-3093
language eng
recordid cdi_crossref_primary_10_1145_3394025
source ACM Digital Library Complete
title B 3 -Tree: Byte-Addressable Binary B-Tree for Persistent Memory
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-20T04%3A40%3A28IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-crossref&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=B%203%20-Tree:%20Byte-Addressable%20Binary%20B-Tree%20for%20Persistent%20Memory&rft.jtitle=ACM%20transactions%20on%20storage&rft.au=Cha,%20Hokeun&rft.date=2020-08-31&rft.volume=16&rft.issue=3&rft.spage=1&rft.epage=27&rft.pages=1-27&rft.issn=1553-3077&rft.eissn=1553-3093&rft_id=info:doi/10.1145/3394025&rft_dat=%3Ccrossref%3E10_1145_3394025%3C/crossref%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true