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...
Gespeichert in:
Veröffentlicht in: | IEEE access 2022, Vol.10, p.46725-46737 |
---|---|
Hauptverfasser: | , , , , , |
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 & 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 |