JTD
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.