Issues Raised by Three Years of Developing PJama: An Orthogonally Persistent Platform for Java™

  • Malcolm Atkinson
  • Mick Jordan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1540)

Abstract

Orthogonal persistence is based on three principles that have been understood for nearly 20 years. PJama is a publically available prototype of a Java platform that supports orthogonal persistence. It is already capable of supporting substantial applications.

The experience of applying the principles of orthogonal persistence to the Java programming language is described in the context of PJama. For example, issues arise over achieving orthogonality when there are classes that have a special relationship with the Java Virtual Machine. The treatment of static variables and the definition of reachability for classes and the handling of the keyword transient also pose design problems. The model for checkpointing the state of a computation, including live threads, is analyzed and related to a transactional approach. The problem of dealing with state that is external to the PJama environment is explained and the solutions outlined. The difficult problem of system evolution is identified as a major barrier to deploying orthogonal persistence for the Java language.

The predominant focus is on semantic issues, but with concern for reasonably efficient implementation. We take the opportunity throughout the paper and in the conclusions to identify directions for further work.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. P. Atkinson, L. Daynès, M. J. Jordan, T. Printezis, and S. Spence. An Orthog-onally Persistent Java. SIGMOD Record December 1996.Google Scholar
  2. 2.
    M. P. Atkinson, M. J. Jordan, L. Daynès, and S. Spence. Design Issues for Persistent Java: a Type-Safe Object-Oriented Orthogonally Persistent System. In Proceedings of the Seventh International Workshop on Persistent Object Systems (POS7), Cape May, New Jersey, USA Morgan Kaufmann, 1996.Google Scholar
  3. 3.
    M. P. Atkinson and R. Morrison. Orthogonal Persistent Object Systems. VLDB Journal, 4(3), 1995.Google Scholar
  4. 4.
    M.P. Atkinson and M.J. Jordan. Stable Identity Methods for PJama. Technical Report in preparation, Sun Microsystems Laboratories, 1998.Google Scholar
  5. 5.
    S. Blackburn and J. Zigman. Concurrency — The fly in the ointment? In M.P. Atkinson, M.J. Jordan, and R. Morrison, editors, Proceedings of the Third International Workshop on Persistence and Java (PJW3), Morgan Kaufmann, 1998.Google Scholar
  6. 6.
    G. Bracha, M. Odersky, D. Stoutamire, and P. Wadler. Making the future safe for the past: Adding Genericity to the Java Programming Language. In Proceedings of OOPSLA’98, Vanvouver, Canada, October 1988.Google Scholar
  7. 7.
    K. Brahnmath, N. Nystrom, A. Hosking, and Q.I. Cutts. Swizzle-barrier optimization for Orthogonal Persistence for Java. In M.P. Atkinson, M.J. Jordan, and R. Morrison, editors, Proceedings of the Third International Workshop on Persistence and Java, pages xx–yy. Morgan Kaufmann Publishers, Inc., September 1998.Google Scholar
  8. 8.
    R.L. Cooper, M.P. Atkinson, A. Dearle, and D. Abderrahmane. Constructing Database Systems in a Persistent Environment. In Proceedings of the Thirteenth International Conference on Very Large Databases, Brighton, UK, pages 117–125, September 1987.Google Scholar
  9. 9.
    Q. Cutts and A.L. Hosking. Analysing, profiling and optimising orthogonal persistence for java. In Proceedings of the Second International Workshop on Persistence and Java (Half Moon Bay, California), number SMLI TR-97-63 in Sunlabs Technical Reports, 901 San Antonio Road MS MTV29-01, Palo Alto, CA 94303, USA, August 1997. Sun Microsystems Inc. To appear.Google Scholar
  10. 10.
    Q.I. Cutts, S. Lennon, and A. Hosking. Reconciling Buffer Management with Persistence Optimisations. In M.P. Atkinson, M.J. Jordan, and R. Morrison, editors, Proceedings of the Eighth International Workshop on Persistent Object Systems, pages xx–yy. Morgan Kaufmann Publishers, Inc., August 1998.Google Scholar
  11. 11.
    L. Daynes and M. P. Atkinson. Main-Memory Management to support Orthogonal Persistence for Java™. In Proceedings of the Second International Workshop on Persistence and Java (PJW2), Half Moon Bay, CA, USA, August 1997.Google Scholar
  12. 12.
    L. Daynes, M.P. Atkinson, and P. Valduriez. Efficient Support for Customizing Concurrency Control in Persistent Java. In International Workshop on Advanced Transaction Models and Architectures (ATMA), Goa, India, 1996.Google Scholar
  13. 13.
    A. Dearle, R. di Bona, F. Vaughan. Grasshopper: An Orthogonally Persistent Operating System Computing Systems, 7(3)289–3121994.Google Scholar
  14. 14.
    M. Dmitriev. The First Experience of Class Evolution Support in PJama. In M.P. Atkinson, M.J. Jordan, and R. Morrison, editors, Proceedings of the Third International Workshop on Persistence and Java (PJW3), pages xx–yy. Morgan Kaufmann, 1998Google Scholar
  15. 15.
    J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
  16. 16.
    J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers, Inc., 1993.Google Scholar
  17. 17.
    A. Hosking, N. Nystrom, Q. Cutts, and K. Brahnmath. Optimizing the read and write barrier for orthogonal persistence. In Proceedings of the Eighth International Workshop on Persistent Object Systems, Tiburon, California, August 1998. To appear.Google Scholar
  18. 18.
    M. J. Jordan. Early Experiences with Persistent Java. In Proceedings of the FirstInternational Workshop on Persistence and Java (Drymen, Scotland) (PJW1), MS MTV29-01, 901 San Antonio Road, Palo Alto, CA 94303, USA, 1996. Sun Microsystems Laboratories.Google Scholar
  19. 19.
    M.J. Jordan and M.P. Atkinson. Orthogonal Persistence for Java — A Mid-term Report. In M.P. Atkinson, M.J. Jordan, and R. Morrison, editors, Proceedings of the Third International Workshop on Persistence and Java (PJW3), pages xx–yy. Morgan Kaufmann, 1998.Google Scholar
  20. 20.
    G. Kutlu and J.E.B. Moss. Exploiting Reflection to add Persistence and Query Optimization to a Statically Typed Object-Oriented Language. In M.P. Atkinson, M.J. Jordan, and R Morrison, editors, Proceedings of the Eighth International Workshop on Persistent Object Systems (Tiburon, California), pages xx–yy. Morgan Kaufmann Publishers, Inc., August 1998.Google Scholar
  21. 21.
    C. Landau. The Checkpoint Mechanism in KeyKOS. In Proceedings of the IEEE Second International Workshop on Object Orientation in Operating Systems September 1992.Google Scholar
  22. 22.
    D. Lea. Concurrent Programming in Java — Design Principles and Patterns. Addison-Wesley, 1997.Google Scholar
  23. 23.
    J. Liedtke. A persistent System in Real Use — Experiences of the First 13 years. In Proceedings of the Third International Workshop on Object-Orientation in Operating Systems, 1993.Google Scholar
  24. 24.
    T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.Google Scholar
  25. 25.
    D. B. Lomet and G. Weikum. Efficient and TRansparent Application Recovery in Client-Server Information Systems. In Proceedings of ACM SIGMOD Conference 1998, May 1998.Google Scholar
  26. 26.
    N. Nystrom, A.L. Hosking, Q.I. Cutts, and A. Diwan. Partial Redundancy Elimination for Access Path Expressions. In Proceedings of OOPSLA’98, pages xx–yy. ACM, October1998.Google Scholar
  27. 27.
    Object Design Inc. Object PSE Pro for Java, 1997.Google Scholar
  28. 28.
    Oracle Corporation. SQLJ User Guide and Reference, Oracle 8. Technical report,Oracle Corporation, 1987.Google Scholar
  29. 29.
    T. Printezis. Analysing a Simple Disk Garbage Collector. In Proceedings of the First International Workshop on Persistence and Java (Drymen, Scotland)(PJW1), MS MTV29-01, 901 San Antonio Road, Palo Alto, CA 94303, USA, 1996. Sun Microsystems Laboratories.Google Scholar
  30. 30.
    T. Printezis, M. P. Atkinson, L. Daynes, S. Spence, and P. Bailey. The Design of a new Persistent Object Store for PJama. In Proceedings of the Second International Workshop on Persistence and Java (PJW2), Half Moon Bay, CA, USA, August1997.Google Scholar
  31. 31.
    R.G.G Cattell (Ed.). The Object Database Standard: ODMG 2.0. Morgan Kauf-mann, 1997.Google Scholar
  32. 32.
    Sun Microsystems Inc. JavaBeans™, Revision 1.01 July 1997.Google Scholar
  33. 33.
    Sun Microsystems Inc. Java Blend™ 1998.Google Scholar
  34. 34.
    Sun Microsystems Inc. Java Foundation Classes, 1998.Google Scholar
  35. 35.
    Sun Microsystems Inc. Java Object Serialization Specification Beta Draft, Revision 1.4.1, February 1998.Google Scholar
  36. 36.
    F. Xhumari, C. Souza Dos Santos, and M. Skubiszewski. Java Universal Binding In Proceedings of the Second International Workshop on Persistence and Java, Sun Microsystems Technical Report TR-97-63, number SMLI TR-97-63 in Sunlabs Technical Reports, MS MTV29-01, 901 San Antonio Road, Palo Alto, CA 94303-4900, USA, 1997. Sun Microsystems Laboratories.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Malcolm Atkinson
    • 1
    • 2
  • Mick Jordan
    • 1
    • 2
  1. 1.University of GlasgowGlasgowScotland
  2. 2.Sun Microsystem LaboratoriesPalo Alto

Personalised recommendations