Software transactional memory for dynamic-sized data structures
Top Cited Papers
- 13 July 2003
- proceedings article
- Published by Association for Computing Machinery (ACM)
Abstract
We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. A novel feature of our obstruction-free STM implementation is its use of modular contention managers to ensure progress in practice. We illustrate the utility of our dynamic STM with a straightforward implementation of an obstruction-free red-black tree, thereby demonstrating a sophisticated non-blocking dynamic data structure that would be difficult to implement by other means. We also present the results of simple preliminary performance experiments that demonstrate that an "early release" feature of our STM is useful for reducing contention, and that our STM lends itself to the effective use of modular contention managers.Keywords
This publication has 9 references indexed in Scilit:
- Nonblocking k-compare-single-swapPublished by Association for Computing Machinery (ACM) ,2003
- Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory MultiprocessorsJournal of Parallel and Distributed Computing, 1998
- Wait-free made fastPublished by Association for Computing Machinery (ACM) ,1995
- Disjoint-access-parallel implementations of strong shared memory primitivesPublished by Association for Computing Machinery (ACM) ,1994
- Transactional memoryPublished by Association for Computing Machinery (ACM) ,1993
- A method for implementing lock-free shared-data structuresPublished by Association for Computing Machinery (ACM) ,1993
- Locking without blockingPublished by Association for Computing Machinery (ACM) ,1992
- Linearizability: a correctness condition for concurrent objectsACM Transactions on Programming Languages and Systems, 1990
- Concurrency of operations on B-treesActa Informatica, 1977