Software Transactional Memory for Distributed Systems

Distributed STM is an object-based, fully decentralized STM algorithm.

It features:

  • object versioning eliminating read conflicts
  • a randomized consensus protocol
  • easy scalability for multi-core architectures

Distributed STM is based data structures which are well-suited for replication and migration. A randomized consensus protocol guarantees the consistency of the mutable parts. Object versioning allows transactions to proceed tentatively before the consensus has been reached. Due to Distributed STM's architecture, atomic code sections never block during execution. Although this leads potentially to more rollbacks, a first evaluation shows that the guaranteed success of reads more than compensates for this effect.


Distributed STM is part of the JCell project, funded by the BMBF. It also targets the AICUs (ambient intelligence control units) of the AmbiComp project.


The implementation consists of two major parts:

  • transactifier - a byte code rewriting tool
  • dstm - a library for the transactional memory instructions


We provide a simple way to incorporate STM into your Java application by using annotations. Our transactifier uses the ASM bytecode library.

  • Classes annotated with @Transactional will get managed by a runtime system. The construction as well as all reads and writes get automatically redirected.
  • Methods annotated with @Atomic are wrapped with code which executes transaction start, commit and rollback in case of conflicts.

The source code is Java 1.6 compliant and should run on any compliant JVM. We ship the transactifier with an ANT script which was tested with version 1.6.5.


You can also use the dstm library directly. We will soon provide an online documentation of the most recent version.


The Java implementations are released under the GPL.

VersionDatejtransactifierdstm jtransactifier-0.0.1.zip dstm-0.0.1.zip


  • Annette Bieniusa, Thomas Fuhrmann.

    Distributed Transactional Memory.

    To appear soon as a Technical Report.


For further information, bug reports, etc. please contact: Annette Bieniusa.