Comparison of Syndicated Actors with other programming models
The Syndicated Actor model is new, though it has similarities with other programming models used in system software that are not at first glance related to each other:
-
Shared memory
Much coordination and communication takes place using shared memory (both RAM and disk-based), whose poor fault-tolerance characteristics are well-known. The Syndicated Actor model extends the shared memory model with a notion of ownership over shared items, and restricts it by limiting reads to database-like “query” forms and limiting writes to simple placement or removal of data items in a shared space. The result is a form of sharing at a higher level of abstraction that evades many of the flaws of a simple read/write API.
-
Actors and Publish/Subscribe
A wide variety of programs in different niches work by message-passing and, in some cases, message multicast and pattern-match-based distribution. The Syndicated Actor model extends the Actor model (De Koster, Van Cutsem, and De Meuter 2016) with a resilient form of shared state (influenced by Erlang) and with intrinsic content-based message routing (influenced by publish-subscribe systems such as RabbitMQ). Traditional Actor address-based message routing is sidelined (again influenced by publish-subscribe systems) to decouple Actor identity from domain concepts.
-
Object-capability systems
The Syndicated Actor model extends Actors with an object-capability-based notion of security familiar from previous Actor languages such as E (Miller 2006; Miller, Tribble and Shapiro 2005). However, syndicated capabilities must go beyond previous approaches, accommodating the form of shared state unique to syndication: traditional object capabilities secure point-to-point links, while syndicated capabilities must also secure publish/subscribe multicast and broadcast spaces.
-
Tuplespaces
Few modern systems employ Tuplespaces (Gelernter 1985) as a structuring principle, despite the promise of the idea. Dataspaces, part of the Syndicated Actor model, extend the Tuplespace model with robust treatment of partial failure and a uniform ability to relate distinct spaces to each other, and restrict it by removing its characteristic and problematic “generativity” property. Dataspaces and syndicated state avoid by construction the “lost tuple” issues with many Tuplespace-based designs.
-
The Fact Space model
The AmbientTalk project has pioneered development of language features for ad-hoc, mobile, and distributed programming, drawing on programming models including Actors and Tuplespaces. One strand of research has resulted in the Fact Space model, which bears strong high-level similarities to the Syndicated Actor model. The application areas of the Fact Space model to date have been in mobile ad-hoc networks, and not to system layers or operating systems.
-
Datalog
While not a model of communication, Datalog has served as the foundation for a number of intriguing systems such as Bloom (Alvaro, Conway, Hellerstein and Marczak 2011), Dedalus (Alvaro, Marczak, Conway, Hellerstein, Maier and Sears 2009) and Eve. These systems have been proposed for use in system-level software; research is ongoing. Datalog’s “truth-maintenance” characteristics lend themselves well to distributed state management. State management via dataspaces is directly comparable to a distributed datalog-based system, and enjoys many of the same benefits.
References
Alvaro, Peter, Neil Conway, Joseph M. Hellerstein, and William R. Marczak. “Consistency Analysis in Bloom: A CALM and Collected Approach.” In 5th Biennial Conference on Innovative Data Systems Research (CIDR ’11), 2011.
Alvaro, Peter, William Marczak, Neil Conway, Joseph M. Hellerstein, David Maier, and Russell C. Sears. “Dedalus : Datalog in Time and Space.” EECS Department, University of California, Berkeley, 2009. https://doi.org/10.1007/978-3-642-24206-9_16.
De Koster, Joeri, Tom Van Cutsem, and Wolfgang De Meuter. “43 Years of Actors: A Taxonomy of Actor Models and Their Key Properties.” In Proc. AGERE, 31–40. Amsterdam, The Netherlands, 2016. https://doi.org/10.1145/3001886.3001890.
Gelernter, David. “Generative Communication in Linda.” ACM Transactions on Programming Languages and Systems 7, no. 1 (January 2, 1985): 80–112. https://doi.org/10.1145/2363.2433.
Miller, Mark S. “Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control.” PhD, Johns Hopkins University, 2006.
Miller, Mark S., E. Dean Tribble, and Jonathan Shapiro. “Concurrency Among Strangers.” In Proc. Int. Symp. on Trustworthy Global Computing, 195–229. Edinburgh, Scotland, 2005.