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

@article{Arulraj2018BzTreeAH,
  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.},
  year={2018},
  volume={11},
  pages={553-565}
}
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

TLDR
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

TLDR
This paper focuses on B+-Tree-based range indexes and carefully chooses four representative index structures for evaluation, identifying key, effective techniques, insights and caveats to guide the making of future PM-based index structures.

Managing Non-Volatile Memory in Database Systems

TLDR
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

TLDR
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

TLDR
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

TLDR
This article proposes ComboTree, a three-tiered indexing structure with a sorted key space that is faster than the efficient B+Tree variant in various scan granularities, and implemented and evaluated on Intel’s Optane DCPMM.

Transactions on Red-black and AVL trees in NVRAM

TLDR
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

TLDR
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

TLDR
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.

Tair-PMem: a Fully Durable Non-Volatile Memory Database

TLDR
Tair-PMem is the rst cloud service that makes good use of the persistence capability of NVM, and adopts a well-controlled data layout and a log-as-user-data design to mitigate NVM overheads, and eases the NVM programming complexity by providing a hybrid memory programming toolkit.
...

References

SHOWING 1-10 OF 37 REFERENCES

Easy Lock-Free Indexing in Non-Volatile Memory

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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

TLDR
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