Skip to content
/ DARE Public
forked from cwang9208/DARE

High-Performance State Machine Replication on RDMA Networks

License

Notifications You must be signed in to change notification settings

LichK9/DARE

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DARE -- Direct Access REplication
=================================

Brief: A wait-free direct access protocol that uses RDMA features such as QP disconnect and QP timeouts, to ensure highest performance and reliability.

Build DARE
----------
1. Prerequisites
    - libev (version >= 4.15)
    - libibverbs (version >= 1.0.0)
2. ./configure --help
Script for building DARE
usage  : $0 [options]
options: [--prefix=DIR]                # Installation directory
         [--with-ev=DIR]               # libev installation directory: libev.a
         [--with-ibv=DIR]              # libibverbs installation directory
3. make
CFLAGS = -Wl,--no-as-needed#-Wall -Wunused-function #-Wextra

Running benchmarks (from [1])
-----------------------------
1. Latency benchmark (i.e., a single client sends requests (according to a trace) to a DARE group)
./benchmarks/latency_bench.sh --help
Script for starting DARE's latency benchmark
usage  : $0 [options]
options: [--dare=DIR]               # path to DARE bin and lib
         [--size=INT]               # server count [default 3]
         [--op=put|get]             # operation type [default put]

2. Throughput benchmark (i.e., multiple clients send requests (according to a trace) to a DARE group)
./benchmarks/throughput_bench.sh --help
Script for starting DARE's throughput benchmark
usage  : $0 [options]
options: --dare=DIR           # path to DARE bin and lib
         [--scount=INT]       # server count [default 3]
         [--ccount=INT]       # client count [default 1]   
         [--op=put|get]       # operation type [default put]
         [--bsize=(8-1024)]   # blob size [default 64]   
         [--proc=(0-100)]     # percentage of op operation [default 100]

3. Group reconfiguration benchmark (i.e., DARE’s write throughput during group reconfiguration)
./benchmarks/reconf_bench.sh --help
Script for starting DARE's group reconfiguration benchmark
usage  : $0 [options]
options: --dare=DIR           # path to DARE bin and lib
         [--op=put|get]       # operation type [default put]
         [--bsize=(8-1024)]   # blob size [default 64]

Note: The benchmarks generate data into $CWD/data, where $CWD is the folder from where the scripts are launched. 

Folder overview
---------------
./bin -- binaries
./lib -- libraries
./src -- source files
./include -- header files
./trace -- trace generator
./test -- main functions for server/client
./utils 
    - rbtree -- red-black Trees implementation (Linux)
    - libev-4.15.tar.gz 
 
[1]  M. Poke, T. Hoefler: DARE: High-Performance State Machine Replication on RDMA Networks. 
In Proceedings of the 24th ACM International Symposium on High-Performance Parallel and 
Distributed Computing (HPDC’15)

About

High-Performance State Machine Replication on RDMA Networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.7%
  • Shell 4.5%
  • Makefile 0.8%