Multithreading Strategies for Replicated Objects

  • Jörg Domaschka
  • Thomas Bestfleisch
  • Franz J. Hauck
  • Hans P. Reiser
  • Rüdiger Kapitza
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5346)


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.


Client Request Java Virtual Machine Multiple Thread Common Object Request Broker Architecture Concurrent Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    OMG: Common object request broker architecture: Core specification, version 3.0.3. Object Management Group (OMG) document formal/2004-03-12 (2004)Google Scholar
  2. 2.
    Montresor, A.: The Jgroup distributed object model. In: Proceedings of the IFIP WG 6.1 International Working Conference on Distributed Applications and Interoperable Systems II (1999)Google Scholar
  3. 3.
    Zhao, W., Moser, L.E., Melliar-Smith, P.M.: Deterministic scheduling for multithreaded replicas. In: WORDS 2005 (2005)Google Scholar
  4. 4.
    Basile, C., Whisnant, K., Kalbarczyk, Z., Iyer, R.: Loose synchronization of multithreaded replicas. In: SRDS 2002 (2002)Google Scholar
  5. 5.
    Basile, C., Kalbarczyk, Z., Iyer, R.: Preemptive deterministic scheduling algorithm for multithreaded replicas. In: DSN 2003 (2003)Google Scholar
  6. 6.
    Domaschka, J., Hauck, F.J., Reiser, H.P., Kapitza, R.: Deterministic multithreading for Java-based replicated objects. In: PDCS 2006 (2006)Google Scholar
  7. 7.
    Reiser, H.P., Hauck, F.J., Domaschka, J., Kapitza, R., Schröder-Preikschat, W.: Consistent replication of multithreaded distributed objects. In: SRDS 2006 (2006)Google Scholar
  8. 8.
    Felber, P., Guerraoui, R., Schiper, A.: The implementation of a CORBA object group service. Theory and Practice of Object Systems 4(2), 93–105 (1998)CrossRefGoogle Scholar
  9. 9.
    Bessani, A.N., da Silva Fraga, J., Lung, L.C., Alchieri, E.A.P.: Active replication in CORBA: Standards, protocols, and implementation framework. In: DOA 2004 (2004)Google Scholar
  10. 10.
    Fich, F.E., Hendler, D., Shavit, N.: On the inherent weakness of conditional synchronization primitives. In: PODC 2004 (2004)Google Scholar
  11. 11.
    Napper, J., Alvisi, L., Vin, H.: A fault-tolerant Java virtual machine. In: DSN 2003 (2003)Google Scholar
  12. 12.
    Friedman, R., Kama, A.: Transparent fault tolerant Java virtual machine. In: SRDS 2003 (2003)Google Scholar
  13. 13.
    Kopetz, H., Damm, A., Koza, C., Mulazzani, M., Schwabl, W., Senft, C., Zainlinger, R.: Distributed fault-tolerant real-time systems — the Mars approach. IEEE Micro 9(1), 25–40 (1989)CrossRefGoogle Scholar
  14. 14.
    Poledna, S., Burns, A., Wellings, A.J., Barrett, P.: Replica determinism and flexible scheduling in hard real-time dependable systems. IEEE Trans. Computers 49(2), 100–111 (2000)CrossRefGoogle Scholar
  15. 15.
    Jiménez-Peris, R., Patiño-Martínez, M., Arévalo, S.: Deterministic scheduling for transactional multithreaded replicas. In: SRDS 2000 (2000)Google Scholar
  16. 16.
    Reiser, H.P., Hauck, F.J., Kapitza, R., Schmied, A.I.: Integrating fragmented objects into a CORBA environment. In: Proc. of the Net.ObjectDays, Erfurt, Germany (2003)Google Scholar
  17. 17.
    Reiser, H.P., Kapitza, R., Domaschka, J., Hauck, F.J.: Fault-tolerant replication based on fragmented objects. In: Eliassen, F., Montresor, A. (eds.) DAIS 2006. LNCS, vol. 4025, pp. 256–271. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  18. 18.
    Narasimhan, P., Moser, L.E., Melliar-Smith, P.M.: Enforcing determinism for the consistent replication of multithreaded CORBA applications. In: SRDS 1999 (1999)Google Scholar
  19. 19.
    Domaschka, J., Schmied, A.I., Reiser, H.P., Hauck, F.J.: Revisiting deterministic multithreading strategies. In: Int. Workshop on Java and Components for Parallelism, Distribution and Concurrency (2007)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2008

Authors and Affiliations

  • Jörg Domaschka
    • 1
  • Thomas Bestfleisch
    • 1
  • Franz J. Hauck
    • 1
  • Hans P. Reiser
    • 2
  • Rüdiger Kapitza
    • 3
  1. 1.Department of Distributed SystemsUlm UniversityGermany
  2. 2.LaSIGE, Faculdade de Ciências da Universidade de LisboaPortugal
  3. 3.Dept. of Comp. Sciences 4University of Erlangen-NürnbergGermany

Personalised recommendations