Skip to main content

Persistence and Java — A Balancing Act

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1944))

Abstract

Large scale and long-lived application systems, enterprise applications, require persistence, that is provision of storage for many of their data structures. The JavaTM programming language is a typical ex- ample of a strongly-typed, object-oriented programming language that is becoming popular for building enterprise applications. It therefore needs persistence. The present options for obtaining this persistence are reviewed. We con- clude that the Orthogonal Persistence Hypothesis, OPH, is still persua- sive. It states that the universal and automated provision of longevity or brevity for all data will significantly enhance developer productivity and improve applications. This position paper reports on the PJama project with particular refe- rence to its test of the OPH. We review why orthogonal persistence has not been taken up widely, and why the OPH is still incompletely tested. This leads to a more general challenge of how to conduct experiments which reveal large-scale and long-term effects and some thoughts on how that challenge might be addressed by the software research community.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A.E. Abbadi, M.J. Brodie, S. Chakravarthy, U. Dayal, N. Kamel, G. Schlageter, and K-Y. Whang, editors. Proceedings of the Twentysixth International Conference on Very Large Databases. Morgan Kaufmann, 2000.

    Google Scholar 

  2. M.P. Atkinson, P.J. Bailey, K.J. Chisholm, W.P. Cockshott, and R. Morrison. An approach to persistent programming. The Computer Journal, 26(4):360–365, November 1983.

    MATH  Google Scholar 

  3. M.P. Atkinson, L. Daynès, M.J. Jordan, T. Printezis, and S. Spence. An Orthogonally Persistent JavaTM. ACM SIGMOD Record, 25(4), December 1996.

    Google Scholar 

  4. M.P. Atkinson, M. Dmitriev, C. Hamilton, and T. Printezis. Scalable and Recoverable Implementation of Object Evolution for the PJama Platform. In Dearle et al. [27], pages 255–268 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.

    Google Scholar 

  5. M.P. Atkinson and M.J. Jordan. A Review of the Rationale and Architectures of PJama: a Durable, Flexible, Evolvable and Scalable Orthogonally Persistent Programming Platform. Technical Report TR-2000-90, Sun Microsystems Laboratories Inc and Department of Computing Science, University of Glasgow, 901 San Antonio Road, Palo Alto, CA 94303, USA and Glasgow G12 8QQ, Scotland, 2000.

    Google Scholar 

  6. 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 Connor and Nettles [21], pages 33–47.

    Google Scholar 

  7. 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 The Proceedings of the Seventh International Workshop on Persistent Object Systems (POS 7), pages 33–47, May 1996.

    Google Scholar 

  8. M.P. Atkinson and R. Morrison. Orthogonal Persistent Object Systems. VLDB Journal, 4(3):309–401, 1995.

    Google Scholar 

  9. M.P. Atkinson and R. Welland, editors. Fully Integrated Data Environments. Springer-Verlag, 1999.

    Google Scholar 

  10. S. Berman and E. Voges. A Spatiotemporal Model as the Basis for a Persistent GIS. In Dearle et al. [27].

    Google Scholar 

  11. P.A. Bernstein. Panel: Is Generic Metadata Management Feasible? In Abbadi et al. [1], pages 660–662.

    Google Scholar 

  12. S.M. Blackburn and J.N. Zigman. Concurrency-the Fly in the Ointment? In Morrison et al. [56], pages 250–258.

    Google Scholar 

  13. K. Brahnmath, N. Nystrom, A. Hosking, and Q.I. Cutts. Swizzle-barrier optimization for Orthogonal Persistence for Java. In Morrison et al. [56], pages 268–278.

    Google Scholar 

  14. Frederick P. Brooks, Jr. The Mythical Man-Month-Essays on Software Engineering. Addison-Wesley, Reading, MA, USA, anniversary edition, 1995.

    Google Scholar 

  15. M. Carey, D. DeWitt, and J. Naughton. The OO7 Benchmark. In Proc. of the ACM SIGMOD Int. Conf. on Management of Data, Washington D.C, May 1993.

    Google Scholar 

  16. R.G.G. Cattell, editor. The Object Database Standard: ODMG-97 Third Edition. Morgan Kaufmann, 1997.

    Google Scholar 

  17. S. Ceri, R.J. Cochrane, and J. Widom. Practical Applications of Triggers and Constraints: Successes and Lingering Issues. In Abbadi et al. [1], pages 254–262.

    Google Scholar 

  18. C. Chambers. The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. PhD thesis, Stanford University, March 1992. Available via anonymous ftp from http://www.self.stanford.edu.

  19. G. Clossman, P. Shaw, M. Hapner, J. Klein, R. Pledereder, and B. Becker. Java and Relational Databases: SQLJ. ACM SIGMOD Record, 27(2):500, June 1998.

    Article  Google Scholar 

  20. P. Collet and G. Vignola. Towards a Consistent Viewpoint on Consistency for Persistent Applications. In ECOOP’2000 Symposium on Objects and Databases, volume 1813 of Lecture Notes in Computer Science. Springer Verlag, June 2000. To appear.

    Google Scholar 

  21. R. Connor and S. Nettles, editors. Persistent Object Systems: Principles and Practice-Proceedings of the Seventh International Workshop on Persistent Object Systems. Morgan Kaufmann, 1996.

    Google Scholar 

  22. G. Czajkowski. Application Isolation in the JavaTM Virtual Machine. In Proceedings of OOPSLA 2000, 2000.

    Google Scholar 

  23. L. Daynès. Implementation of Automated Fine-Granularity Locking in a Persistent Programming Language. Software-Practice and Experience, 30:1–37, 2000.

    Article  Google Scholar 

  24. L. Daynès and M.P. Atkinson. Main-Memory Management to support Orthogonal Persistence for Java. In Jordan and Atkinson [41], pages 37–60.

    Google Scholar 

  25. L. Daynès and G. Czajkowski. High-Performance, Space-Efficient Automated Object Locking, 2000. Submitted to ICDE’01.

    Google Scholar 

  26. A. Dearle, D. Hulse, and A. Farkas. Persistent Operating System Support for Java. In Jordan and Atkinson [40].

    Google Scholar 

  27. A. Dearle, G. Kirby, and D. SjØberg, editors. Proceedings of the Ninth International Workshop on Persistent Object Systems. LNCS. Springer-Verlag, September 2000.

    Google Scholar 

  28. D. DeWitt. Comment on recent experiences starting a new company, Private Communication, August 2000.

    Google Scholar 

  29. R. Dimpsey, R. Arora, and K. Kuiper. Java Server Performance: A Case Study of Building Efficient, Scalable JVMs. IBM Systems Journal, 39(1), 2000.

    Google Scholar 

  30. M. Dmitriev. Class and Data Evolution Support in the PJama Persistent Platform. Technical Report TR-2000-57, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, 2000.

    Google Scholar 

  31. Snyder L. et al. Academic Careers for Experimental Computer Scientists and Engineers. National Academic Press, Washington, USA, 1994.

    Google Scholar 

  32. A. Garratt, M. Jackson, P. Burden, and J. Wallis. A Comparison of Two Persistent Storage Tools for Implementing a Search Engine. In Dearle et al. [27].

    Google Scholar 

  33. A. Garthwaite and S. Nettles. TJava: a Transactional Java. In IEEE International Conference on Computer Languages. IEEE Press, 1998.

    Google Scholar 

  34. GemStone Systems, Inc. The GemStone/J 4.0-The Adaptable J2EE Platform. http://www.gemstone.com/products/j/, 2000.

  35. J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, December 1996.

    Google Scholar 

  36. C.G. Hamilton. Recovery Management for Sphere: Recovering a Persistent Object Store. Technical Report TR-1999-51, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, December 1999.

    Google Scholar 

  37. G. Hamilton, R. Cattell, and M. Fisher. JDBC Database Access With Java: A Tutorial and Annotated Reference. Addison-Wesley, 1997.

    Google Scholar 

  38. U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Department of Computer Science, Stanford University, 1994.

    Google Scholar 

  39. A.L. Hosking, N. Nystrom, Q. Cutts, and K. Brahnmath. Optimizing the read and write barrier for orthogonal persistence. In Morrison et al. [56], pages 149–159.

    Google Scholar 

  40. M.J. Jordan and M.P. Atkinson, editors. Proceedings of the First International Workshop on Persistence and Java. Number TR-96-58 in Technical Report. Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, November 1996.

    Google Scholar 

  41. M.J. Jordan and M.P. Atkinson, editors. Proceedings of the Second International Workshop on Persistence and Java. Number TR-97-63 in Technical Report. Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, December 1997.

    Google Scholar 

  42. M.J. Jordan and M.P. Atkinson. Orthogonal Persistence for Java-A Mid-term Report. In Morrison et al. [56], pages 335–352.

    Google Scholar 

  43. M.J. Jordan and M.L. Van De Vanter. Software Configuration Management in an Object-Oriented Database. In Proceedings of the Usenix Conference on Object-Oriented Technologies, Monterey, CA, June 1995.

    Google Scholar 

  44. M.J. Jordan and M.L. Van De Vanter. Modular System Building with Java Packages. In Proceedings of the Eighth International Conference on Software Engineering Environments, Cottbus, Germany, May 1997.

    Google Scholar 

  45. M. JØrgensen and S. S. Bygdås. An empirical study of the correlation between development efficiency and software development tools. Telektronikk, 95(1):54–62, 1999.

    Google Scholar 

  46. M. JØrgensen, S. S. Bygdås, and T. Lunde. Efficiency Evaluation of CASE tools Method and Results. Technical Report 38/95, 1995.

    Google Scholar 

  47. A. Kaplan, J.V.E. Ridgeway, B.R. Schmerl, K. Sridar, and J.C. Wileden. Toward Pure Polylingual Persistence. In Dearle et al. [27], pages 54–68 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.

    Google Scholar 

  48. G.N.C. Kirby and R. Morrison. OCB: An Object/Class Browser for Java. In Jordan and Atkinson [41], pages 89–105.

    Google Scholar 

  49. G.N.C. Kirby and R. Morrison. Variadic Genericity Through Linguistic Reflection: A Performance Evaluation. In Morrison et al. [56], pages 136–148.

    Google Scholar 

  50. G.N.C. Kirby, R. Morrison, and D.W. Stemple. Linguistic Reflection in Java. Software-Practice and Experience, 28(10):1045–1077, 1998.

    Article  Google Scholar 

  51. B. Lewis and B. Mathiske. Efficient Barriers for Persistent Object Caching in a High-Performance Java Virtual Machine. In Proceedings of the OOPSLA’99 Workshop-Simplicity, Performance and Portability in Virtual Machine Design, 1999.

    Google Scholar 

  52. B. Lewis, B. Mathiske, and N. Gafter. Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine. In Dearle et al. [27].

    Google Scholar 

  53. T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.

    Google Scholar 

  54. A. Marquez, S.M. Blackburn, G. Mercer, and J. Zigman. Implementing Orthogonally Persistent Java. In Dearle et al. [27], pages 218–232 in the preprints, University of Oslo, Department of Informatics, Preprint 2000 No. 288.

    Google Scholar 

  55. R. Morrison, R.C.H. Connor, Q.I. Cutts, G.N.C. Kirby, D.S. Munro, and M.P. Atkinson. The Napier88 Persistent Programming Language and Environment. In Atkinson and Welland [9], chapter 1.1.3, pages 98–154.

    Google Scholar 

  56. R. Morrison, M.J. Jordan, and M.P. Atkinson, eds. Advances in Persistent Object Systems-Proceedings of the Eighth International Workshop on Persistent Object Systems (POS8) and the Third International Workshop on Persistence and Java (PJW3). Morgan Kaufmann, August 1998.

    Google Scholar 

  57. T. Printezis. Management of Long-Running, High-Performance Persistent Object Stores. PhD thesis, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, May 2000.

    Google Scholar 

  58. T. Printezis, M. P. Atkinson, and M. J. Jordan. Defining and Handling Transient Data in PJama. In Proceedings of the Seventh International Workshop on Database Programming Languages (DBPL’99), Kinlochrannoch, Scotland, September 1999.

    Google Scholar 

  59. T. Printezis and M.P. Atkinson. An Efficient Promotion Algorithm for Persistent Object Systems, 2000. To appear in Software-Practice and Experience.

    Google Scholar 

  60. C. Russell. JSR-12 Java Data Objects Specification (approved for development). http://www.java.sun.com/aboutJava/communityprocess/jsr/jsr012dataobj.html, April 2000.

  61. M. Satyanarayanan, H.H. Mashburn, P. Kumar, D.C. Steere, and J.J. Kistler. Lightweight Recoverable Virtual Memory. ACM Transactions on Computers and Systems, 12(1):33–57, February 1994.

    Article  Google Scholar 

  62. D.I.K. SjØberg and M. JØgensen. A Proposal for a Laboratory for Software Engineering Experiments, 2000. in preparation.

    Google Scholar 

  63. Sun Microsystems, Inc. Enterprise Java Beans Specification 1.1, April 2000.

    Google Scholar 

  64. Sun Microsystems, Inc. Java Blend. http://www.sun.com/software/javablend/index.html, April 2000.

  65. W.F. Tichy. Should computer scientists experiment more? COMPUTER: IEEE Computer, 31:32–40, 1998.

    Google Scholar 

  66. W.F. Tichy, P. Lukowicz, L. Prechelt, and E.A. Heinz. Experimental evaluation in computer science: A quantitative study. The Journal of Systems and Software, 28(1):9–18, January 1995.

    Article  Google Scholar 

  67. D. White and A. Garthwaite. The GC interface in the EVM. Technical Report TR-98-67, Sun Microsystems Laboratories Inc, 901 San Antonio Road, Palo Alto, CA 94303, USA, 1998.

    Google Scholar 

  68. E. Zirintsis, V.S. Dunstan, G.N.C. Kirby, and R. Morrison. Hyper-Programming in Java. In Morrison et al. [56], pages 370–382.

    Google Scholar 

  69. E. Zirintsis, G.N.C. Kirby, and R. Morrison. Hyper-Code Revisited: Unifying Program Source, Executable and Data. In Dearle et al. [27], pages 202–217.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Atkinson, M. (2001). Persistence and Java — A Balancing Act. In: Dittrich, K., Guerrini, G., Merlo, I., Oliva, M., Rodriguez, M. (eds) Objects and Databases. SODB 2000. Lecture Notes in Computer Science, vol 1944. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44677-X_1

Download citation

  • DOI: https://doi.org/10.1007/3-540-44677-X_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41664-7

  • Online ISBN: 978-3-540-44677-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics