Skip to content
White-box genuine atomic multicast, mirror from
C Shell Python Makefile
Branch: master
Clone or download
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.
bench
docs
include
src
tests
utils
Makefile
README.md

README.md

White-box atomic multicast

This repository contains an implementation of the White-Box Atomic Multicast algorithm.

The implementation is event-driven and rely on libevent for asynchronous network communication.

The protocol logic lies in src/amcast* and makes use of Glib2's red-black tree and hashmap data structures.

The microbenchmarking application found under the bench folder can also drive LibMCast's servers to conduct a comparative study with other genuine atomic multicast protocols it implements.

Build :

git clone [this repo url]
make

Depends directly on libevent, Glib2, and LibMCast only for benchmarking purposes.

Usage :

Sample usage as a library may be found under bench/node-bench.c which instantiate server or clients on a single machine.

One-time experiments can be run with bench/runbench_tmux.sh.

Experiments for a range of clients, destination groups and protocols may be run with bench/run_cmpbench.sh

Configuration :

Pay attention to environment-specific variables in each bench script.

A cluster configuration read by bench/node-bench.c from stdin should be formatted as a tsv in the following manner: NODE_ID\tGROUP_ID\tIP_ADDR\tLISTENER_PORT, One line per server and client nodes.

On Emulab and Cloudlab environment, this may be generated the utils/emulab_clusterconf_gen.sh

License :

Prototype implementation. Use at your own risks.

You can’t perform that action at this time.