Early Experiences with Persistent Java
Mick Jordan
Introduction by Mick Jordan
This paper was presented at the First International Workshop on Persistence and Java, which was the first of three workshops on this theme that were organized by the Forest research group at Sun Labs in collaboration with Professor Malcolm Atkinson's group at Glasgow University, Scotland. The goal of these workshops was to bring together researchers in the field of persistence in the context of the exciting and dynamic environment of the evolving Java(TM) platform.
The research collaboration between Sun Labs and Glasgow was designed to apply and test the hypothesis that the persistence of state in the Java platform would best be provided as an orthogonal property, transparent to the programmer, in contrast to the traditional layered approaches through persistence-specific APIs. The collaboration, which began in October 1995, continued for five years during an era of intensive development of the Java(TM) platform. Although orthogonal persistence is in essence a very simple concept, it proved surprisingly difficult to communicate. Towards the end of the project we settled on the more descriptive concept of "continuous computation," an idea that resonates well with the requirements of reliability and availability. The main significance of the research was the application of orthogonal persistence to a mainstream programming language and the prospect of adoption beyond the laboratory.
The paper reports on the initial experiences of the very first prototype of orthogonal persistence, based on the JDK(TM)1.0.2 virtual machine, built at Glasgow and delivered in June of 1996, on a sample of available applications, including the Java compiler and a web server. The fact that these applications ran, essentially unchanged, was a very positive result. However, the paper hints at the myriad of details that still needed to be solved before the promise of transparency could truly be realized. Handling these details in the face of the extraordinary pace of the Java platform development occupied much of our time in the ensuing years.
Technically, the research did eventually succeed in building a very high performance platform that provided almost complete transparency. Unfortunately, we were unsuccessful in persuading the Java community that orthogonal persistence should become a part of the platform. The desire for orthogonality is recognized by many people, especially developers, but our efforts ultimately foundered on the virtual machine modifications that are required for a complete solution. The consequence in the platform today is layered solutions with increased complexity for the developer. This is currently deemed an acceptable price but it remains to be seen whether this trade-off will change in the future.
REFERENCES:
- An Orthogonally Persistent Java, M.P. Atkinson, L. Daynes, M.J. Jordan, T.Printezis and S. Spence, ACM SIGMOD Record, 25(4), December 1996.
- Proceedings of the First International Workshop on Persistence and Java, M.P. Atkinson and M.J. Jordan, editors, Sun Microsystems Laboratories Technical Report TR-96-58,
November 1996.
- Proceedings of the Second International Workshop on Persistence and Java, M.P. Atkinson and M.J. Jordan, editors, Sun Microsystems Laboratories Technical Report TR-97-63,
December 1997.
- Advances in Persistent Object Systems - Proceedings of the Eighth International Workshop on
Persistent Object Systems and the Third International Workshop on Persistence and Java, R.
Morrison, M.J. Jordan and M.P. Atkinson, editors, Morgan Kaufmann, August 1998.
- Orthogonal Persistence for Java - A Mid-Term Report, M.J. Jordan and M.P. Atkinson. In
Morrison et al., pages 335-352.
- A Review of the Rationale and Architectures of PJama: A Durable, Flexible, Evolvable and
Scalable Orthogonally Persistent Programming Platform, M.P. Atkinson and M.J. Jordan,
Sun Microsystems Laboratories Technical Report TR-2000-90.
- Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine, B.
Lewis, B. Mathiske, N. Gafter, Sun Microsystems Laboratories Technical Report TR-2000-93.
- Orthogonal Persistence for the Java Platform - Specification and Rationale, M.J. Jordan and M.P. Atkinson, Sun Microsystems Laboratories Technical Report TR-2000-94.
