Scalable and Recoverable Implementation of Object Evolution for the PJama1 Platform

PJama is the latest version of an orthogonally persistent platform for Java. It depends on a new persistent object store, Sphere, and provides facilities for class evolution. This evolution technology supports an arbitrary set of changes to the classes, which may have arbitrarily large populations of persistent objects. We verify that the changes are safe. When there are format changes, we also convert all of the instances, while leaving their identities unchanged. We aspire to both very large persistent object stores and freedom for developers to specify arbitrary conversion methods in Java to convey information from old to new formats.Evolution operations must be safe and the evolution cost should be approximately linear in the number of objects that must be reformatted. In order that these conversion methods can be written easily, we continue to present the pre-evolution state consistently to Java executions throughout an evolution. At the completion of applying all of these transformations, we must switch the store state to present only the post-evolution state, with object identity preserved. We present an algorithm that meets these requirements for eager, total conversion.This paper focuses on the mechanisms built into Sphere to support safe, atomic and scalable evolution. We report our experiences in using this technology and include a preliminary set of performance measurements.

[1]  Scott Nettles,et al.  Persistent object systems : principles and practice : the 7th International Workshop on Persistent Object Systems , 1997 .

[2]  European Organization for Nuclear Research Using an Object Database and Mass Storage System for Physics Analysis , 1997 .

[3]  David Maier,et al.  Persistent Object Systems , 1995, Workshops in Computing.

[4]  Malcolm P. Atkinson,et al.  Orthogonal Persistence for Java? - A Mid-term Report , 1998, POS/PJW.

[5]  M. F. Challis The JACKDAW database package , 1974 .

[6]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[7]  Brian T. Lewis,et al.  Efficient Barriers for Persistent Object Caching in a High-Performance Java TM Virtual Machine , 1999 .

[8]  Dag I. K. Sjoberg Thesaurus-based methodologies and tools for maintaining persistent application systems , 1993 .

[9]  Roberto V. Zicari,et al.  Overview and Progress Report of the ESSE Project: Supporting Object-Oriented Database Schema Analysis and Evolution , 1993, TOOLS.

[10]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[11]  Malcolm P. Atkinson,et al.  Design Issues for Persistent Java: A Type-Safe, Object-Oriented, Orthogonally Persistent System , 1996, POS.

[12]  Stanley B. Zdonik,et al.  Version Management in an Object-Oriented Database , 1986, Advanced Programming Environments.

[13]  R. Connor,et al.  Design Issues for Persistent Java: a type-safe, object-oriented, orthogonally persistent system , 1996 .

[14]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[15]  Roberto Zicari Schema updates for object-oriented database systems (abstract) , 1992, OOPSLA '92.

[16]  David S. Munro,et al.  Concurrent Shadow Paging in the Flask Architecture , 1994, POS.

[17]  Malcolm P. Atkinson,et al.  Orthogonal Persistence for the Java[tm] Platform: Specification and Rationale , 2000 .

[18]  Brian T. Lewis,et al.  Architecture of the PEVM: A High-Performance Orthogonally Persistent Java Virtual Machine , 2000, POS.

[19]  Misha Dmitriev Class and Data Evolution Support in the PJama Persistent Platform , 2000 .

[20]  Erik Odberg,et al.  Category Classes: Flexible Classification and Evolution in Object-Oriented Databases , 1994, CAiSE.

[21]  Misha Dmitriev The First Experience of Class Evolution Support in PJama , 1998, POS/PJW.

[22]  C. Mohan,et al.  Repeating History Beyond ARIES , 1999, VLDB.

[23]  Roberto Zicari,et al.  A framework for schema updates in an object-oriented database system , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[24]  Michael F. Challis Database Consistency and Integrity in a Multi-User Environment , 1978, JCDKB.

[25]  Bharat Bhargava,et al.  Advanced Database Systems , 1993, Lecture Notes in Computer Science.

[26]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[27]  Malcolm P. Atkinson,et al.  Fully Integrated Data Environments , 2000, Esprit Basic Research Series.

[28]  Stanley B. Zdonik,et al.  Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like , 1988, ECOOP.

[29]  Malcolm P. Atkinson,et al.  An orthogonally persistent Java , 1996, SGMD.

[30]  Malcolm P. Atkinson,et al.  Issues Raised by Three Years of Developing PJama: An Orthogonally Persistent Platform for Java , 1999, ICDT.

[31]  Antonios Printezis,et al.  Management of long-running high-performance persistent object stores , 2000 .

[32]  Bruce G. Lindsay,et al.  Transaction management in the R* distributed database management system , 1986, TODS.

[33]  Mick J. Jordan Observations on Persistent Object Systems from a (Would-be) Consumer , 1998, POS/PJW.

[34]  Irving L. Traiger,et al.  A history and evaluation of System R , 1981, CACM.

[35]  Malcolm P. Atkinson,et al.  A review of the rationale and architectures of PJama - a durable, flexible, evolvable and scalable orthogonally persistent programming platform , 2000, SMLI TR.

[36]  Alex Garthwaite,et al.  The GC Interface in the EVM 1 , 1998 .

[37]  Malcolm P. Atkinson,et al.  Evolutionary Data Conversion in the PJama Persistent Language , 1999, ECOOP Workshops.