Persistent Object Systems

We consider some issues in optimizing persistent programming languages. In particular, we show how to express optimizations of object residency checks in strongly typed persistent languages as "annotations" on pointer types. These annotations essentially extend and refine the type system of the language, and they have at least two significant uses. First, a programmer can use them to express desired residency properties to be enforced by the language implementation (compiler plus run time). Second, we can use them to separate a persistence optimizer, which adds annotations, from the remainder of the compiler, which simply obeys them. This gives rise to a nice separation of concerns in supporting high-performance persistence: the "intelligent" optimizer can be factored off from the rest of the compiler. In addition to modularity benefits, the separation allows us to explore the value of various optimizations without actually implementing them in the optimizer. Rather, we can optimize programs by hand and compare optimized and unoptimized code to develop sound data to use when deciding whether to implement an optimization. While the approach is similar to source-ta-source optimizers, which are by no means a new idea, in our case the target language is an extension of the source language, and one specifically designed to be easier to compile well. We are applying the approach in our ongoing implementation of Persistent Modula-3. We present the type annotation approach in the context of Modula-3, but it should be applicable to any strongly typed persistent programming language, as wen as to a range of other kinds of optimizations.

[1]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[2]  Hamid Pirahesh,et al.  Extensibility in the Starburst Database System , 1986, OODBS.

[3]  Niels Christian Juul Juul,et al.  Comprehensive, Concurrent, and Robust Garbage Collection in the Distributed, Object-Based System Eme , 1993 .

[4]  Scott Shenker,et al.  Mostly parallel garbage collection , 1991, PLDI '91.

[5]  Alan Dearle Environments: a flexible binding mechanism to support system evolution , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[6]  Erich J. Neuhold,et al.  Object-Oriented Modeling for Hypermedia Systems Using the VODAK Model Language , 1993, NATO ASI OODBS.

[7]  Brian N. Bershad,et al.  The Midway distributed shared memory system , 1993, Digest of Papers. Compcon Spring.

[8]  Eugene J. Shekita,et al.  Cricket: A Mapped, Persistent Object Store , 1990, POS.

[9]  W. Shipman David,et al.  The functional data model and the data language DAPLEX , 1988 .

[10]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[11]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[12]  Robert L. Grossman,et al.  Persistent stores and hybrid systems , 1993, Proceedings of 32nd IEEE Conference on Decision and Control.

[13]  Marc Shapiro,et al.  Garbage collection and DSM consistency , 1994, OSDI '94.

[14]  Don S. Batory,et al.  Implementation concepts for an extensible data model and data language , 1988, TODS.

[15]  D. I. Bevan,et al.  Distributed Garbage Collection Using Reference Counting , 1987, PARLE.

[16]  Michael Stonebraker,et al.  The Design of the POSTGRES Storage System , 1988, VLDB.

[17]  O. Deux,et al.  The O2 system , 1991 .

[18]  Liuba Shrira,et al.  Distributed Object Management in Thor , 1992, IWDOM.

[19]  Malcolm P. Atkinson,et al.  Implementing an extended functional data model using PS‐algol , 1987, Softw. Pract. Exp..

[20]  Robert L. Grossman,et al.  Ptool: a scalable persistent object manager , 1994, SIGMOD '94.

[21]  Darko Stefanovic,et al.  A comparative performance evaluation of write barrier implementation , 1992, OOPSLA.

[22]  Jacob Stein,et al.  The GemStone object database management system , 1991, CACM.

[23]  Marc Shapiro,et al.  Distribution and persistence in multiple and heterogeneous address spaces , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.