“Multithreading Strategies for Replicated Objects”
in Proc. of the ACM/IFIP/USENIX 9th International Middleware Conference, Leuven, Belgium, Dec. 2008.
Abstract: Replication of objects usually makes deterministic behaviour mandatory for maintaining a consistent state. Multithreaded execution is a critical source of non-determinism that is completely avoided in most fault-tolerant middleware systems. Recent publications have defined deterministic scheduling algorithms that operate at the middleware level and allow multithreaded replicated objects. This avoids deadlocks, improves performance and makes the development more comparable to non-replicated objects. This paper surveys those algorithms and analyses their differences. Next, this paper defines extensions to two efficient multithreading algorithms in order to support nested invocations and condition variables with time-bounded wait operations similar to the Java synchronisation model. In addition, we provide an experimental evaluation and performance comparison of the algorithms, indicating the areas in which each algorithm performs best. We conclude that replication middleware should implement reconfigurable multithreading strategies, as there is no optimal one-size-fits-all solution.
Research line(s): Timeliness and Adaptation in Dependable Systems (TADS)