Reusable Concurrent Data Types

This paper contributes to address the fundamental challenge of building Concurrent Data Types (CDT) that are reusable and scalable at the same time. We do so by proposing the abstraction of Polymorphic Transactions (PT): a new programming abstraction that offers different compatible transactions that can run concurrently in the same application. We outline the commonality of the problem in various object-oriented languages and implement PT and a reusable package in Java. With PT, annotating sequential ADTs guarantee novice programmers to obtain an atomic and deadlock-free CDT and let an advanced programmer leverage the application semantics to get higher performance. We compare our polymorphic synchronization against transaction-based, lock-based and lock-free synchronizations on SPARC and x86-64 architectures and we integrate our methodology to a travel reservation benchmark. Although our reusable CDTs are sometimes less efficient than non-composable handcrafted CDTs from the JDK, they outperform all reusable Java CDTs.

Published in:
Proceedings of the 28th European Conference on Object-Oriented Programming
Presented at:
28th European Conference on Object-Oriented Programming (ECOOP), Uppsala, Sweden, July 28 – August 1, 2014

 Record created 2015-05-28, last modified 2018-03-17

Download fulltext

Rate this document:

Rate this document:
(Not yet reviewed)