ABSTRACT

Transactions have been proposed to provide data consistency in the presence of failures and concurrent accesses. Replication of servers increases the availability of data and service. When active (or synchronous) replication is used all the requests to a replicated server are processed by all the replicas of the server. Replicas execute independently, for this reason maintaining the consistency of the replicas state is a hard problem. The replicas must exhibit a deterministic behavior to keep the consistency, which it is usually achieved with a sequential single-threaded code (that is, by means of non-concurrent replicas). However, single-threaded code is not always feasible, in particular, servers processing transactions sequentially are not acceptable in a transactional setting. In this paper a new approach is presented to allow concurrent active replicated servers in a transactional distributed framework. In our approach replicas of a server belong to a group and clients communicate with the replicas with a totally ordered and atomic multicast. Determinism of multithreaded replicated servers is achieved through a deterministic scheduling.


1999-11-17