Abstract
We implemented a portable database garbage collection system(DBGC) running on Hibernate. Portability of this system is realized by using Hibernate as a middleware, which absorbs the differences of DB management systems. We get the reachability of objects which is necessary for realizing GC from metadata of table relations Hibernate holds. We adopt Yuasa's snapshot-at-the-beginning algorithm as the GC algorithm. Marking is executed as set operations by SQL. We adopted integer value as marking flag, so sweep phase can be executed at any time independent of usual mark-sweep sequence. Information of newly added objects and pointers which are changed can be obtained by peeking Hibernate's object observation system. DBGC can be executed in parallel with DB services controlling integer typed marking flag.