The implementation of a CORBA object group service
Theory and Practice of Object Systems - Special issue high availability in CORBA
Replica Determinism and Flexible Scheduling in Hard Real-Time Dependable Systems
IEEE Transactions on Computers
The Jgroup distributed object model
Proceedings of the IFIP WG 6.1 International Working Conference on Distributed Applications and Interoperable Systems II
Enforcing Determinism for the Consistent Replication of Multithreaded CORBA Applications
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
Loose Synchronization of Multithreaded Replicas
SRDS '02 Proceedings of the 21st IEEE Symposium on Reliable Distributed Systems
On the inherent weakness of conditional synchronization primitives
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Deterministic Scheduling for Multithreaded Replicas
WORDS '05 Proceedings of the 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems
Consistent Replication of Multithreaded Distributed Objects
SRDS '06 Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems
Fault-tolerant replication based on fragmented objects
DAIS'06 Proceedings of the 6th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems
Virtual Nodes: a re-configurable replication framework for highly-available grid services
Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
Hi-index | 0.00 |
Replicating objects usually requires deterministic behaviour for maintaining a consistent state. Multithreading is a critical source of non-determinism, completely unsupported in most fault-tolerant middleware systems. Recent publications have defined deterministic scheduling algorithms that operate at the middleware level and allow multithreading for replicated objects. This approach avoids deadlocks, improves performance, and makes the development better resemble that of non-replicated objects. This paper surveys those algorithms and analyses their differences. It also defines extensions to two efficient multithreading algorithms 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.