Lazy replication: exploiting the semantics of distributed services

The need for high availability in distributed services requires that the data managed by the service be replicated. A major challenge in managing replicated data is ensuring consistency among the copies of the data. One way to guarantee consistency is to force operations to take effect in the same order at all sites. This approach, however, is often expensive. A novel method is designed for constructing logically centralized, highly available services to be used in a distributed environment. The method is intended for services that appear to clients to be logically centralized: in spite of the service's distributed implementation, it has the same observable behavior as a single copy. The semantics of the application implemented by the service is taken into account in order to weaken implementation constraints and thus improve response time and increase availability; constraints can be relaxed as long as clients cannot observe the difference. To illustrate how semantics can be used to relax constraints on operation orders, an electronic mail system is considered. The implementation of a distributed service based on partially ordered operations is discussed. >