Lightweight Causal Cluster Consistency
Within an effort for providing a layered architecture of services for middleware supporting multi-peer collaborative applications, this paper proposes a type of consistency management called causal cluster consistency which is aimed for applications where a large number of processes share a large set of replicated objects. Many such applications, like peer-to-peer collaborative environments for educational, training or entertaining purposes, platforms for distributed monitoring and tuning of networks, rely on a fast propagation of updates on objects, however they also require a notion of consistent state update. To cope with these requirements and also ensure scalability, we propose the cluster consistency model. In a cluster consistency protocol a privileged dynamic set of processes, called coordinators, may concurrently propose updates to a subset of objects which form a cluster. The updates are applied in some order of interest by the coordinators of the cluster. Moreover, any interested process can receive update messages referring to replicated objects, with an option for the updates to be delivered unordered or in the same order as to the coordinators. This work also describes a protocol implementing causal cluster consistency, which provides a fault tolerant and dynamic membership algorithm to manage the cluster members. The membership algorithm also coordinates the dynamic assignment of process identifiers to vector clock entries. Hence, this protocol provides optimistic causal order in combination with any group communication protocol. We evaluate the performance of causal cluster consistency running on top of decentralised probabilistic protocols on support for group communication. These protocols scale well, impose an even load on the system, and provide high-probability reliability guarantees for events to be delivered to every process in the group.
large scale group communication