fantoch
: framework for evaluating (planet-scale) consensus protocols
Protocols implemented
- Tempo (EuroSys'21): source
- Atlas (EuroSys'20): source
- EPaxos (SOSP'13): source
- Janus (OSDI'16): source
- FPaxos (OPODIS'16): source
- Caesar (DSN'17): source
What does it do?
- all protocols implement the
Protocol
trait - this specification can then be used for
- simulating the expected latency in a given geo-distributed scenario (infinite CPU and network bandwidth are assumed)
- running the protocols in a real setting (e.g. baremetal, AWS, Azure)
- this is achieved by providing a "simulator" and a "runner" that are protocol-agnostic and are only aware of the
Protocol
(andExecutor
) trait
fantoch
is also capable of generating plots like the following one:
For more information, consult our paper Efficient Replication via Timestamp Stability (EuroSys'21).
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.