Distributed Snapshot algorithm for multi-active object-based applications
Resumo
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.
Referências
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].