Consistent Replication of Multithreaded Distributed Objects - Kapitza, Rüdiger; Schröder-Preikschat, Wolfgang; et al. (Proc. of the IEEE Symp. on Reliable Distrib. Sys., 2006)
Determinism is mandatory for replicating distributed objects with strict consistency guarantees. Multithreaded execution of method invocations is a source of nondeterminism, but helps to improve performance and avoids deadlocks that nested invocations can cause in a single-threaded execution model. This paper contributes a novel algorithm for deterministic thread scheduling based on the interception of synchronisation statements. It assumes that shared data are protected by mutexes and client requests are sent to all replicas in total order; requests are executed concurrently as long as they do not issue potentially conflicting synchronisation operations. No additional communication is required for granting locks in a consistent order in all replicas. In addition to reentrant mutex locks, the algorithm supports condition variables and time-bounded wait operations. An experimental evaluation shows that, in some typical usage patterns of distributed objects, the algorithm is superior to other existing approaches. © 2006 IEEE.
UnivIS-Import:2015-04-16:Pub.2006.tech.IMMD.IMMD4.consis