Java Transactional Memory (JTM) is a new universal construction that features much lower overhead for synchronization than previous universal constructions. It thus has the potential to be the first general-purpose yet high-performance framework for implementing NBS data structures. Another novel feature of the JTM is my design for a plug-in architecture that allows arbitrary management of conflict (contention) between threads that access common resources.
I propose to search out schemes for contention management and compare the performance of the JTM using these schemes to each other and to locks. In so doing I will characterize the performance of the JTM system as a whole and thus determine the extent to which it can compete with lock-based synchronization.
I propose to apply this performance data by automating the process of transactionalizing data structures. To accomplish this, I propose to embed the JTM in a Java Virtual Machine and add transactional support to a Java compiler. This will allow automated creation of high-performance NBS versions of a user's concurrent classes, with no special effort needed on the user's part. Finally, I propose to adaptively maximize performance by incorporating runtime information in order to dynamically switch between concurrency implementations.