In high-throughput, distributed systems, such as large-scale banking infrastructure, synchronization between actors becomes a bottle-neck in high-contention scenarios. This results in delays for users, and reduces opportunities for scaling such systems. This paper proposes Static Local Coordination Avoidance, which analyzes application invariants at compile time to detect whether messages are independent, so that synchronization at run time is avoided, and parallelism is increased. Analysis shows that in industry scenarios up to 60% of operations are independent. Initial performance evaluation shows that, in comparison to a standard 2-phase commit baseline, throughput is increased, and latency is reduced. As a result, scalability bottlenecks in high-contention scenarios in distributed actor systems are reduced for independent messages.

Synchronization, Coordination, Atomic consistency, Distributed systems
ING Bank
dx.doi.org/10.1145/3358499.3361222
ACM/SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control
Centrum Wiskunde & Informatica, Amsterdam, The Netherlands

Soethout, T.M, van der Storm, T, & Vinju, J.J. (2019). Static local coordination avoidance for distributed objects. In AGERE 2019 - Proceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control, co-located with SPLASH 2019 (pp. 21–30). doi:10.1145/3358499.3361222