Abstract
A mobile agent system consists of mobile agents, each of which can transport its state and code to any computing host in the system. The system is able to perform dynamic network reconfiguration and user customization to keep it flexible and effective. A mobile agent system can be theoretically depicted by the mobile actor model, in which a mobile actor is an autonomous computing entity and communicates with other actors by using asynchronous messages. Automatic distributed actor garbage collection, one of the important issues of lifetime management of mobile actors, can help high-level programming and efficient resource management in such a mobile actor system. Therefore, it is beneficial to design an intelligent management strategy to automatically detect and collect mobile actor garbage. In this paper, we propose a mechanism for mobile actor garbage collection using a novel conservative snapshot-based algorithm. Compared with prior similar work, the proposed mechanism is more flexible because it does not assume FIFO communication and any network topology. Moreover, it can perform actor garbage collection in a partial set of computing nodes, and thus can reduce the synchronization overhead while taking a global snapshot on a particular distributed application. In addition, the proposed mechanism does not restrict mutation operations such as actor creation and actor migration while taking a global snapshot. We have conducted experiments to evaluate the overhead of the proposed mechanism, and the results showed that the proposed mechanism is practical.
Similar content being viewed by others
References
Lange, D. B., & Oshima, M. (1999). Seven good reasons for mobile agents. Communications of the ACM, 42, 88–89.
Worldwide Computing Lab., (2011). SALSA language. http://wcl.cs.rpi.edu/salsa/.
Spanoudakis, N., & Moraitis, P. (2006). The Gaia2JADE process for multi-agent systems development. Applied Artificial Intelligence Journal, 20(2), 251–273.
Amoretti, M., Laghi, M. C., Tassoni, F., & Zanichelli, F. (2010). Service migration within the cloud: Code mobility in SP2A. In 2010 International conference on high performance computing and simulation, June 2010 (pp. 196–202).
Jung, J. J. (2009). Consensus-based evaluation framework for cooperative information retrieval systems. Knowledge and Information Systems, 18(2), 199–211.
Jung, J. J. (2009). Knowledge distribution via shared context between blog-based knowledge management systems: a case study of collaborative tagging. Expert Systems with Applications, 36(7), 10627–10633.
Maghraoui, K. E., Desell, T. J., Szymanski, B. K., & Varela, C. A. (2006). The Internet operating system: Middleware for adaptive distributed computing. The International Journal of High Performance Computing Applications, 20(4), 467–480.
Wang, W., Maghraoui, K. E., Cummings, J., Napolitano, J., Szymanski, B., & Varela, C. (2006). A middleware framework for maximum likelihood evaluation over dynamic grids. In Proceedings of the second IEEE international conference on e-science and grid computing, Amsterdam, Netherlands, December 2006 (p. 8).
Varela, C. A., & Agha, G. (2001). Programming dynamically reconfigurable open systems with SALSA. In ACM SIGPLAN notices. OOPSLA 2001 ACM conference on object-oriented systems, languages and applications, Dec. 2001 (vol. 36, pp. 20–34).
Agha, G. (1986). Actors: a model of concurrent computation in distributed systems. Cambridge: MIT Press.
Hewitt, C. (1977). Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8, 323–364.
Wang, W., & Varela, C. A. (2006). Distributed garbage collection for mobile actor systems: The pseudo root approach. In Lecture notes in computer science: Vol. 3947. Advances in grid and pervasive computing, first international conference, GPC 2006 (pp. 360–372). Berlin: Springer.
Wang, W., Varela, C. A., Hsu, F., & Tang, C. (2010). Actor garbage collection using vertex-preserving actor-to object graph transformations. In Lecture notes in computer science: Vol. 6104. Advances in grid and pervasive computing (pp. 244–255). Berlin: Springer.
Kafura, D., Mukherji, M., & Washabaugh, D. (1995). Concurrent and distributed garbage collection of active objects. IEEE TPDS, 6, 1995.
Kafura, D., Washabaugh, D., & Nelson, J. (1990). Garbage collection of actors. In OOPSLA ’90 ACM conference on object-oriented systems, languages and applications, October 1990 (pp. 126–134). New York: ACM.
Venkatasubramanian, N., Agha, G., & Talcott, C. (1992). Scalable distributed garbage collection for systems of active objects. In Lecture notes in computer science: Vol. 637. IWMM ’92. Berlin: Springer.
Puaut, I. (1994). A distributed garbage collector for active objects. In OOPSLA’94 ACM conference on object-oriented Systems, languages and applications (pp. 113–128). New York: ACM.
Vardhan, A., & Agha, G. (2002). Using passive object garbage collection algorithms. In ISMM’02, ACM SIGPLAN notices, Berlin (pp. 106–113). New York: ACM.
Armstrong, J., Virding, R., Wikström, C., & Williams, M. (1996). Concurrent programming in Erlang (2nd edn.). New York: Prentice Hall.
Dickman, P. (1996). Incremental, distributed orphan detection and actor garbage collection using graph partitioning and Euler cycles, Bologna. In Lecture notes in computer science: Vol. 1151. WDAG’96. Berlin: Springer.
Abdullahi, S. E., & Ringwood, A. (1998). Garbage collecting the Internet: A survey of distributed garbage collection. ACM Computing Surveys, 30(3), 330–373.
Veiga, L., & Ferreira, P. (2005). Asynchronous complete distributed garbage collection. In O. Babaoglu & K. Marzullo (Eds.), IPDPS 2005 (Denver, Colorado, USA), Apr. 2005.
Misra, J. (1983). Detecting termination of distributed computations using markers. In 2nd ACM SIGACT-SIGOPS symposium on principles of distributed computing (pp. 290–294).
Bronevetsky, G., Marques, D., Pingali, K., & Stodghill, P. (2003). Automated application-level checkpointing of MPI programs. In Proceedings of the 2003 ACM SIGPLAN symposium on principles of parallel programming, (PPoPP-03) (pp. 84–94). New York: ACM.
Sato, Y., Inoue, M., Masuzawa, T., & Fujiwara, H. (1996). A snapshot algorithm for distributed mobile systems. In ICDCS ’96: proceedings of the 16th international conference on distributed computing systems (ICDCS ’96) (pp. 734–743). Los Alamitos: IEEE Computer Society.
Chandy, K. M., & Lamport, L. (1985). Distributed snapshots: Determining global states of distributed systems. ACM Transactions on Computer Systems, 3(1), 63–75.
Strom, R. E., & Yemini, S. (1985). Optimistic recovery in distributed systems. ACM Transactions on Computer Systems, 3(3), 204–226.
Mattern, F. (1989). Virtual time and global states of distributed systems. In International workshop on parallel and distributed algorithms (pp. 215–226) (Chateau de Bonas), October 1989.
Yuasa, T. (1990). Real-time garbage collection on general purpose machines. Journal of Software and Systems, 11(3), 181–198.
Lermen, C., & Maurer, D. (1986). A protocol for distributed reference counting. In ACM symposium on lisp and functional Programming, ACM SIGPLAN Notices (pp. 343–350) (Cambridge, MA), Aug. 1986. New York: ACM Press.
Birrell, A., Evers, D., Nelson, G., Owicki, S., & Wobber, E. (1993). Distributed garbage collection for network objects. Tech. Rep. 116, DEC Systems Research Center, 130 Lytton Avenue, Palo Alto, CA 94301, Dec. 1993.
Moreau, L. (2001). Tree rerooting in distributed garbage collection: Implementation and performance evaluation. Higher-Order and Symbolic Computation, 14(4), 357–386.
Piquer, J. M. (1991). Indirect reference counting: A distributed garbage collection algorithm. In Lecture notes in computer science: Vol. 505. PARLE’91 (Eindhoven, The Netherlands), June 1991. Berlin: Springer.
Bevan, D. I. (1987). Distributed garbage collection using reference counting. In Lecture notes in computer science: Vol. 258/259. PARLE’87 (pp. 176–187) (Eindhoven, The Netherlands), June 1987. Berlin: Springer.
Watson, P., & Watson, I. (1987). An efficient garbage collection scheme for parallel computer architectures. In Lecture notes in computer science: Vol. 258/259. PARLE’87 (pp. 432–443) (Eindhoven, The Netherlands), June 1987. Berlin: Springer.
Shapiro, M., Dickman, P., & Plainfossé, D. (1992). SSP chains: Robust, distributed references supporting acyclic garbage collection. Rapports de Recherche 1799, INRIA, Nov. 1992.
Hughes, J. (1985). A distributed garbage collection algorithm. In LNCS: Vol. 201. Record of the 1985 conference on functional programming and computer architecture (pp. 256–272) (Nancy, France), Sept. 1985. Berlin: Springer.
Ladin, R., & Liskov, B. (1992). Garbage collection of a distributed heap. In International conference on distributed computing systems (Yokohama), June 1992.
Vestal, S. C. (1987) Garbage collection: An exercise in distributed, fault-tolerant programming. PhD thesis, University of Washington, Seattle, WA.
Maheshwari, U., & Liskov, B. (1995). Collecting cyclic distributed garbage by controlled migration. In PODC’95 principles of distributed computing
Maheshwari, U., & Liskov, B. (1997). Collecting cyclic distributed garbage by back tracing. In PODC’97 principles of distributed computing (Santa Barbara, CA) (pp. 239–248). New York: ACM Press.
Le Fessant, F. (2001). Detecting distributed cycles of garbage in large-scale systems. In Principles of distributed computing, (PODC) (Rhodes Island), Aug. 2001.
Lang, B., Queinnec, C., & Piquer, J. (1992). Garbage collecting the world. In POPL’92 ACM SIGPLAN-SIGACT symposium on principles of programming languages (pp. 39–50). New York: ACM Press.
Rodrigues, H., & Jones, R. (1996). A cyclic distributed garbage collector for network objects. In Lecture notes in computer science: Vol. 1151. WDAG’96 (pp. 123–140) (Bologna), Oct. 1996. Berlin: Springer.
Hudson, R. L., Morrison, R., Moss, J. E. B., & Munro, D. S. (1997). Garbage collecting the world: One car at a time. ACM SIGPLAN Notices, 32(10), 162–175.
Bacon, D. F., Cheng, P., & Rajan, V. T. (2003). Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In Proceedings of the conference on languages, compilers, and tools for embedded systems (pp. 81–92) (San Diego, California), June 2003.
Vardhan, A. (1998). Distributed garbage collection of active objects: A transformation and its applications to Java programming. Master’s thesis, UIUC, Urbana Champaign, Illinois.
Schelvis, M. (1989). Incremental distribution of timestamp packets—a new approach to distributed garbage collection. ACM SIGPLAN Notices, 24(10), 37–48.
Kim, W. THAL: An actor system for efficient and scalable concurrent computing. PhD thesis, University of Illinois at Urbana-Champaign, May 1997.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wang, WJ. Conservative snapshot-based actor garbage collection for distributed mobile actor systems. Telecommun Syst 52, 647–660 (2013). https://doi.org/10.1007/s11235-011-9509-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11235-011-9509-1