Safe Privatization in Transactional Memory

01/12/2018
by   Artem Khyzha, et al.
0

Transactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, e.g., to improve performance or to support legacy code. In this case, programmers would ideally like the TM to guarantee strong atomicity, where transactions can be viewed as executing atomically also with respect to non-transactional accesses. Since guaranteeing strong atomicity for arbitrary programs is prohibitively expensive, researchers have suggested guaranteeing it only for certain data-race free (DRF) programs, particularly those that follow the privatization idiom: from some point on, threads agree that a given object can be accessed non-transactionally. Supporting privatization safely in a TM is nontrivial, because this often requires correctly inserting transactional fences, which wait until all active transactions complete. Unfortunately, there is currently no consensus on a single definition of transactional DRF, in particular, because no existing notion of DRF takes into account transactional fences. In this paper we propose such a notion and prove that, if a TM satisfies a certain condition generalizing opacity and a program using it is DRF assuming strong atomicity, then the program indeed has strongly atomic semantics. We show that our DRF notion allows the programmer to use privatization idioms. We also propose a method for proving our generalization of opacity and apply it to the TL2 TM.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/08/2019

Privatization-Safe Transactional Memories (Extended Version)

Transactional memory (TM) facilitates the development of concurrent appl...
research
06/29/2021

Linearizable Implementations Suffice for Termination of Randomized Concurrent Programs

Strong adversaries obtain additional power when a linearizable object is...
research
05/21/2019

Checking Robustness Against Snapshot Isolation

Transactional access to databases is an important abstraction allowing p...
research
09/06/2023

Reference Capabilities for Flexible Memory Management: Extended Version

Verona is a concurrent object-oriented programming language that organis...
research
10/13/2017

The Semantics of Transactions and Weak Memory in x86, Power, ARMv8, and C++

Weak memory models trade programmability for performance, while transact...
research
07/19/2020

Lazy State Determination: More concurrency for contending linearizable transactions

The concurrency control algorithms in transactional systems limits concu...
research
08/13/2013

Opacity of Memory Management in Software Transactional Memory

Opacity of Transactional Memory is proposed to be established by increme...

Please sign up or login with your details

Forgot password? Click here to reset