The Soprano Extensible Object Storage System

An efficient object manager, a middle layer on top of a storage system, is essential to ensure acceptable performance of object-oriented database systems, since a traditional record-based storage system is too simple to provide object abstraction. In addition, an object storage system–object managers in combination with storage systems - should be extensible to meet the various requirements of emerging applications. In this research, we design and implement an extensible object storage system, called Soprano, in an object-oriented fashion which has shown great potential in extensibility and code reusability. Soprano provides a uniform object abstraction and gives us the convenience of persistent programming through many useful persistent classes. Also, Soprano supports efficient object management and pointer swizzling for fast object access. This paper investigates several aspects of the design and implementation of the extensible object storage system. Our experience shows the feasibility of using an object-oriented design and implementation in building an object storage system that should have both extensibility and high performance.

[1]  Hyoung-Joo Kim,et al.  Object versioning in an ODMG‐compliant object database system , 1999 .

[2]  Donald Kossmann,et al.  A Performance Evaluation of OID Mapping Techniques , 1995, VLDB.

[3]  David J. DeWitt,et al.  Implementing crash recovery in QuickStore: a performance study , 1995, SIGMOD '95.

[4]  C. Mohan Commit_LSN: A Novel and Simple Method for Reducing Locking and Latching in Transaction Processing Systems , 1996, Performance of Concurrency Control Mechanisms in Centralized Database Systems.

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

[6]  Won Kim,et al.  Indexing Techniques for Object-Oriented Databases , 1989, Object-Oriented Concepts, Databases, and Applications.

[7]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[8]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[9]  Seth J. White Pointer Swizzling Techniques for Object-Oriented Database Systems , 1994, Technical Report / University of Wisconsin, Madison / Computer Sciences Department.

[10]  François Bancilhon,et al.  Building an Object-Oriented Database System, The Story of O2 , 1992 .

[11]  Stanley B. Zdonik,et al.  A shared, segmented memory system for an object-oriented database , 1987, TOIS.

[12]  J. Eliot B. Moss,et al.  Design of the Mneme persistent object store , 1990, TOIS.

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

[14]  Elisa Bertino,et al.  An indexing techniques for object-oriented databases , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[15]  Setrag Khoshafian,et al.  Object identity , 1986, OOPLSA '86.

[16]  Hyoung-Joo Kim,et al.  Index set: A practical indexing scheme for object database systems , 2000, Data Knowl. Eng..

[17]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[18]  R. G. G. Cattell,et al.  Object operations benchmark , 1992, TODS.

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