Principles of Transactional Memory
Authors:
- Rachid GuerraouiRGRachid Guerraoui
- Michał KapałkaMKMichał Kapałka
- 1 January 2010
- journal article
- Published by Springer Nature in Synthesis Lectures on Distributed Computing Theory
- Vol. 1 (1) , 1-193
Abstract
Transactional memory (TM) is an appealing paradigm for concurrent programming on shared memory architectures. With a TM, threads of an application communicate, and synchronize their actions, via in-memory transactions. Each transaction can perform any number of operations on shared data, and then either commit or abort. When the transaction commits, the effects of all its operations become immediately visible to other transactions; when it aborts, however, those effects are entirely discarded. Transactions are atomic: programmers get the illusion that every transaction executes all its operations instantaneously, at some single and unique point in time. Yet, a TM runs transactions concurrently to leverage the parallelism offered by modern processors. The aim of this book is to provide theoretical foundations for transactional memory. This includes defining a model of a TM, as well as answering precisely when a TM implementation is correct, what kind of properties it can ensure, what are the power...Keywords
This publication has 63 references indexed in Scilit:
- Transactional Memory, 2nd editionSynthesis Lectures on Computer Architecture, 2010
- Model checking transactional memoriesACM SIGPLAN Notices, 2008
- Versioned boxes as the basis for memory transactionsScience of Computer Programming, 2006
- A transactional object calculusScience of Computer Programming, 2005
- On rigorous transaction schedulingIEEE Transactions on Software Engineering, 1991
- Local atomicity properties: modular concurrency control for abstract data typesACM Transactions on Programming Languages and Systems, 1989
- A theory of reliability in database systemsJournal of the ACM, 1988
- Multiversion concurrency control—theory and algorithmsACM Transactions on Database Systems, 1983
- The notions of consistency and predicate locks in a database systemCommunications of the ACM, 1976
- Solution of a problem in concurrent programming controlCommunications of the ACM, 1965