Technical Report Number
For sequentially-trained programmers, sequential consistency, i.e. program operations run in the same order as they appear in code, is the most intuitive consistency model to understand their programs. Recently variations of the actor model have been added to programming languages and libraries as a concurrency mechanism. Actor models, in general, do not guarantee sequential consistency. A surprising observation, studied in detail here using a large (130 KLOC) set of benchmarks, is that: the variation of the actor model supported by a language or library causes sequential inconsistencies exhibited by programs to vary greatly. Knowing the impact of these variations on sequential inconsistencies is important for focusing testing and verification efforts: for instance, if the variation supports in-order messaging then programs have 53% less sequential inconsistencies; or support for data isolation allows triggering of 75% of sequential inconsistencies by only controlling interleavings of 2 actors and 2 messages.