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.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received January 1, 1998 / Accepted May 27, 1998
Rights and permissions
About this article
Cite this article
Roy, P., Seshadri, S., Silberschatz, A. et al. Garbage collection in object-oriented databases using transactional cyclic reference counting. The VLDB Journal 7, 179–193 (1998). https://doi.org/10.1007/s007780050062
Issue Date:
DOI: https://doi.org/10.1007/s007780050062