Theory of Computing Systems

, Volume 51, Issue 4, pp 425–446

A Single-Version STM that Is Multi-Versioned Permissive



We present PermiSTM, a single-version STM that satisfies a practical notion of permissiveness, usually associated with keeping many versions: it never aborts read-only transactions, and it aborts other transactions only due to a conflicting transaction (writing to a common data item), thereby avoiding spurious aborts. PermiSTM also avoids unnecessary contention on the memory, being disjoint-access parallel.

We first present a variant of PermiSTM that uses k-compare-single-swap primitive. Then we present a variant with similar properties using only cas, and show how the livelocks it may incur can be avoided with best-effort hardware transactions.


Transactional memory Versions Permissiveness Disjoint access parallelism Compare-and-swap k-compare-single-swap Best-effort hardware transactional memory 

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  1. 1.Department of Computer ScienceTechnionHaifaIsrael
  2. 2.Yahoo! LabsHaifaIsrael

Personalised recommendations