TY - GEN
T1 - Composable transactional objects
T2 - 23rd European Symposium on Programming, ESOP 2014 - Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014
AU - Herlihy, Maurice
AU - Koskinen, Eric
PY - 2014
Y1 - 2014
N2 - Memory transactions provide programmers with a convenient abstraction for concurrent programs: a keyword (such as atomic) designating a region of code that appears, from the perspective of concurrent threads, to execute atomically. Unfortunately, existing implementations in the form of software transactional memory (STM) are often ineffective due to their monolithic nature: every single read or write access is automatically tracked and recorded. In this statement, we advocate a transactional model of programming without a heavyweight software transactional memory, and describe some related, open research challenges. We suggest that a model based on persistent data structures could permit a variety of transactional algorithms to coexist in a library of composable transactional objects. Applications are constructed by snapping these objects together to form atomic transactions, in much the same way that today's Java programmers compose their applications from libraries such as java.util.concurrent. We report preliminary results developing this library in ScalaSTM, and discuss the challenges ahead.
AB - Memory transactions provide programmers with a convenient abstraction for concurrent programs: a keyword (such as atomic) designating a region of code that appears, from the perspective of concurrent threads, to execute atomically. Unfortunately, existing implementations in the form of software transactional memory (STM) are often ineffective due to their monolithic nature: every single read or write access is automatically tracked and recorded. In this statement, we advocate a transactional model of programming without a heavyweight software transactional memory, and describe some related, open research challenges. We suggest that a model based on persistent data structures could permit a variety of transactional algorithms to coexist in a library of composable transactional objects. Applications are constructed by snapping these objects together to form atomic transactions, in much the same way that today's Java programmers compose their applications from libraries such as java.util.concurrent. We report preliminary results developing this library in ScalaSTM, and discuss the challenges ahead.
KW - Composable transactional objects
KW - multicore
KW - persistent
KW - transactional memory
UR - http://www.scopus.com/inward/record.url?scp=84900562899&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84900562899&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-54833-8_1
DO - 10.1007/978-3-642-54833-8_1
M3 - Conference contribution
AN - SCOPUS:84900562899
SN - 9783642548321
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 1
EP - 7
BT - Programming Languages and Systems - 23rd European Symposium on Programming, ESOP 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Proceedings
Y2 - 5 April 2014 through 13 April 2014
ER -