Versioned boxes as the basis for memory transactions

https://doi.org/10.1016/j.scico.2006.05.009Get rights and content
Under an Elsevier user license
open archive

Abstract

In this paper, we propose the use of Versioned Boxes, which keep a history of values, as the basis for language-level memory transactions. Unlike previous work on software transactional memory, in our proposal read-only transactions never conflict with any other concurrent transaction. This may improve significantly the concurrency on applications which have longer transactions and a high read/write ratio.

Furthermore, we discuss how we can reduce transaction conflicts by delaying computations and re-executing only parts of a transaction in case of a conflict. We propose two language-level abstractions to support these strategies: the per-transaction boxes and the restartable transactions.

Finally, we lay out the basis for a more generic model, which better supports fine-grained restartable transactions. The goal of this new model is to generalize the previous two abstractions to reduce conflicts.

Keywords

Software transactional memory
Transactions
Conflict reduction
Multi-version concurrency control

Cited by (0)