A Highly Effective Partition Selection Policy for Object Database Garbage Collection

We investigate methods to improve the performance of algorithms for automatic storage reclamation of object databases. These algorithms are based on a technique called partitioned garbage collection, in which a subset of the entire database is collected independently of the rest. We evaluate how different application, database system, and garbage collection implementation parameters affect the performance of garbage collection in object database systems. We focus specifically on investigating the policy that is used to select which partition in the database should be collected. Three of the policies that we investigate are based on the intuition that the values of overwritten pointers provide good hints about where to find garbage. A fourth policy investigated chooses the partition with the greatest presence in the I/O buffer. Using simulations based on a synthetic database, we show that one of our policies requires less I/O to collect more garbage than any existing implementable policy. Furthermore, that policy performs close to a locally optimal policy over a wide range of simulation parameters, including database size, collection rate, and database connectivity. We also show what impact these simulation parameters have on application performance and investigate the expected costs and benefits of garbage collection in such systems.

[1]  Laurent Amsaleg,et al.  Efficient Incremental Garbage Collection for Client-Server Object Database Systems , 1995, VLDB.

[2]  David M. Ungar,et al.  Generation Scavenging: A non-disruptive high performance storage reclamation algorithm , 1984, SDE 1.

[3]  Elliot K. Kolodner,et al.  Garbage Collection: Managing a Stable Heap , 2022 .

[4]  Robert Allen Shaw,et al.  Empirical analysis of a LISP system , 1988 .

[5]  Jacques Cohen,et al.  Garbage Collection of Linked Data Structures , 1981, CSUR.

[6]  Jeannette M. Wing,et al.  Concurrent atomic garbage collection , 1990 .

[7]  S. L. Graham,et al.  List Processing in Real Time on a Serial Computer , 1978 .

[8]  Jeffrey F. Naughton,et al.  Storage reclamation and reorganization in client-server persistent object stores , 1994, Proceedings of 1994 IEEE 10th International Conference on Data Engineering.

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

[10]  Scott Nettles,et al.  Real-time replication garbage collection , 1993, PLDI '93.

[11]  Benjamin G. Zorn,et al.  Comparative performance evaluation of garbage collection algorithms , 1989 .

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

[13]  Henry G. Baker,et al.  List processing in real time on a serial computer , 1978, CACM.

[14]  K. Kavi Cache Memories Cache Memories in Uniprocessors. Reading versus Writing. Improving Performance , 2022 .

[15]  Jeffrey F. Naughton,et al.  A stochastic approach for clustering in object bases , 1991, SIGMOD '91.

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

[17]  Margaret H. Butler Storage reclamation in object oriented database systems , 1987, SIGMOD '87.

[18]  Elliot K. Kolodner,et al.  Atomic Garbage Collection , 1992, IWMM.

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

[20]  Alexander L. Wolf,et al.  The Design of a Simulation System for Persistent Object Storage Management , 1993 .

[21]  Roderic G. G. Cattell The benchmark handbook for database and transaction processing systems , 1991 .

[22]  Jean Ferrié,et al.  Integrating Concurrency Control into an Object-Oriented Database System , 1990, Building an Object-Oriented Database System, The Story of O2.

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

[24]  Frank Jackson,et al.  An adaptive tenuring policy for generation scavengers , 1992, TOPL.

[25]  André Schiper,et al.  Theory and Practice in Distributed Systems , 1995, Lecture Notes in Computer Science.

[26]  Benjamin G. Zorn,et al.  Comparative Performance Evaluation of , 1989 .

[27]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[28]  Alexander L. Wolf,et al.  Semi-automatic, self-adaptive control of garbage collection rates in object databases , 1996, SIGMOD '96.

[29]  Henry Lieberman,et al.  A real-time garbage collector based on the lifetimes of objects , 1983, CACM.

[30]  Won Kim,et al.  Introduction to Object-Oriented Databases , 1991, Computer systems.

[31]  Jim Gray,et al.  Benchmark Handbook: For Database and Transaction Processing Systems , 1992 .

[32]  David C. J. Matthews,et al.  Poly manual , 1985, SIGP.

[33]  Elliot K. Kolodner,et al.  Atomic incremental garbage collection and recovery for a large stable heap , 1993, SIGMOD Conference.

[34]  W. Kent Fuchs,et al.  Garbage Collection in a Distributed Object-Oriented System , 1993, IEEE Trans. Knowl. Data Eng..

[35]  Anders Bjgrnerstedt,et al.  Secondary storage garbage collectzon for decentrahzed object- based systems , 1993 .

[36]  Laurent Amsaleg,et al.  Some Key Issues in the Design of Distributed Garbage Collection and References , 1994 .

[37]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[38]  Richard T. Snodgrass,et al.  Semantic Clustering , 1990, POS.

[39]  R. G. Cattell The object database standard , 1994 .