Sun and Oracle Community Voices How to Buy Log In United States [Change] English

»  Spotlight Articles
»  Projects
»  Publications
»  People
»  Awards
»  Events
»  Downloads
»  Internships
»  Contrarian Minds
»  About Sun Labs

The Second International Workshop on Persistence and Java(tm) (PJW2)

13th-15th August 1997

Sponsored by Sun Microsystems

Preface

This report contains the proceedings of the Second International Workshop on Persistence and Java. The workshop was held on August 13-15th, 1997 at the Half Moon Bay Lodge in the San Francisco Bay Area and attended by approximately 45 people, comprising paper authors and invited participants. The workshop also hosted a parallel meeting of the Object Database Management Group to facilitate exchange of ideas and informal communication.

A year is a long time in the evolution of the Java platform and this was borne out by the submitted papers and the makeup of the participants. Along with the major academic research groups, practically all of the object database vendors were represented.

In contrast to the first workshop, which was mostly focused on debating the appropriate form of persistence mechanisms for Java, with little in the way of actual implementations, many of the papers in this workshop were concerned with discussing actual implementations. Several papers contained experimental measurements of the systems, although these tended to be for small standard benchmarks notably OO1. We look forward in the future to more comprehensive and comparative measurements, that will enable the costs and benefits of the different approaches to persistence to be analyzed.

The workshop schedule contained a demonstration segment and several groups, both academic and commercial, gave demonstrations of their systems in action.

Although we must admit to some bias, the workshop offered some evidence that the notion of orthogonal persistence is becoming accepted as the appropriate choice for object persistence in Java. Indeed, one invited participant mistakenly concluded that the workshop was specifically for the orthogonal persistence community! Evidently we need to increase participation from the relational and object-relational communities.

As last year, we polled the participants on whether we should hold a third workshop in 1998, particularly since the Eighth Persistent Object Systems workshop (POS8) will occur, and many of the participant overlap. The conclusion was that we should jointly hold the two workshops at the same location, with a shortened PJW3 immediately following POS8.

We would like to thank all the participants and the program committee for their contributions to a successful workshop. We owe a special vote of thanks for Linda Browning of SunLabs who handled all the administrative details and local arrangements. Finally, we would like to thank Bert Sutherland, SunLabs director, for his continued support of the workshop series.

Mick Jordan and Malcolm Atkinson

Papers

The papers are listed in the order that they were presented at the workshop. The slides associated with the presentation are also available in most cases.

TITLE: Java Universal Binding: Storing Java Objects in Relational and Object-Oriented Databases

AUTHOR(S): Florian Xhumari, Cassio Souza dos Santos and Marcin Skubiszewski

ABSTRACT: We introduce JUB (Java Universal Binding), a software tool that stores Java objects in relational and object-oriented databases. JUB supports the object-oriented DBMS O2, the relational DBMS Oracle and Sybase, and all the relational databases which can be accessed via JDBC. In the context of O2, Java objects stored in the database are first-class database objects: they can be accessed by all the clients of O2 (O2 supports application programs written in C, C++, Smalltalk, and O2 C). We describe JUB from the application programmer's point of view. We discuss the architecture of JUB, and the way in which Java classes and objects are translated into O2 types and objects. We describe the current status and the performance of the product.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


TITLE: Toward Assessing Approaches to Persistence for Java

AUTHOR(S): John V. E. Ridgway, Craig Thrall and Jack C. Wileden

ABSTRACT: In a previous paper [9] we described our goals and plans for an approach to seamlessly integrating persistence, interoperability and naming capabilities with Java. Having now completed a prototype implementation of our Jspin approach, we have begun the process of assessing it, and some other alternative approaches, from a variety of perspectives. In particular, we have begun to measure performance by adapting a standard benchmark for use with our prototype and some representative alternatives. We have also started to make some qualitative assessments of our approach and some of its competitors based on several usability factors, particularly those that were among the goals enunciated in our previous paper. In this paper we outline our Jspin approach and its implementation, describe the performance benchmark and present initial data resulting from its application, discuss our preliminary observations concerning usability factors, and sketch our plans for further development, assessment and use of Jspin.

Full paper available in postscript and pdf format. Talk slides available in pdf format only.


TITLE: Main-Memory Management to support Orthogonal Persistence for Java

AUTHOR(S): Laurent Daynes and Malcolm Atkinson

ABSTRACT: The main-memory management of an object cache that provides an orthogonally persistent platform for Java is described. Features of the architecture include: two levels of buffering between the disk and virtual machine, a consistent representation of transient and active objects, an effcient residency checking algorithm in the presence of multiple threads of execution, and well developed object-cache management technology. We present some of the challenges of providing persistence for the Java virtual machine, which may be typical of any attempt at an industrial-strength orthogonally persistent programming system. Some of these might have been avoided by sacrificing persistence independence, but that is far too valuable to sacrifice. We report on some detailed but preliminary investigations of pinning and cache replacement techniques applicable in this context. The information available for eviction-victim selection is inevitably limited by imprecise information about the state of the machine and the cost of collecting it. The question is raised whether we can do better than random eviction when supporting real (rather than synthetic) loads using this imprecise data to predict future use of objects.

Full paper available in postscript and pdf format. Talk slides not yet available.


TITLE: The Design of a new Persistent Object Store for PJama

AUTHOR(S): Tony Printezis, Malcolm Atkinson, Laurent Daynes, Susan Spence, and Pete Bailey

ABSTRACT: This paper presents the design of a new store layer for PJama. PJama is a platform that provides orthogonal persistence for Java. Based on experience with a prototype, PJama0 , a new architecture has been devised to permit incremental store management and to allow a number of object management regimes to co-exist in one store. It uses a plug-in model for composing a Java Virtual Machine (JVM) with the persistent store and a descriptor abstraction to limit the impact of changes in JVMs on store management. Its anticipated advantages over the current scheme include flexibility, adaptability, scalability, and maintainability.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


TITLE: The Transactional Object Cache as a Basis for Persistent Java System Construction

AUTHOR(S): Stephen M. Blackburn and Robin B. Stanton

ABSTRACT: The promise of Java as the vehicle for widely used, industrial strength orthogonally persistent systems places a renewed emphasis on implementation technologies for orthogonally persistent systems. The implementation of such systems has been held back by a number of factors, including a breadth of technologies spanning database and programming language research domains, and difficulty in capitalizing on the fruits of the mainstream database research community. In this paper we present PSI a practical storage abstraction that separates database and program-ming language concerns and facilitates the adoption of mainstream transactional storage technology within orthogonally persistent systems. We argue for PSI as the basis for persistent Java system construction with particular reference to how it might be applied to PJama0.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


TITLE: OCB: An Object/Class Browser for Java

AUTHOR(S): Graham N.C. Kirby and Ron Morrison

ABSTRACT: This paper describes an interactive browser used for exploring the structure of Java objects and their classes. It is implemented in Java and uses JDK 1.1 core reflection classes to discover details of the objects passed to it. The initial motivation for development arose from the need to browse persistent Java stores; the browser may also be useful as part of a symbolic debugging or visualisation tool.

Full paper available in postscript and pdf format. Talk slides available in pdf format only.


TITLE: Analysing, Profiling and Optimising Orthogonal Persistence for Java

AUTHOR(S): Quintin Cutts and Antony L. Hosking

ABSTRACT: Persistent systems manage main memory as a cache for efficient access to frequently-accessed persistent data. Good cache management requires some knowledge of the semantics of the applications running against it. We are attacking the performance problems of persistence for Java through analysis, profiling, and optimisation of Java classes and methods executing in an orthogonally persistent setting. Knowledge of application behaviour is derived through analysis and profiling, and applied by both a static bytecode transformer and the run-time system to optimise the actions of Java programs as they execute against persistent storage. Our prototype will unify distinct persistence optimisations within a single optimisa-tion framework, deriving its power from treatment of the entire persistent application, consisting of both program code and data stored in the database, for whole-application analysis, profiling and optimisation.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


TITLE: Persistent Servers + Ephemeral Clients = User Mobility

AUTHOR(S): Alan Dearle

ABSTRACT: A large group of computer users are now mobile; they either make use of more than one computer or carry lap-top computers with them. User migration is often hindered by inadequate programming models and architectures. This paper describes an architecture which permits the user's environment to migrate with them. A corner-stone of this architecture is the ability of persistent Java systems to save and restore the state of active computations. This concept is extended to permit computations to be restored on different machines thus permitting a user's environment to migrate. The architecture also addresses the difficult issue of channel mobility between two migratory applications. It is therefore general enough to support arbitrary distributed mobile computations.

Full paper available in pdf format only. Talk slides available in pdf format only.


TITLE: ObjectStore PSE: a Persistent Storage Engine for Java

AUTHOR(S): Gordon Landis, Charles Lamb, Tim Blackman, Sam Haradhvala, Mark Noyes, and Dan Weinreb

ABSTRACT: Object Design, Inc. markets and sells ObjectStore PSE for Java, a lightweight Persistent Storage Engine for Java. PSE is an entry-level product for users who require persistent Java object storage in client, server, servlet, or applet environments. Typical PSE applications run the gamut from applets that need to store user configuration information locally, servlets that need to store user access history, GUI-based user-directed web spider applications that need storage for their results, and financial applications that need to store up to tens of megabytes of cached data on a client host. This paper describes the design goals of PSE, as well as some of the implementation details, user and customer experiences with it, and future directions.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


TITLE: Java(TM) Persistence via Persistent Virtual Storage

AUTHOR(S): Maynard P. Johnson, "Ashok Malhotra, Steven J. Munroe, John G. Nistler, James W. Stopyro

ABSTRACT: Persistent Java(TM) objects are important for using Java in business applications. Storing Business objects in a Relational Database (RDB) has proven unsatisfactory. Direct use of a RDB prevents full use of Object Oriented (OO) technology, while schema mapping objects to RDB rows is a difficult problem. An alternative is persistent virtual storage where the persistent and runtime forms of objects are the same. This improves efficiency and allows a simple intuitive persistence program model but requires a large address space. Single Level Store (SLS) large address architecture (48-bit and 64-bit) systems have been commercially available since 1980 (IBM System/38 and AS/400) and recent papers describe similar storage semantics on commodity 64-bit processors. Our prototype implements a Java Virtual Machine (JVM) that simulates large address architecture for 32-bit systems (AIX, Windows95, WindowsNT), then adds a subsystem to create a shared address space (SAS) with persistence. The SAS subsystem provides SLS storage semantics for non-SLS systems. The implementation is targeted towards typical business appli-cations. For performance testing we devised a Business Object Benchmark (BOB-C), based on the well known TPC-C(TM) data processing benchmark, and made some measurements. These are discussed later in the paper.

Full paper available in postscript and pdf format. Talk slides available in postscript format only.


TITLE: JTool: Accessing Warehoused Collections of Objects with Java

AUTHOR(S): S. Bailey and R. L. Grossman

ABSTRACT: The purpose of the work describe here is to gain experimental experience with data warehouses for large collections of Java objects. We report on the design, architecture, and early experimental work with a software tool called JTool for creating data warehouses of Java objects. Our primary interest is in building distributed data warehouses containing large collections of Java objects as a basis for the data mining of objects on the web. This work is broadly based upon our prior work with a software called PTool which we have used for the data mining of large collections of C++ objects in clustered computing environments.

Full paper available in postscript and pdf format. Talk slides available in postscript format and pdf format.


Last changed: 11 Dec 1997

Questions and comments to forest-info@sunlabs.com