Actor Garbage Collection Using Vertex-Preserving Actor-to-Object Graph Transformations

Large-scale distributed computing applications require concurrent programming models that support modular and compositional software development The actor model supports the development of independent software components with its asynchronous message-passing communication and state encapsulation properties Automatic actor garbage collection is necessary for high-level actor-oriented programming, but identifying live actors is not as intuitive and easy as identifying live passive objects in a reference graph However, a transformation method can turn an actor reference graph into a passive object reference graph, which enables the use of passive object garbage collection algorithms and simplifies the problem of actor garbage collection In this paper, we formally define potential communication by introducing two binary relations - the may-talk-to and the may-transitively-talk-to relations, which are then used to define the set of live actors We also devise two vertex-preserving transformation methods to transform an actor reference graph into a passive object reference graph We provide correctness proofs for the proposed algorithms The experimental results also show that the proposed algorithms are efficient.

[1]  Gul A. Agha,et al.  Actor frameworks for the JVM platform: a comparative analysis , 2009, PPPJ '09.

[2]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[3]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[4]  Claes Wikström,et al.  Concurrent programming in ERLANG (2nd ed.) , 1996 .

[5]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[6]  Carlos A. Varela,et al.  Distributed Garbage Collection for Mobile Actor Systems: The Pseudo Root Approach , 2006, GPC.

[7]  Dennis Kafura,et al.  Real-Time Garbage Collection of Actors , 1990 .

[8]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[9]  Peter Dickman Incremental, Distributed Orphan Detection and Actor Garbage Collection Using Graph Partitioning and Euler Cycles , 1996, WDAG.

[10]  C. Hewitt,et al.  Comments on C. Hewitt, viewing control structures as patterns of passing messages, Artificial Intelligence 8 (1977) 323¿364 , 1978 .

[11]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[12]  Gul Agha,et al.  Programming dynamically reconfigurable open systems with SALSA : Intriguing Technology from OOPSLA by John Vlissides and Doug Lea , 2001 .

[13]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[14]  Laurence T. Yang,et al.  Advances in Grid and Pervasive Computing, Third International Conference, GPC 2008, Kunming, China, May 25-28, 2008. Proceedings , 2008, GPC.

[15]  Graem A. Ringwood,et al.  Garbage collecting the Internet: a survey of distributed garbage collection , 1998, CSUR.

[16]  Martin Odersky,et al.  Actors That Unify Threads and Events , 2007, COORDINATION.

[17]  Gul Agha,et al.  Using passive object garbage collection algorithms for garbage collection of active objects , 2002, ISMM '02.

[18]  Alan Burns,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[19]  Dennis G. Kafura,et al.  Garbage collection of actors , 1990, OOPSLA/ECOOP '90.

[20]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[21]  Carlos A. Varela,et al.  Programming dynamically reconfigurable open systems with SALSA , 2001, SIGP.

[22]  Martin Odersky,et al.  Generics of a higher kind , 2008, OOPSLA.

[23]  Jeffrey Ernest Nelson Automatic, incremental, on-the-fly garbage collection of actors , 1989 .

[24]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[25]  Robert H. Halstead Reference tree networks: virtual machine and implementation , 1979 .

[26]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.