Multithreading strategies for replicated objects
Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware
Kendo: efficient deterministic multithreading in software
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Storyboard: optimistic deterministic multithreading
HotDep'10 Proceedings of the Sixth international conference on Hot topics in system dependability
The COSCA PaaS platform: on the way to flexible and dependable cloud computing
Proceedings of the 1st European Workshop on Dependable Cloud Computing
Hi-index | 0.00 |
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.