Pivotal B+tree for Byte-Addressable Persistent Memory

Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement PB + tree (Pivotal B+tree) that resolves the limitations of state-of-the-art fully persistent B+trees. First, PB+tree reduces the number of expensive shift oper...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:IEEE access 2022, Vol.10, p.46725-46737
Hauptverfasser: Yoo, Jongyeon, Cha, Hokeun, Kim, Wonbae, Kim, Wook-Hee, Park, Sung-Soon, Nam, Beomseok
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 46737
container_issue
container_start_page 46725
container_title IEEE access
container_volume 10
creator Yoo, Jongyeon
Cha, Hokeun
Kim, Wonbae
Kim, Wook-Hee
Park, Sung-Soon
Nam, Beomseok
description Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement PB + tree (Pivotal B+tree) that resolves the limitations of state-of-the-art fully persistent B+trees. First, PB+tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a pivot key. Second, PB+tree reads cachelines in ascending order, which makes PB+tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B+trees that access cachelines in non-contiguous or descending order. Third, PB+tree employs an optimistic lock-free search algorithm to avoid repeatedly visiting the same tree node. Although the optimistic lock-free search algorithm involves a risk of visiting incorrect child nodes, PB+tree guarantees correct search results using the lazy correction algorithm using doubly linked sibling pointers. Our performance study shows that PB+tree outperforms the state-of-the-art fully persistent indexes by a large margin. A search algorithm without optimistic locking risks visiting the wrong child node, but PB+tree uses a lazy correction algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB+trees outperform state-of-the-art fully persistent indexes.
doi_str_mv 10.1109/ACCESS.2022.3170916
format Article
fullrecord <record><control><sourceid>proquest_ieee_</sourceid><recordid>TN_cdi_proquest_journals_2660159863</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>9764757</ieee_id><doaj_id>oai_doaj_org_article_4bc3aa8c9d25472c9db618cf83144c61</doaj_id><sourcerecordid>2660159863</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3236-6b626fc54e5cc92ae1e7b7a8542de7cb0e297f6e067adf05aeaab7501b04ab193</originalsourceid><addsrcrecordid>eNpNUE1LAzEUDKJg0f6CXhY8ytZ8Z3NsS9VCxUL1HJLsW9mybWqyFfrv3bql-C7zGGbmPQahEcFjQrB-msxm8_V6TDGlY0YU1kReoQElUudMMHn9b79Fw5Q2uJuio4QaILGqf0Jrm2z62EaArAoxmx5byCdlGSEl6xrIVhBTnVrYtdkbbEM83qObyjYJhme8Q5_P84_Za758f1nMJsvcM8pkLp2ksvKCg_BeUwsElFO2EJyWoLzDQLWqJGCpbFlhYcFapwQmDnPriGZ3aNHnlsFuzD7WWxuPJtja_BEhfhkb29o3YLjzzNrC65IKrmiHTpLCVwUjnHtJuqyHPmsfw_cBUms24RB33fuGSomJ0IVknYr1Kh9DShGqy1WCzalu09dtTnWbc92da9S7agC4OLSSXAnFfgGfT3oy</addsrcrecordid><sourcetype>Open Website</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2660159863</pqid></control><display><type>article</type><title>Pivotal B+tree for Byte-Addressable Persistent Memory</title><source>IEEE Open Access Journals</source><source>DOAJ Directory of Open Access Journals</source><source>EZB-FREE-00999 freely available EZB journals</source><creator>Yoo, Jongyeon ; Cha, Hokeun ; Kim, Wonbae ; Kim, Wook-Hee ; Park, Sung-Soon ; Nam, Beomseok</creator><creatorcontrib>Yoo, Jongyeon ; Cha, Hokeun ; Kim, Wonbae ; Kim, Wook-Hee ; Park, Sung-Soon ; Nam, Beomseok</creatorcontrib><description>Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement PB + tree (Pivotal B+tree) that resolves the limitations of state-of-the-art fully persistent B+trees. First, PB+tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a pivot key. Second, PB+tree reads cachelines in ascending order, which makes PB+tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B+trees that access cachelines in non-contiguous or descending order. Third, PB+tree employs an optimistic lock-free search algorithm to avoid repeatedly visiting the same tree node. Although the optimistic lock-free search algorithm involves a risk of visiting incorrect child nodes, PB+tree guarantees correct search results using the lazy correction algorithm using doubly linked sibling pointers. Our performance study shows that PB+tree outperforms the state-of-the-art fully persistent indexes by a large margin. A search algorithm without optimistic locking risks visiting the wrong child node, but PB+tree uses a lazy correction algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB+trees outperform state-of-the-art fully persistent indexes.</description><identifier>ISSN: 2169-3536</identifier><identifier>EISSN: 2169-3536</identifier><identifier>DOI: 10.1109/ACCESS.2022.3170916</identifier><identifier>CODEN: IAECCG</identifier><language>eng</language><publisher>Piscataway: IEEE</publisher><subject>Algorithms ; Arrays ; database concurrency operations ; fault tolerance ; Hardware ; Indexes ; Locking ; Parallel processing ; Performance indices ; Prefetching ; Random access memory ; Search algorithms ; Transient analysis ; Tree data structures ; Trees</subject><ispartof>IEEE access, 2022, Vol.10, p.46725-46737</ispartof><rights>Copyright The Institute of Electrical and Electronics Engineers, Inc. (IEEE) 2022</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3236-6b626fc54e5cc92ae1e7b7a8542de7cb0e297f6e067adf05aeaab7501b04ab193</citedby><cites>FETCH-LOGICAL-c3236-6b626fc54e5cc92ae1e7b7a8542de7cb0e297f6e067adf05aeaab7501b04ab193</cites><orcidid>0000-0001-5481-6070 ; 0000-0002-7284-3520</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/9764757$$EHTML$$P50$$Gieee$$Hfree_for_read</linktohtml><link.rule.ids>314,780,784,864,2102,4024,27633,27923,27924,27925,54933</link.rule.ids></links><search><creatorcontrib>Yoo, Jongyeon</creatorcontrib><creatorcontrib>Cha, Hokeun</creatorcontrib><creatorcontrib>Kim, Wonbae</creatorcontrib><creatorcontrib>Kim, Wook-Hee</creatorcontrib><creatorcontrib>Park, Sung-Soon</creatorcontrib><creatorcontrib>Nam, Beomseok</creatorcontrib><title>Pivotal B+tree for Byte-Addressable Persistent Memory</title><title>IEEE access</title><addtitle>Access</addtitle><description>Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement PB + tree (Pivotal B+tree) that resolves the limitations of state-of-the-art fully persistent B+trees. First, PB+tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a pivot key. Second, PB+tree reads cachelines in ascending order, which makes PB+tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B+trees that access cachelines in non-contiguous or descending order. Third, PB+tree employs an optimistic lock-free search algorithm to avoid repeatedly visiting the same tree node. Although the optimistic lock-free search algorithm involves a risk of visiting incorrect child nodes, PB+tree guarantees correct search results using the lazy correction algorithm using doubly linked sibling pointers. Our performance study shows that PB+tree outperforms the state-of-the-art fully persistent indexes by a large margin. A search algorithm without optimistic locking risks visiting the wrong child node, but PB+tree uses a lazy correction algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB+trees outperform state-of-the-art fully persistent indexes.</description><subject>Algorithms</subject><subject>Arrays</subject><subject>database concurrency operations</subject><subject>fault tolerance</subject><subject>Hardware</subject><subject>Indexes</subject><subject>Locking</subject><subject>Parallel processing</subject><subject>Performance indices</subject><subject>Prefetching</subject><subject>Random access memory</subject><subject>Search algorithms</subject><subject>Transient analysis</subject><subject>Tree data structures</subject><subject>Trees</subject><issn>2169-3536</issn><issn>2169-3536</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><sourceid>ESBDL</sourceid><sourceid>RIE</sourceid><sourceid>DOA</sourceid><recordid>eNpNUE1LAzEUDKJg0f6CXhY8ytZ8Z3NsS9VCxUL1HJLsW9mybWqyFfrv3bql-C7zGGbmPQahEcFjQrB-msxm8_V6TDGlY0YU1kReoQElUudMMHn9b79Fw5Q2uJuio4QaILGqf0Jrm2z62EaArAoxmx5byCdlGSEl6xrIVhBTnVrYtdkbbEM83qObyjYJhme8Q5_P84_Za758f1nMJsvcM8pkLp2ksvKCg_BeUwsElFO2EJyWoLzDQLWqJGCpbFlhYcFapwQmDnPriGZ3aNHnlsFuzD7WWxuPJtja_BEhfhkb29o3YLjzzNrC65IKrmiHTpLCVwUjnHtJuqyHPmsfw_cBUms24RB33fuGSomJ0IVknYr1Kh9DShGqy1WCzalu09dtTnWbc92da9S7agC4OLSSXAnFfgGfT3oy</recordid><startdate>2022</startdate><enddate>2022</enddate><creator>Yoo, Jongyeon</creator><creator>Cha, Hokeun</creator><creator>Kim, Wonbae</creator><creator>Kim, Wook-Hee</creator><creator>Park, Sung-Soon</creator><creator>Nam, Beomseok</creator><general>IEEE</general><general>The Institute of Electrical and Electronics Engineers, Inc. (IEEE)</general><scope>97E</scope><scope>ESBDL</scope><scope>RIA</scope><scope>RIE</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>7SP</scope><scope>7SR</scope><scope>8BQ</scope><scope>8FD</scope><scope>JG9</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>DOA</scope><orcidid>https://orcid.org/0000-0001-5481-6070</orcidid><orcidid>https://orcid.org/0000-0002-7284-3520</orcidid></search><sort><creationdate>2022</creationdate><title>Pivotal B+tree for Byte-Addressable Persistent Memory</title><author>Yoo, Jongyeon ; Cha, Hokeun ; Kim, Wonbae ; Kim, Wook-Hee ; Park, Sung-Soon ; Nam, Beomseok</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3236-6b626fc54e5cc92ae1e7b7a8542de7cb0e297f6e067adf05aeaab7501b04ab193</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>Algorithms</topic><topic>Arrays</topic><topic>database concurrency operations</topic><topic>fault tolerance</topic><topic>Hardware</topic><topic>Indexes</topic><topic>Locking</topic><topic>Parallel processing</topic><topic>Performance indices</topic><topic>Prefetching</topic><topic>Random access memory</topic><topic>Search algorithms</topic><topic>Transient analysis</topic><topic>Tree data structures</topic><topic>Trees</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Yoo, Jongyeon</creatorcontrib><creatorcontrib>Cha, Hokeun</creatorcontrib><creatorcontrib>Kim, Wonbae</creatorcontrib><creatorcontrib>Kim, Wook-Hee</creatorcontrib><creatorcontrib>Park, Sung-Soon</creatorcontrib><creatorcontrib>Nam, Beomseok</creatorcontrib><collection>IEEE All-Society Periodicals Package (ASPP) 2005-present</collection><collection>IEEE Open Access Journals</collection><collection>IEEE All-Society Periodicals Package (ASPP) 1998-Present</collection><collection>IEEE Electronic Library (IEL)</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Electronics &amp; Communications Abstracts</collection><collection>Engineered Materials Abstracts</collection><collection>METADEX</collection><collection>Technology Research Database</collection><collection>Materials Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>DOAJ Directory of Open Access Journals</collection><jtitle>IEEE access</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Yoo, Jongyeon</au><au>Cha, Hokeun</au><au>Kim, Wonbae</au><au>Kim, Wook-Hee</au><au>Park, Sung-Soon</au><au>Nam, Beomseok</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Pivotal B+tree for Byte-Addressable Persistent Memory</atitle><jtitle>IEEE access</jtitle><stitle>Access</stitle><date>2022</date><risdate>2022</risdate><volume>10</volume><spage>46725</spage><epage>46737</epage><pages>46725-46737</pages><issn>2169-3536</issn><eissn>2169-3536</eissn><coden>IAECCG</coden><abstract>Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement PB + tree (Pivotal B+tree) that resolves the limitations of state-of-the-art fully persistent B+trees. First, PB+tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a pivot key. Second, PB+tree reads cachelines in ascending order, which makes PB+tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B+trees that access cachelines in non-contiguous or descending order. Third, PB+tree employs an optimistic lock-free search algorithm to avoid repeatedly visiting the same tree node. Although the optimistic lock-free search algorithm involves a risk of visiting incorrect child nodes, PB+tree guarantees correct search results using the lazy correction algorithm using doubly linked sibling pointers. Our performance study shows that PB+tree outperforms the state-of-the-art fully persistent indexes by a large margin. A search algorithm without optimistic locking risks visiting the wrong child node, but PB+tree uses a lazy correction algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB+trees outperform state-of-the-art fully persistent indexes.</abstract><cop>Piscataway</cop><pub>IEEE</pub><doi>10.1109/ACCESS.2022.3170916</doi><tpages>13</tpages><orcidid>https://orcid.org/0000-0001-5481-6070</orcidid><orcidid>https://orcid.org/0000-0002-7284-3520</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 2169-3536
ispartof IEEE access, 2022, Vol.10, p.46725-46737
issn 2169-3536
2169-3536
language eng
recordid cdi_proquest_journals_2660159863
source IEEE Open Access Journals; DOAJ Directory of Open Access Journals; EZB-FREE-00999 freely available EZB journals
subjects Algorithms
Arrays
database concurrency operations
fault tolerance
Hardware
Indexes
Locking
Parallel processing
Performance indices
Prefetching
Random access memory
Search algorithms
Transient analysis
Tree data structures
Trees
title Pivotal B+tree for Byte-Addressable Persistent Memory
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-29T07%3A11%3A55IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_ieee_&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Pivotal%20B+tree%20for%20Byte-Addressable%20Persistent%20Memory&rft.jtitle=IEEE%20access&rft.au=Yoo,%20Jongyeon&rft.date=2022&rft.volume=10&rft.spage=46725&rft.epage=46737&rft.pages=46725-46737&rft.issn=2169-3536&rft.eissn=2169-3536&rft.coden=IAECCG&rft_id=info:doi/10.1109/ACCESS.2022.3170916&rft_dat=%3Cproquest_ieee_%3E2660159863%3C/proquest_ieee_%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2660159863&rft_id=info:pmid/&rft_ieee_id=9764757&rft_doaj_id=oai_doaj_org_article_4bc3aa8c9d25472c9db618cf83144c61&rfr_iscdi=true