Deuce is a novel open-source Java framework for transactional memory. It has several desired features not found in earlier Java STM frameworks. It is non-intrusive in the sense that no modifications to the Java virtual machine (JVM) or extensions to the language are necessary.

Deuce has been heavily optimized for efficiency and performance evaluations on several high-end machines (up to 128 hardware threads on a 16-core Sun Niagara-based machine and a 96 core Azul machine) demonstrate that it scales well.

Deuce consists of two components:
  1. The Deuce agent (Deuce-agt on the VELOX Stack) that “transactifies” bytecode at load time by transforming annotated methods into transactions and instrumenting accesses to shared memory, dispatching them to the underlying TM runtime
  2. The Deuce runtime (Deuce-rt on the VELOX Stack) that implements the actual TM functionality. Deuce supports multiple TM runtimes by the means of an interface similar to the ABI of the C/C++ stack.

Deuce proposes a Java ABI that allows an application to choose between multiple TM runtimes and to create new runtimes. This Specification is being developed entirely within the VELOX Project.
VELOX Release Download Release Date
Release 3 21.02.2011
Release 2 01.09.2010