BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory

  title={BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory},
  author={Joy Arulraj and Justin J. Levandoski and Umar Farooq Minhas and Per-{\AA}ke Larson},
  journal={Proc. VLDB Endow.},
Storing a database (rows and indexes) entirely in non-volatile memory (NVM) potentially enables both high performance and fast recovery. To fully exploit parallelism on modern CPUs, modern main-memory databases use latch-free (lock-free) index structures, e.g. Bw-tree or skip lists. To achieve high performance NVM-resident indexes also need to be latch-free. This paper describes the design of the BzTree, a latch-free B-tree index designed for NVM. The BzTree uses a persistent multi-word compare… 

Figures and Tables from this paper

Easy Lock-Free Indexing in Non-Volatile Memory

A key enabling component of this scheme is a multi-word compare-and-swap operation, PMwCAS, that is lock-free, persistent, and efficient, and sufficiently low that the same implementation can be used for both DRAM and NVRAM resident indexes.

Evaluating Persistent Memory Range Indexes

Through empirical evaluation using representative workloads, this paper identifies key, effective techniques, insights and caveats to guide the making of future PM-based index structures.

Managing Non-Volatile Memory in Database Systems

A lightweight storage manager that simultaneously supports DRAM, NVM, and flash is proposed that utilizes the byte addressability of NVM and uses it as an additional caching layer that improves performance without losing the benefits from the even faster DRAM and the large capacities of SSDs.

Data Management on Non-Volatile Memory: A Perspective

This paper focuses on two key challenges: integration of NVM into the memory hierarchy and the design of N VM-aware data structures and contrast the different approaches, highlight their advantages and limitations, and make recommendations.

PACTree: A High Performance Persistent Range Index Using PAC Guidelines

This work revisits and analyzes NVM and NVM-specific persistent memory indexes and proposes Packed Asynchronous Concurrency (PAC) guidelines for designing high-performance persistent index structures, and develops PACTree, a high- performance persistent range index following the PAC guidelines.

ComboTree: A Persistent Indexing Structure with Universal Operational Efficiency and Scalability

In ComboTree, a three-tiered indexing structure with a sorted key space is proposed, a background resizing policy is proposed to avoid performance degradation when the capacity of the ComboTree grows.

Transactions on Red-black and AVL trees in NVRAM

This work presents a generic transaction mechanism to update dynamic complex data structures `in-place' with a constant memory overhead, independent of the size of the data structure.

Zen: a High-Throughput Log-Free OLTP Engine for Non-Volatile Main Memory

Zen is proposed, a high-throughput log-free OLTP engine for NVM that addresses the three design challenges with three novel techniques: metadata enhanced tuple cache, log- free persistent transactions, and lightweight NVM space management.

KVell: the design and implementation of a fast persistent key-value store

KVell, the first persistent KV able to utilize modern NVMe SSDs at maximum bandwidth, is implemented and compared against available state-of-the-art LSM and B tree KVs, both with synthetic benchmarks and production workloads.

PLIN: A Persistent Learned Index for Non-Volatile Memory with High Performance and Instant Recovery

A new persistent learned index called PLIN, which combines an NVM-aware data placement strategy, locally unordered and globally ordered leaf nodes, a model copy mechanism, and a hierarchical insertion strategy and achieves 2.08x higher insertion performance and 4.42x higher query performance than its competitors on average.



Easy Lock-Free Indexing in Non-Volatile Memory

A key enabling component of this scheme is a multi-word compare-and-swap operation, PMwCAS, that is lock-free, persistent, and efficient, and sufficiently low that the same implementation can be used for both DRAM and NVRAM resident indexes.

To Lock, Swap, or Elide: On the Interplay of Hardware Transactional Memory and Lock-Free Indexing

This study uses two state-of-the-art index implementations: a memory-optimized B-tree extended with HTM to provide multi-threaded concurrency and the Bw-tree lock-free B- tree used in several Microsoft production environments.

NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems

NV-Tree, a consistent and cache-optimized B+Tree variant with reduced CPU cacheline flush, and NV-Store, a key-value store based on NV- tree, are implemented and evaluated on an NVDIMM server.

Cache craftiness for fast multicore key-value storage

This work presents Masstree, a fast key-value database designed for SMP machines, which is comparable to that of memcached, a non-persistent hash table server, and higher than that of VoltDB, MongoDB, and Redis.

The adaptive radix tree: ARTful indexing for main-memory databases

Main memory capacities have grown up to a point where most databases fit into RAM. For main-memory database systems, index structure performance is a critical bottleneck. Traditional in-memory data

FPTree: A Hybrid SCM-DRAM Persistent and Concurrent B-Tree for Storage Class Memory

A novel hybrid SCM-DRAM persistent and concurrent B-Tree, named Fingerprinting Persistent Tree (FPTree) that achieves similar performance to DRAM-based counterparts and a hybrid concurrency scheme for the FPTree that is partially based on Hardware Transactional Memory is proposed.

Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory

This paper presents Consistent and Durable Data Structures (CDDSs), a single-level data store that, on current hardware, allows programmers to safely exploit the low-latency and non-volatile aspects of new memory technologies.

The Bw-Tree: A B-tree for new hardware platforms

The architecture and algorithms for the Bw-tree are described, focusing on the main memory aspects, which achieves its very high performance via a latch-free approach that effectively exploits the processor caches of modern multi-core chips.

Persistent B+-Trees in Non-Volatile Main Memory

This paper proposes write atomic B+-Trees (wB+- Trees), a new type of main-memory B-Tree that aim to reduce such overhead as much as possible and replace Memcached's internal hash index with tree indices.

Lock-free deques and doubly linked lists