Distributed Snapshot algorithm for multi-active object-based applications

  • Michel J. de Souza UFBA
  • Françoise Baude Université de Nice Sophia Antipolis


This paper exposes an adaptation of the classic algorithm for consistent snapshot in distributed systems with asynchronous processes due to Chandy&Lamport. A snapshot in this context is described as the consistent set of states of all involved communicating processes that allows recovering the whole system after a crash. The reconstructed system state is consistent, even if messages injected into the system from the outside while the snapshot was ongoing may have been lost (if such messages can not be replayed). We expose how to adapt this algorithm to a particular distributed programming model, the Active Object model (in its multi active version). We applied it successfully to a non trivial distributed application programmed using Active Objects serving as a publish/subscribe and storage of events middleware, dubbed the EventCloud.


Jcraft (2014). Jsch library. http://www.jcraft.com/jsch/.

Baude, F., Bongiovanni, F., Pellegrino, L., and Quéma, V. (2011). PLAY Deliverable D2.1 Requirements specification for Event Cloud Component. Technical report, [link].

Baude, F., Caromel, D., Delbé, C., and Henrio, L. (2007). Promised messages: Recovering from inconsistent global states. In Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’07, pages 154–155, New York, NY, USA. ACM.

Caromel, D. (1993). Toward a method of object-oriented concurrent programming. Commun. ACM, 36(9):90–102.

Chandy, K. M. and Lamport, L. (1985). Distributed snapshots: Determining global states of distributed systems. ACM Trans. Comput. Syst., 3(1):63–75.

Henrio, L., Huet, F., and István, Z. (2013). Multi-threaded active objects. In Nicola, R. and Julien, C., editors, Coordination Models and Languages, volume 7890 of Lecture Notes in Computer Science, pages 90–104. Springer Berlin Heidelberg.

INRIA and UNS (2000). Proactive parallel programming suite. https://proactive.inria.fr/.

Jena (2014). Apache jena. http://jena.apache.org. Last access made in 1st March 2014.

Ratnasamy, S., Francis, P., Handley, M., Karp, R., and Shenker, S. (2001). A scalable content-addressable network. SIGCOMM Comput. Commun. Rev., 31(4):161–172.

Roland Stühmer et al. (2011). PLAY Deliverable D1.4 Play Conceptual Architecture. Technical report, [link].
Como Citar

Selecione um Formato
SOUZA, Michel J. de; BAUDE, Françoise. Distributed Snapshot algorithm for multi-active object-based applications. In: WORKSHOP DE TESTES E TOLERÂNCIA A FALHAS (WTF), 15. , 2014, Florianópolis/SC. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2014 . p. 61-73. ISSN 2595-2684. DOI: https://doi.org/10.5753/wtf.2014.22947.