Orca: GC and type system co-design for actor languages

ORCA is a concurrent and parallel garbage collector for actor programs, which does not require any stop-the-world steps, or synchronisation mechanisms, and which has been designed to support zero-copy message passing and sharing of mutable data. \ORCA is part of the runtime of the actor-based langua...

Full description

Bibliographic Details
Published in:Proceedings of the ACM on Programming Languages
Main Authors: Clebsch, S, Franco, J, Drossopoulou, S, Mingkun Yang, A, Wrigstad, T, Vitek, J
Other Authors: Aldrich, J, Commission of the European Communities, Engineering & Physical Science Research Council (EPSRC)
Format: Conference Object
Language:unknown
Published: Association for Computing Machinery 2017
Subjects:
Online Access:http://hdl.handle.net/10044/1/56293
https://doi.org/10.1145/3133896
Description
Summary:ORCA is a concurrent and parallel garbage collector for actor programs, which does not require any stop-the-world steps, or synchronisation mechanisms, and which has been designed to support zero-copy message passing and sharing of mutable data. \ORCA is part of the runtime of the actor-based language Pony. Pony's runtime was co-designed with the Pony language. This co-design allowed us to exploit certain language properties in order to optimise performance of garbage collection. Namely, ORCA relies on the absence of race conditions in order to avoid read/write barriers, and it leverages actor message passing for synchronisation among actors. This paper describes Pony, its type system, and the ORCA garbage collection algorithm. An evaluation of the performance of ORCA suggests that it is fast and scalable for idiomatic workloads.