Cache craftiness for fast multicore key-value storage

By Yandong Mao, Eddie Kohler, Robert Morris. European Conference on Computer Systems, 2012

528 citations recorded by the source corpus.

We present Masstree, a fast key-value database designed for SMP machines. Masstree keeps all data in memory. Its main data structure is a trie-like concatenation of B+-trees, each of which handles a fixed-length slice of a variable-length key. This structure effectively handles arbitrary-length possiblybinary keys, including keys with long shared prefixes. +-tree fanout was chosen to minimize total DRAM delay when descending the tree and prefetching each tree node. Lookups use optimistic concurrency control, a read-copy-update-like technique, and do not write shared data structures; updates lock only affected nodes. Logging and checkpointing provide consistency and durability. Though some of these ideas appear elsewhere, Masstree is the first to combine them. We discuss design variants and their consequences. On a 16-core machine, with logging enabled and queries arriving over a network, Masstree executes more than six million simple queries per second. This performance is comparable to that of memcached, a non-persistent hash table server, and higher (often much higher) than that of VoltDB, MongoDB, and Redis.

Subfields: Computer Networks and Communications, Hardware and Architecture

View Paper: https://www.semanticscholar.org/paper/02238222335347bf16048b9bdd306aab48c98002

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Computer Networks and Communications

  1. Johannes Gehrke
  2. Samuel Madden
  3. Michael Kaminsky
  4. D. Andersen
  5. Anuj Kalia
  6. Kian-Lee Tan
  7. Beng Chin Ooi
  8. Jinyang Li

In Hardware and Architecture

  1. Michael Kaminsky
  2. D. Andersen
  3. Anuj Kalia
  4. Jacob Nelson
  5. Jinyang Li
  6. Yifeng Geng
  7. Christopher Mitchell
  8. Andrea C. Arpaci-Dusseau

Citations in the corpus