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 <italic>PB</italic>&#x002B;<italic>tree</italic> (Pivotal B&#x002B;tree) that resolves the limitations of state-of-the-art fully...

Full description

Bibliographic Details
Main Authors: Jonghyeon Yoo, Hokeun Cha, Wonbae Kim, Wook-Hee Kim, Sung-Soon Park, Beomseok Nam
Format: Article
Language:English
Published: IEEE 2022-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/9764757/
_version_ 1818232069784862720
author Jonghyeon Yoo
Hokeun Cha
Wonbae Kim
Wook-Hee Kim
Sung-Soon Park
Beomseok Nam
author_facet Jonghyeon Yoo
Hokeun Cha
Wonbae Kim
Wook-Hee Kim
Sung-Soon Park
Beomseok Nam
author_sort Jonghyeon Yoo
collection DOAJ
description Over the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement <italic>PB</italic>&#x002B;<italic>tree</italic> (Pivotal B&#x002B;tree) that resolves the limitations of state-of-the-art fully persistent B&#x002B;trees. First, PB&#x002B;tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a <italic>pivot</italic> key. Second, PB&#x002B;tree reads cachelines in ascending order, which makes PB&#x002B;tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B&#x002B;trees that access cachelines in non-contiguous or descending order. Third, PB&#x002B;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&#x002B;tree guarantees correct search results using the <italic>lazy correction</italic> algorithm using doubly linked sibling pointers. Our performance study shows that PB&#x002B;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&#x002B;tree uses a <italic>lazy correction</italic> algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB&#x002B;trees outperform state-of-the-art fully persistent indexes.
first_indexed 2024-12-12T11:00:26Z
format Article
id doaj.art-4bc3aa8c9d25472c9db618cf83144c61
institution Directory Open Access Journal
issn 2169-3536
language English
last_indexed 2024-12-12T11:00:26Z
publishDate 2022-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj.art-4bc3aa8c9d25472c9db618cf83144c612022-12-22T00:26:32ZengIEEEIEEE Access2169-35362022-01-0110467254673710.1109/ACCESS.2022.31709169764757Pivotal B&#x002B;tree for Byte-Addressable Persistent MemoryJonghyeon Yoo0Hokeun Cha1Wonbae Kim2Wook-Hee Kim3Sung-Soon Park4https://orcid.org/0000-0002-7284-3520Beomseok Nam5https://orcid.org/0000-0001-5481-6070Department of Software, Sungkyunkwan University, Suwon, South KoreaDepartment of Computer Sciences, University of Wisconsin&#x2013;Madison, Madison, WI, USAUlsan National Institute of Science and Technology, Ulsan, South KoreaDepartment of Software, Konkuk University, Seoul, South KoreaGluesys, Anyang, South KoreaDepartment of Software, Sungkyunkwan University, Suwon, South KoreaOver the past few years, various indexes have been redesigned for byte-addressable persistent memory. In this work, we design and implement <italic>PB</italic>&#x002B;<italic>tree</italic> (Pivotal B&#x002B;tree) that resolves the limitations of state-of-the-art fully persistent B&#x002B;trees. First, PB&#x002B;tree reduces the number of expensive shift operations by up to half by managing two sub-arrays separated by a <italic>pivot</italic> key. Second, PB&#x002B;tree reads cachelines in ascending order, which makes PB&#x002B;tree benefit from hardware prefetchers and run faster than state-of-the-art persistent B&#x002B;trees that access cachelines in non-contiguous or descending order. Third, PB&#x002B;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&#x002B;tree guarantees correct search results using the <italic>lazy correction</italic> algorithm using doubly linked sibling pointers. Our performance study shows that PB&#x002B;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&#x002B;tree uses a <italic>lazy correction</italic> algorithm with doubly linked sibling pointers to ensure correct search results. Our performance studies show that PB&#x002B;trees outperform state-of-the-art fully persistent indexes.https://ieeexplore.ieee.org/document/9764757/Tree data structuresfault tolerancedatabase concurrency operations
spellingShingle Jonghyeon Yoo
Hokeun Cha
Wonbae Kim
Wook-Hee Kim
Sung-Soon Park
Beomseok Nam
Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
IEEE Access
Tree data structures
fault tolerance
database concurrency operations
title Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
title_full Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
title_fullStr Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
title_full_unstemmed Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
title_short Pivotal B&#x002B;tree for Byte-Addressable Persistent Memory
title_sort pivotal b x002b tree for byte addressable persistent memory
topic Tree data structures
fault tolerance
database concurrency operations
url https://ieeexplore.ieee.org/document/9764757/
work_keys_str_mv AT jonghyeonyoo pivotalbx002btreeforbyteaddressablepersistentmemory
AT hokeuncha pivotalbx002btreeforbyteaddressablepersistentmemory
AT wonbaekim pivotalbx002btreeforbyteaddressablepersistentmemory
AT wookheekim pivotalbx002btreeforbyteaddressablepersistentmemory
AT sungsoonpark pivotalbx002btreeforbyteaddressablepersistentmemory
AT beomseoknam pivotalbx002btreeforbyteaddressablepersistentmemory