print page


Java Transactional Domain

Contact Prof. Dr. rer. nat. Volker Turau
Start 31. January 2010
End 31. December 2014
Financing Hamburg University of Technology

Project Description

Proposed by Herlihy and Moss in the early 90th Transactional Memory is promoted as a promising candidate to solve known problems of parallel programming: Deadlocks and bad scalability shall be things of the past. Unfortunately use of transactions brings its very own problems. An example is loss of consistency when applying a technique called privatisation where the program switches from shared protected use of data by multiple threads to private unprotected use of data by one thread. In this project we are generally searching for approaches to solve those and similar problems in the use of transactional memory. We currently follow an approach providing a programming model forcing the separation of the software into a "transactional" and a "non-transactional" domain.

A preliminary result of our attempts is a prototype of a development environment for Java supporting so-called Transactional Objects. The set of those objects constitute the separated transactional domain mentioned above which transparently runs transactions. The development environment is based on Eclipse and the Java Development Toolkit and enhances them by the Java Transactional Domain toolchain (JTD) to enable automated validation and instrumentation of declared Transactional Objects. The Software Transactional Memory implementation is a modified version of AtomJava with its source-to-source compiler. The JTD Eclipse plugin is published under GPL v3 and available as source code here. For more information please refer to the publication listed below or the documentation also part of the software package.


Holger Machens and Volker Turau. Avoiding Publication and Privatization Problems on Software Transactional Memory. In 17th GI/ITG Conference on Communication in Distributed Systems (KiVS 2011), Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, February 2011, pp. 97–108. Kiel, Germany.
@InProceedings{Telematik_MT_2011_KIVS, author = {Holger Machens and Volker Turau}, title = {Avoiding Publication and Privatization Problems on Software Transactional Memory}, booktitle = {17th GI/ITG Conference on Communication in Distributed Systems (KiVS 2011)}, pages = {97-108}, series = {OpenAccess Series in Informatics (OASIcs)}, volume = {17}, publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik}, day = {25}, month = feb, year = 2011, location = {Kiel, Germany}, }
Abstract: This paper presents a new approach to exclude problems arising from dynamically switching between protected concurrent and unprotected single-threaded use of shared data when using software transactional memory in OO languages such as Java. The approach is based on a simple but effective programming model separating transactions from non-transactional operation. It prevents the application programmer from errors but does not force the software transactional memory library to observe non-transactional access and thereby preserves modularity of the software. A prototypical toolchain for validation and source code instrumentation was implemented as a proof of concept.