,
Ayman Hussein
,
Hernán Melgratti
,
Alceste Scalas
,
Emilio Tuosto
Creative Commons Attribution 4.0 International license
5640c68ae6bba8633bc30d0f01cbb87d
(Get MD5 Sum)
The artifact has been evaluated as described in the ECOOP 2024 Call for Artifacts and the ACM Artifact Review and Badging Policy.
Join patterns provide a promising approach to the development of concurrent and distributed message-passing applications. Several variations and implementations have been presented in the literature - but various aspects remain under-explored: in particular, how to specify a suitable notion of message matching, how to implement it correctly and efficiently, and how to systematically evaluate the implementation performance. In this work we focus on actor-based programming, and study the application of join patterns with conditional guards (i.e., the most expressive and challenging version of join patterns in literature). We formalise a novel specification of fair and deterministic join pattern matching, ensuring that older messages are always consumed if they can be matched. We present a stateful, tree-based join pattern matching algorithm and prove that it correctly implements our fair and deterministic matching specification. We present a novel Scala 3 actor library (called JoinActors) that implements our join pattern formalisation, leveraging macros to provide an intuitive API. Finally, we evaluate the performance of our implementation, by introducing a systematic benchmarking approach that takes into account the nuances of join pattern matching (in particular, its sensitivity to input traffic and complexity of patterns and guards).
@Article{haller_et_al:DARTS.10.2.8,
author = {Haller, Philipp and Hussein, Ayman and Melgratti, Hern\'{a}n and Scalas, Alceste and Tuosto, Emilio},
title = {{Fair Join Pattern Matching for Actors (Artifact)}},
pages = {8:1--8:3},
journal = {Dagstuhl Artifacts Series},
ISBN = {978-3-95977-342-3},
ISSN = {2509-8195},
year = {2024},
volume = {10},
number = {2},
editor = {Haller, Philipp and Hussein, Ayman and Melgratti, Hern\'{a}n and Scalas, Alceste and Tuosto, Emilio},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/DARTS.10.2.8},
URN = {urn:nbn:de:0030-drops-209062},
doi = {10.4230/DARTS.10.2.8},
annote = {Keywords: Concurrency, join patterns, join calculus, actor model}
}