The aim of a Software Transactional Memory (STM) is to discharge the programmers from the management of synchronization in multiprocess programs that access concurrent objects. To that end, an STM system provides the programmer with the concept of a transaction. The job of the programmer is to design each process the application is made up of as a sequence of transactions. A transaction is a piece of code that accesses concurrent objects, but contains no explicit synchronization statement. It is the job of the underlying STM system to provide the illusion that each transaction appears as being executed atomically. Of course, for efficiency, an STMsystem has to allow transactions to execute concurrently. Consequently, due to the underlying STM concurrency management, a transaction commits or aborts.
This paper studies the relation between two STM properties (read invisibility and permissiveness) and two consistency conditions for STM systems, namely, opacity and virtual world consistency. Both conditions ensure that any transaction (be it a committed or an aborted transaction) reads values from a consistent global state, a noteworthy property if one wants to prevent abnormal behavior from concurrent transactions that behave correctly when executed alone. A read operation issued by a transaction is invisible if it does not entail shared memory modifications. This is an important property that favors efficiency and privacy. An STM system is permissive (respectively probabilistically permissive) with respect to a consistency condition if it accepts (respectively accepts with positive probability) every history that satisfies the condition. This is a crucial property as a permissive STM system never aborts a transaction "for free". The paper first shows that read invisibility, probabilistic permissiveness and opacity are incompatible, which means that there is no probabilistically permissive STM system that implements opacity while ensuring read invisibility. It then shows that read invisibility, probabilistic permissiveness and virtual world consistency are compatible. To that end the paper describes a new STM protocol called IR_VWC_P. This protocol presents additional noteworthy features: it uses only base read/write objects and locks which are used only at commit time; it satisfies the disjoint access parallelism property; and, in favorable circumstances, the cost of a read operation is O(1).
[1]
Eduard Ayguadé,et al.
Transactional Memory: An Overview
,
2007,
IEEE Micro.
[2]
Alan M. Frieze,et al.
The Cover Times of Random Walks on Hypergraphs
,
2011,
SIROCCO.
[3]
Marcos K. Aguilera,et al.
Distributed Computing and Networking
,
2011,
Lecture Notes in Computer Science.
[4]
Michel Raynal,et al.
Provable STM Properties: Leveraging Clock and Locks to Favor Commit and Early Abort
,
2009,
ICDCN.
[5]
Rachid Guerraoui,et al.
Permissiveness in Transactional Memories
,
2008,
DISC.
[6]
Maurice Herlihy,et al.
Distributed computing and the multicore revolution
,
2008,
SIGA.
[7]
Nir Shavit,et al.
Transactional Locking II
,
2006,
DISC.
[8]
David Eisenstat,et al.
Lowering the Overhead of Software Transactional Memory
,
2006
.
[9]
Nir Shavit,et al.
Software transactional memory
,
1995,
PODC '95.
[10]
Rachid Guerraoui,et al.
Transactions are back---but are they the same?
,
2008,
SIGA.
[11]
Michel Raynal,et al.
A Versatile STM Protocol with Invisible Read Operations That Satisfies the Virtual World Consistency Condition
,
2009,
SIROCCO.
[12]
Rachid Guerraoui,et al.
On the correctness of transactional memory
,
2008,
PPoPP.
[13]
Christos H. Papadimitriou,et al.
The serializability of concurrent database updates
,
1979,
JACM.
[14]
Maurice Herlihy,et al.
Transactional Memory: Architectural Support For Lock-free Data Structures
,
1993,
Proceedings of the 20th Annual International Symposium on Computer Architecture.
[15]
Maurice Herlihy,et al.
Linearizability: a correctness condition for concurrent objects
,
1990,
TOPL.
[16]
Philip A. Bernstein,et al.
Formal Aspects of Serializability in Database Concurrency Control
,
1979,
IEEE Transactions on Software Engineering.
[17]
Michel Raynal,et al.
Brief announcement: read invisibility, virtual world consistency and permissiveness are compatible
,
2011,
SPAA '11.