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
git clone [this repo url] make
Sample usage as a library may be found under
instantiate server or clients on a single machine.
One-time experiments can be run with
Experiments for a range of clients, destination groups and protocols may be run
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:
One line per server and client nodes.
Prototype implementation. Use at your own risks.