By sharing equipment and travel, this grant support Darko Stefanovic's collaboration in the field of molecular computing. A notable result was the publication of a paper reporting on the construction of new logic gates that operate on chemicals at the molecular (biological) level [SMS02,SS03].
We have begun an effort to construct a general and portable system for dynamic translation and execution of binary programs [DZ02,PS03]. This work has broad applications, including research into computer security (discovering and preventing security breaches) and architectural simulation and tracing (of direct interest to this project).
Orthogonally persistent programming platforms have been advocated as ideal for the development of enterprise applications that embody in their implementations sophisticated data models, complex logic, and persistence [WH03]. By integrating the data and control models of the programming language with persistence, orthogonally persistent programming platforms overcome the impedance mismatch present in any a posteriori marriage of programming languages with existing database systems. One aspect of this mismatch is the competing concurrency mechanisms of programming languages and database systems: threads and transactions. Transactions are widely-held to be essential for the reliable composition of programs and code that manipulate persistent data, yet no persistent programming language has come to a full accommodation of both transactions and threads. This paper presents a model for transactional threads within object-oriented orthogonally persistent programming languages, and describes the implementation of that model in a prototype persistent extension of Modula-3. This prototype represents the first (to our knowledge) full implementation of such a tight coupling between language threads and transactions over persistent data. Experiments using a range of workloads from the multi-user OO7 benchmark demonstrate the performance advantages of transactional threads compared with transactions using traditional differentiated thread and transaction models in which transactions are associated only with the operating system process. The results show better performance for update transactions, and improved scalability as the degree of concurrency and numbers of shared updates increase.
Acknowledgments and Disclaimer
This work is supported by NSF ITR CCR-0085792 (this grant). In addition,
this work is synergistic with the following grants and support from NSF
ACI-9982028, NSF EIA-9726401, NSF CDA-9502639, NSF Career CCR-0133457,
NSF IIS-9988637, an IBM faculty partnership award, DARPA
F30602-98-1-0101, DARPA F33615-01-C-1892, DARPA F33615-01-C-1894, IBM,
Microsoft, and Compaq. Any opinions, findings, and conclusions or
recommendations expressed in this material are those of the author(s)
and do not necessarily reflect the views of the sponsors.
Copyright 2001-2003 by the DaCapo
Project,
All Rights Reserved.