Garbage collection in object-oriented databases using transactional cyclic reference counting

  • Authors:
  • P. Roy;S. Seshadri;A. Silberschatz;S. Sudarshan;S. Ashwin

  • Affiliations:
  • Indian Institute of Technology, Mumbai 400 076, India/ {prasan,seshadri,sudarsha}@cse.iitb.ernet.in/ sashwin@cs.wisc.edu;Indian Institute of Technology, Mumbai 400 076, India/ {prasan,seshadri,sudarsha}@cse.iitb.ernet.in/ sashwin@cs.wisc.edu;Bell Laboratories, Murray Hill, NJ 07974, USA/ avi@bell-labs.com;Indian Institute of Technology, Mumbai 400 076, India/ {prasan,seshadri,sudarsha}@cse.iitb.ernet.in/ sashwin@cs.wisc.edu;Indian Institute of Technology, Mumbai 400 076, India/ {prasan,seshadri,sudarsha}@cse.iitb.ernet.in/ sashwin@cs.wisc.edu

  • Venue:
  • The VLDB Journal — The International Journal on Very Large Data Bases
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Garbage collection is important in object-oriented databases to free the programmer from explicitly deallocating memory. In this paper, we present a garbage collection algorithm, called Transactional Cyclic Reference Counting (TCRC), for object-oriented databases. The algorithm is based on a variant of a reference-counting algorithm proposed for functional programming languages The algorithm keeps track of auxiliary reference count information to detect and collect cyclic garbage. The algorithm works correctly in the presence of concurrently running transactions, and system failures. It does not obtain any long-term locks, thereby minimizing interference with transaction processing. It uses recovery subsystem logs to detect pointer updates; thus, existing code need not be rewritten. Finally, it exploits schema information, if available, to reduce costs. We have implemented the TCRC algorithm and present results of a performance study of the implementation.