ajccosta / memc3

MemC3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Changes to original MemC3 repository

Some changes were made to this repository:

  1. asserts are off by default as memc3 was violating its assert statements (this means the version we test might not be correct)
  2. The binary name to run memc3 was changed from memc3 to memcached, so to run memc3 simply do:
 ./memcached <args>
  1. sigignore was depecrated. It was changed to signal
  2. The number of cores is not assumed to be 6, it is checked dynamically

MemC3

MemC3 is an in-memory key-value cache, derived from Memcached but improved with memory-efficient and concurrent data structures. MemC3 applies multi-reader concurrent cuckoo hashing as its key-value index and CLOCK-replacement algorithm as cache eviction policy. As a result, MemC3 scales better, runs faster, and uses less memory. For details about the algorithms, performance evaluation and citations, please refer to our paper in NSDI 2013. For a re-engineered fast, concurrent, stand-alone implementation of concurrent cuckoo hash table, please check our efficient/libcukoo repository.

Authors

MemC3 is developed by Bin Fan, David G. Andersen, and Michael Kaminsky. You can also email us at libcuckoo-dev@googlegroups.com.

Requirements

$ sudo apt-get install libevent-dev

Building

$ autoreconf -fis
$ ./configure
$ make

If you want to generate optimized build (e.g., with -O2), run ./configure CFLAGS='-O2' instead of ./configure before make. Alternatively, if you want to create debug build (e.g., with -g -ggdb), use ./configure CFLAGS='-g -ggdb'

Benchmark

In our NSDI paper, memc3 is benchmared using workloads gerenated by Yahoo YCSB. Note that, YCSB is designed to benchmark the performance of cloud file systems, but too slow when used to benchmark memc3 or memcached directly. Therefore, we pre-generate workloads (using script bench/ycsb_workloads_gen.sh which reads settings in bench/ycsb_workloads_settings), and run clients to read these pre-generated traces before benchmarking.

About

MemC3

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C 70.5%Language:Perl 22.6%Language:M4 3.3%Language:DTrace 1.7%Language:Shell 0.9%Language:C++ 0.7%Language:Makefile 0.4%