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.
Version | Date | jtransactifier | dstm |
---|---|---|---|
0.0.1 | 26.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.