Compiling for Persistence


Transactional Threads for Reliable Persistent Application Systems

Principal investigator: Dr. Tony Hosking
Research assistants: Adam Welc
Former students: Jiawan Chen, David Whitlock, Nedim Fresko, Nate Nystrom, Kumar Brahnmath, Aria Novianto

This material is based upon work supported by the National Science Foundation under Grants CCR-9711673 and CCR-9988637
and by Sun Microsystems Laboratories

Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s)
and do not necessarily reflect the views of the National Science Foundation (NSF) or Sun Microsystems, Inc.

We are exploring cooperative compiler and run-time support for applications that manage large bodies of long-lived, shared, structured data. The project integrates programming language and database functionality to provide orthogonal data persistence and transactions, enabling the construction of more reliable data-intensive applications, but without compromising performance. Performance is obtained through application of modern compilation techniques to the problems of persistence, including static analysis and run-time profiling, to derive knowledge of application-specific behavior which can then be exploited by both the compiler, for program optimization, and the run-time system, for efficient data management.

Compass project goals include development, integration and evaluation of new language-independent compiler analyses and optimizations for persistence, with associated run-time strategies for persistent object management. These techniques are being evaluated experimentally through development of prototype persistent languages and systems, compilation of benchmark persistent applications, and measurement of application performance. The compilation and run-time strategies derive much of their power from treatment of the entire persistent application system, consisting of both stored persistent code and data, for "whole-application" analysis and optimization.

Our current prototypes focus on compiler-support for persistence for both Modula-3 and JavaTM.

Further information about the research activities (including publications) of the Persistent Programming Systems group may be found here.