• Stars
    star
    150
  • Rank 247,323 (Top 5 %)
  • Language
    C
  • License
    BSD 3-Clause "New...
  • Created over 10 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MemC3

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 [email protected].

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.

More Repositories

1

libcuckoo

A high-performance, concurrent hash table
C++
1,540
star
2

cuckoofilter

C++
937
star
3

epaxos

Go
610
star
4

SuRF

First Practical and General-purpose Range Filter
C++
533
star
5

rdma_bench

A framework to understand RDMA
C
367
star
6

mica

MICA: A Fast In-memory Key-Value Store (see isca2015 branch for the ISCA2015 version)
C
203
star
7

HOPE

Order-preserving key encoder
C++
122
star
8

fasst

Source code for our OSDI 2016 paper
C++
106
star
9

HERD

Java
62
star
10

cicada-engine

The Cicada engine
C++
56
star
11

paper_skel

A LaTeX paper skeleton for CS systems conference formats
Python
55
star
12

ffbf

Feed-forward Bloom filters
C
52
star
13

rankselect

Space-Efficient, High-Performance Rank & Select Structures on Uncompressed Bit Sequences
C++
51
star
14

mica2

A fast in-memory key-value store
C++
49
star
15

libcuckoo-c

High-performance Concurrent Cuckoo Hashing Library
47
star
16

gopt

Fast packet processing using CPUs
C
38
star
17

go-cuckoo

A high-performance, memory-efficient concurrent hash table
Go
36
star
18

cuckooswitch

A software-based Ethernet switch design built around a memory-efficient, high-performance, and highly-concurrent hash table for compact and fast FIB lookup
C
34
star
19

fast-succinct-trie

C++
25
star
20

nvram

Tools for safe management of persistent main memory.
C
25
star
21

libinger

https://www.usenix.org/conference/atc20/presentation/boucher
Rust
24
star
22

qlease

Go
22
star
23

cicada

Dependably fast multi-core in-memory transactions
19
star
24

gobin-codegen

Automatic codegen for encoding/binary marshaling
Go
17
star
25

cicada-exp-sigmod2017

Cicada SIGMOD 2017 evaluation
Python
16
star
26

microservices_microbenchmarks

Code for the benchmarks presented in https://www.usenix.org/conference/atc18/presentation/boucher
Rust
12
star
27

ARF

C++
11
star
28

msls-eval

Accurate and Fast Evaluation of Multi-Stage Log-Structured Designs
C++
10
star
29

catbench

CATBench, the Intel Cache Allocation Technology benchmarking suite described in our tech report, "Simple Cache Partitioning for Networked Workloads"
C
10
star
30

cicada-exp-sigmod2017-DBx1000

A fork of DBx1000 for Cicada SIGMOD 2017 evaluation
C++
9
star
31

SuRF-demo

SuRF demo
C++
5
star
32

biblio

TeX
5
star
33

libas-safe

POSIX async-signal safety without thinking about it
C
3
star
34

mica2-catbench

MICA 2 and gRPC for CATBench
C++
1
star
35

cicada-exp-sigmod2017-silo

A fork of Silo for Cicada SIGMOD 2017 evaluation
C++
1
star
36

tokio

Forked from tokio-rs/tokio
Rust
1
star
37

cicada-exp-sigmod2017-silo-masstree-beta

A fork of masstree-beta (referenced by Silo) for Cicada SIGMOD 2017 evaluation
C++
1
star
38

cicada-exp-sigmod2017-ermia

A fork of ermia for Cicada SIGMOD 2017 evaluation
C++
1
star