Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
README.md
circular-log.cc
circular-log.h
common.h
formica-benchmark.cc
formica-test.cc
store.cc
store.h

README.md

Formica: simplified MICA key-value storage

This directory contains a simple implementation of MICA's key-value store, which uses a lossy hash table and circular log to get good single-core performance.

The Formica implementation, is introduced in this blog post summarising the original paper.

There are three store implementations here in store.cc:

  • FormicaStore is a reimplementation of MICA's lossy hash and circular log
  • StdMapStore is a key-value store that uses a lossless std::map as an index, and Formica's CircularLog as a backing store.
  • ChainedLossyHashStore is a key-value store that uses a linearly-chained hash table with limited chain sizes. Values are stored in the chain nodes themselves; there is no separation of index and storage.

Here's their relative performance, measured on my 2013 Macbook Pro with 16GB of memory:

Different workloads Key sizes

To build, see the instructions in the root-level.