QuickStore: A high performance mapped object store

QuickStore is a memory-mapped storage system for persistent C++, built on top of the EXODUS Storage Manager. QuickStore provides fast access to in-memory objects by allowing application programs to access objects via normal virtual memory pointers. This article presents the results of a detailed performance study using the OO7 benchmark. The study compares the performance of QuickStore with the latest implementation of the E programming language. The QuickStore and E systems exemplify the two basic approaches (hardware and soft-ware) that have been used to implement persistence in object-oriented database systems. In addition, both systems use the same underlying storage manager and compiler, allowing us to make a truly apples-to-apples comparison of the hardware and software techniques.

[1]  David J. DeWitt,et al.  Storage management for objects in EXODUS , 1989 .

[2]  Antony L. Hosking,et al.  Object fault handling for persistent programming languages: a performance evaluation , 1993, OOPSLA '93.

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

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

[5]  S. Sudarshan,et al.  Dalí: A High Performance Main Memory Storage Manager , 1994, VLDB.

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

[7]  Alfons Kemper,et al.  Adaptable pointer swizzling strategies in object bases , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

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

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

[10]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[11]  Michael J. Carey,et al.  The design of the E programming language , 1993, TOPL.

[12]  David J. DeWitt,et al.  Crash recovery in client-server EXODUS , 1992, SIGMOD '92.

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

[14]  Eric W. Brown,et al.  Update Logging for Persistent Programming Languages: A Comparative Performance Evaluation , 1993, VLDB.

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

[16]  Paul R. Wilson,et al.  Pointer swizzling at page fault time: efficiently supporting huge address spaces on standard hardware , 1991, CARN.

[17]  James R. Larus,et al.  Optimally profiling and tracing programs , 1992, POPL '92.

[18]  J. Eliot B. Moss,et al.  Working with Persistent Objects: To Swizzle or Not to Swizzle , 1992, IEEE Trans. Software Eng..

[19]  Vivek Singhal,et al.  Texas: An Efficient, Portable Persistent Store , 1992, POS.

[20]  Ronald Morrison,et al.  Persistent Object Systems, Proceedings of the Fifth International Workshop on Persistent Object Systems, San Miniato (Pisa), Italy, 1-4 September, 1992 , 1992, POS.

[21]  David J. DeWitt,et al.  Persistence in E Revisited - Implementation Experiences , 1990, POS.

[22]  David J. DeWitt,et al.  The EXODUS Extensible DBMS Project: An Overview , 1989 .

[23]  P. R. Wilson,et al.  Pointer swizzling at page fault time: efficiently and compatibly supporting huge address spaces on standard hardware , 1992, [1992] Proceedings of the Second International Workshop on Object Orientation in Operating Systems.

[24]  Setrag Khoshafian,et al.  Object identity , 1986, OOPSLA 1986.

[25]  Marvin H. Solomon,et al.  A trace-based simulation of pointer swizzling techniques , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

[26]  David J. DeWitt,et al.  A Study of Three Alternative Workstation-Server Architectures for Object Oriented Database Systems , 1990, VLDB.