Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Distributed cyclic reference counting
Proceedings of the first Canada-France conference on Parallel and distributed computing
A construction of distributed reference counting
Acta Informatica
An on-the-fly reference counting garbage collector for Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using passive object garbage collection algorithms for garbage collection of active objects
Proceedings of the 3rd international symposium on Memory management
Programming dynamically reconfigurable open systems with SALSA
ACM SIGPLAN Notices
A Survey of Distributed Garbage Collection Techniques
IWMM '95 Proceedings of the International Workshop on Memory Management
Concurrent Cycle Collection in Reference Counted Systems
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Cyclic Weighted Reference Counting without Delay
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Concurrent Programming Using Actors: Exploiting large-Scale Parallelism
Proceedings of the Fifth Conference on Foundations of Software Technology and Theoretical Computer Science
Birrell's distributed reference listing revisited
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Distributed garbage collection for large-scale mobile actor systems
Distributed garbage collection for large-scale mobile actor systems
Kilim: Isolation-Typed Actors for Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Scala Actors: Unifying thread-based and event-based programming
Theoretical Computer Science
Actor garbage collection using vertex-preserving actor-to-object graph transformations
GPC'10 Proceedings of the 5th international conference on Advances in Grid and Pervasive Computing
Distributed garbage collection for mobile actor systems: the pseudo root approach
GPC'06 Proceedings of the First international conference on Advances in Grid and Pervasive Computing
Why do scala developers mix the actor model with other concurrency models?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Disposal of dead actors in actor-model languages is as important as disposal of unreachable objects in object-oriented languages. In current practice, programmers are required to either manually terminate actors, or they have to rely on garbage collection systems that monitor actor mutation through write barriers, thread coordination through locks etc. These techniques, however, prevent the collector from being fully concurrent. We developed a protocol that allows garbage collection to run fully concurrently with all actors. The main challenges in concurrent garbage collection is the detection of cycles of sleeping actors in the actors graph, in the presence of concurrent mutation of this graph. Our protocol is solely built on message passing: it uses deferred direct reference counting, a dedicated actor for the detection of (cyclic) garbage, and a confirmation protocol (to deal with the mutation of the actor graph). We present our ideas informally through an example, and then present a formal model, prove soundness and argue completeness. We have implemented the protocol as part of a runtime library. As a preliminary performance evaluation, we discuss the performance of our approach as currently used at a financial institution, and use four benchmarks from the literature to compare our approach with other actor-model systems. These preliminary results indicate that the overhead of our approach is small.