Distributed STM is an object-based, fully decentralized STM algorithm.
It features:
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:
We provide a simple way to incorporate STM into your Java application by using annotations. Our transactifier uses the ASM bytecode library.
@Transactional will get managed
by a runtime system. The construction as well as all reads
and writes get automatically redirected. @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.
| Version | Date | jtransactifier | dstm |
|---|---|---|---|
| 0.0.1 | 26.06.2009 | jtransactifier-0.0.1.zip | dstm-0.0.1.zip |
For further information, bug reports, etc. please contact: Annette Bieniusa.