Deepthi Devaki Akkoorath, Annette Bieniusa
APLAS 2015
Pohang, South Korea December 2015
13th Asian Symposium on Programming Languages and Systems (pp 427-444) , Programming Languages and Systems, Lecture Notes in Computer Science (LNCS volume 9458), Springer
Destructible updates on shared objects require careful handling of concurrent accesses in multi-threaded programs. Paradigms such as Transactional Memory support the programmer in correctly synchronizing access to mutable shared data by serializing the transactional reads and writes. But under high contention, serializable transactions incur frequent aborts and limit parallelism. This can lead to a severe performance degradation. In this paper, we propose mergeable transactions which provide a consistency semantics that allows for more scalability even under contention. Instead of aborting and re-executing, object versions from conflicting updates on shared objects are merged using data-type specific semantics. The evaluation of our prototype implementation in Haskell shows that mergeable transactions outperform serializable transactions even under low contention while providing a structured and type-safe interface.
Keywords : Concurrent programming, Transactional memory, Mergeable objects, Relaxed consistency
PDF Springer Link
University archive