What is CamlGroups?
CamlGroups is a group communication library, implemented using
Objective Caml.
It offers convenient programming abstractions
for the state machine replication.
The state machine approach is a general method
for implementing a fault-tolerant service by replicating
it on independent machines and coordinating client
interactions with the server replicas. The CamlGroups
can tolerate up to ceil(n/2-1) machine crashes at a time,
where n is the number of replicas.
The main programming abstractions of CamlGroups are:
- Reliable Broadcast -- it guarantees that a message will be
delivered to all correct processes if at least one process
(correct or not) delivers the messages
- Atomic Broadcast -- in addition to the properties
of Reliable Broadcast, it also guarantees that all processes
deliver all messages in the same total order
- Generic Broadcast -- in addition to the properties
of Reliable Broadcast, it also guarantees that all processes
deliver messages of a given type in the order specified by
a user-defined ordering function
- Membership Service -- it maintains the current view on which
processes are in the group; the processes can join or
leave the group dynamically, when suspected as crashed by
a simple failure detector
For cooperation without centralized control and with the possibility
of occasional process crashes, the CamlGroups uses the
distributed consensus protocol, which is the main building
block of the system architecture. The architecture follows the one
developed in
the Crystall project.
See a short demo movie
explaining the main concepts of group communication using a small example program
implemented in CamlGroups.
Distribution
A tarball file with source files is available here:
To compile the files
you will need the Objective Caml ver. at least 3.11.1, available from
http://caml.inria.fr/.
Team
Past contributors: Adam Gawarkiewicz, Jarosław Przybyłowicz and Michał Witkowski
Documentation
-
API documentation in HTML format
-
CamlGroups: Projekt, implementacja i walidacja narzędzia do komunikacji grupowej w języku Objective Caml (In Polish).
Piotr Wysocki, Paweł T. Wojciechowski.
Technical Report TR-ITSOA-OB2-1-PR-09-5, Institute of Computing Science, Poznań University of Technology, November 2009.
-
Biblioteka komunikacji grupowej: Architektura systemu dla grup dynamicznych w modelu crash-stop (In Polish).
Adam Gawarkiewicz, Jarosław Przybyłowicz, Michał Witkowski, Piotr Wysocki, Paweł T. Wojciechowski
Technical Report TR-ITSOA-OB2-1-PR-09-2, Institute of Computing Science, Poznań University of Technology, June 2009.
The ITSOA Project 2008-2009
Last modified: Sun Mar 7 13:29:34 CET 2010