Boosting the Search Performance of B+-tree for Non-volatile Memory with Sentinels

by   Chongnan Ye, et al.

The next-generation non-volatile memory (NVM) is striding into computer systems as a new tier as it incorporates both DRAM's byte-addressability and disk's persistency. Researchers and practitioners have considered building persistent memory by placing NVM on the memory bus for CPU to directly load and store data. As a result, cache-friendly data structures have been developed for NVM. One of them is the prevalent B+-tree. State-of-the-art in-NVM B+-trees mainly focus on the optimization of write operations (insertion and deletion). However, search is of vital importance for B+-tree. Not only search-intensive workloads benefit from an optimized search, but insertion and deletion also rely on a preceding search operation to proceed. In this paper, we attentively study a sorted B+-tree node that spans over contiguous cache lines. Such cache lines exhibit a monotonically increasing trend and searching a target key across them can be accelerated by estimating a range the key falls into. To do so, we construct a probing Sentinel Array in which a sentinel stands for each cache line of B+-tree node. Checking the Sentinel Array avoids scanning unnecessary cache lines and hence significantly reduces cache misses for a search. A quantitative evaluation shows that using Sentinel Arrays boosts the search performance of state-of-the-art in-NVM B+-trees by up to 48.4 cost of maintaining of Sentinel Array is low.


page 1

page 2

page 3

page 4


Cache-Friendly Search Trees; or, In Which Everything Beats std::set

While a lot of work in theoretical computer science has gone into optimi...

Cache Optimization for Memory Intensive Workloads on Multi-socket Multi-core servers

Major chip manufacturers have all introduced multicore microprocessors. ...

Index Search Algorithms for Databases and Modern CPUs

Over the years, many different indexing techniques and search algorithms...

Cache-Oblivious Representation of B-Tree Structures

We present a data structure CORoBTS for storing a search tree with all l...

Fast Bitmap Fit: A CPU Cache Line friendly memory allocator for single object allocations

Applications making excessive use of single-object based data structures...

Forest Packing: Fast, Parallel Decision Forests

Machine learning has an emerging critical role in high-performance compu...

Circ-Tree: A B+-Tree Variant with Circular Design for Persistent Memory

Several B+-tree variants have been developed to exploit the performance ...

Please sign up or login with your details

Forgot password? Click here to reset