Causal ordering in reliable group communications. - Aiello, Rosario (Computer communication review.)
In this paper we present a solution to the causal reliable multicast problem. User processes generate separate sequences of messages and specify the causal relation among them according to some application need; the algorithm ensures that the messages within the same sequence are delivered to all active, i.e. both correct and faulty, processes in the group, or to none of them, and are processed according to their causal order. Messages belonging to different sequences can be concurrently processed.This problem has few solutions presented in literature; in common with a part of them, the algorithm we describe has the centralized approach and the use of history buffers to recover from omission failures. The differences mainly concern the mechanism we devised to recover from crash failures, that avoids resorting to specialized protocols. As a consequence, under failure conditions, the algorithm performs better than other proposals in terms of both network load and throughput without affecting the performances under reliable conditions. Further, it allows to implement the most general interpretation of causality and it does not require any particular service to the underlying transport protocol.