In this lecture I presented some alternative techniques for managing concurrency in programming languages, with particular detail on message-passing Actors and the optimistic concurrency of Software Transactional Memory. These are two examples from a wide range of mechanisms in use across many programming languages and applications domains, all of which seek to balance the key concurrency requirements of separation to prevent inconsistency and co-operation to allow interaction.
Link: Slides for Lecture 5
Before the next lecture:
- Read up about Erlang, its use of actors, supervision, and live code replacement.
- Find an example of some software / a system / a service / a company that uses the language and where someone has written about that.
- Post the example to the mailing list
I shall collate examples on the blog and in Friday’s lecture.
Here’s a first example:
|Malcolm Dowse, Demonware. Erlang and First-Person Shooters — 10s of millions of Call of Duty Black Ops fans loadtest Erlang. Presentation to Erlang Factory, London 2011
Links: Talk slides; Erlang Factory; Erlang Factory conference London 2011
Others from Daniel Hillerström, Kyle Pullicino, and Bilyan Borisov:
|Ainsley O’Connell. Inside Erlang, The Rare Programming Language Behind WhatsApp’s Success. Article on Fast Company Labs blog, February 2014.
Links: Article; Daniel’s comments
|Christian Colombo, Adrian Francalanza, and Rudolph Gatt. Elarva: A Monitoring Tool for Erlang. Presented at RV 2011: 2nd International Conference on Runtime Verification, San Francisco, September 2011.
Links: Elarva website; Conference paper; Kyle’s comments
|Amazon SimpleDB. Implemented in Erlang, this is a highly-available distributed NoSQL database provided as part of the Amazon Web Services cloud.
Links: Amazon SimpleDB; Wikipedia description; Bilyan’s comments
|Martin Odersky. What is Scala? Web page, version as at 2014-09-30.
|Philipp Haller. Scala Actors: A Short Tutorial. Web page, version as at 2008-08-28.
|Keir Fraser. Practical Lock-Freedom. PhD thesis, 2004. Technical report 579, University of Cambridge Computer Laboratory.
Links: Cover page; Full PDF; More on lock-freedom