Transactional monitors are proposed as an alternative to monitors based on mutual-exclusion synchronization for object-oriented programming languages. Transactional monitors have execution semantics similar to mutual-exclusion monitors but implement monitors as lightweight transactions that can be executed concurrently (or in parallel on multiprocessors). They alleviate many of the constraints that inhibit construction of transparently scalable and robust applications.
We undertake a detailed study of alternative implementation schemes for transactional monitors. These different schemes are tailored to different concurrent access patterns, and permit a given application to use potentially different implementations in different contexts.
We also examine the performance and scalability of these alternative approaches in the context of the Jikes Research Virtual Machine, a state-of-the-art Java implementation. We show that transactional monitors are competitive with mutual-exclusion synchronization and can outperform lock-based approaches up to five times on a wide range of workloads.
@inproceedings{Welc+2004ECOOP, author = {Welc, Adam and Jagannathan, Suresh and Hosking, Antony L.}, title = {Transactional Monitors for Concurrent Objects}, booktitle = {European Conference on Object-Oriented Programming}, series = {ECOOP}, year = {2004}, pages = {519--542}, month = {June}, address = {Oslo, Norway}, doi = {10.1007/b98195}, gscholar = {109} }