JPS : a distributed persistent Java system

Distributed persistent object systems provide a convenient environment for applications that need to manage complex long-lived data. Since Java has no persistence model built into it, the tremendous growth in the popularity of Java has generated a lot of interest in systems that add persistence to Java. This thesis presents the design, implementation and performance evaluation of a Java Persistent Store called JPS. JPS is an efficient distributed persistent Java system built on top of the Thor object-oriented database. JPS provides several advantages over other persistent Java systems. Unlike most of other systems, JPS is a distributed system that allows multiple clients to simultaneously access the object store. JPS is built to be used over a wide area network and scales well with large databases. JPS also provides a very reliable and highly available storage. More importantly, JPS offers significantly better performance for many important types of workloads. The original Thor system that used Theta as the database programming language has been extensively compared to other OODBs and shown to consistently outperform other systems—sometimes by more than an order of magnitude— under a wide variety of commonly used workloads. Our performance results indicate that JPS performs almost as well as the Theta-based system. Thesis Supervisor: Barbara Liskov Title: Ford Professor of Engineering

[1]  Michael Williams,et al.  Replication in the harp file system , 1991, SOSP '91.

[2]  Jack A. Orenstein,et al.  The ObjectStore database system , 1991, CACM.

[3]  Arvind Parthasarathi,et al.  The NetLog : an efficient, highly available, stable storage abstraction , 1998 .

[4]  David J. DeWitt,et al.  The 007 Benchmark , 1993, SIGMOD '93.

[5]  Ronald Morrison,et al.  A generic persistent object store , 1992, Softw. Eng. J..

[6]  O. Deux,et al.  The Story of O2 , 1990, IEEE Trans. Knowl. Data Eng..

[7]  John H. Hartman,et al.  Toba: Java for Applications - A Way Ahead of Time (WAT) Compiler , 1997, COOTS.

[8]  Miguel Castro,et al.  HAC: hybrid adaptive caching for distributed storage systems , 1997, SOSP.

[9]  David J. DeWitt,et al.  A Performance Study of Alternative Object Faulting and Pointer Swizzling Strategies , 1992, VLDB.

[10]  M. Tamer Özsu,et al.  An Asynchronous Avoidance-Based Cache Consistency Algorithm for Client Caching DBMSs , 1998, VLDB.

[11]  Charles Consel,et al.  Harissa: A Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code , 1997, COOTS.

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

[13]  David J. DeWitt,et al.  Client-Server Paradise , 1994, VLDB.

[14]  David Grove,et al.  Vortex: an optimizing compiler for object-oriented languages , 1996, OOPSLA '96.

[15]  T. Kaehler,et al.  LOOM: large object-oriented memory for Smalltalk-80 systems , 1989 .

[16]  David J. DeWitt,et al.  QuickStore: A high performance mapped object store , 1994, SIGMOD '94.

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

[18]  Andrew C. Myers,et al.  Parameterized types for Java , 1997, POPL '97.

[19]  Miguel Castro,et al.  Safe and efficient sharing of persistent objects in Thor , 1996, SIGMOD '96.

[20]  Sanjay Ghemawat,et al.  The Modified Object Buffer: A Storage Management Technique for Object-Oriented Databases , 1995 .

[21]  Robert E. Gruber,et al.  Optimism vs. locking: a study of concurrency control for client-server object-oriented databases , 1997 .

[22]  Jeffrey C. Mogul,et al.  Performance Implications of Multiple Pointer Sizes , 1995, USENIX.

[23]  Robert Gruber,et al.  Efficient optimistic concurrency control using loosely synchronized clocks , 1995, SIGMOD '95.

[24]  Michael J. Carey,et al.  Fine-grained sharing in a page server OODBMS , 1994, SIGMOD '94.

[25]  Andrew C. Myers,et al.  Bidirectional object layout for separate compilation , 1995, OOPSLA.

[26]  Andrew C. Myers,et al.  References to remote mobile objects in Thor , 1993, LOPL.

[27]  David J. DeWitt,et al.  The oo7 Benchmark , 1993, SIGMOD Conference.

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

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

[30]  Songnian Zhou,et al.  The Berkeley Internet Name Domain Server , 1984 .