Uni-Logo

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.

Projects

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.

Implementation

The implementation consists of two major parts:

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

transactifier

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.

dstm

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

Download

The Java implementations are released under the GPL.

VersionDatejtransactifierdstm
0.0.126.06.2009 jtransactifier-0.0.1.zip dstm-0.0.1.zip

Publications

  • Annette Bieniusa, Thomas Fuhrmann.

    Distributed Transactional Memory.

    To appear soon as a Technical Report.

Contact

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