DISTRIBUTED GARBAGE COLLECTION IN A CLIENT-SERVER, TRANSACTION, PERSISTENT OBJECT SYSTEM

We present a design for distributed garbage collection in a new object-oriented database system called Thor. Garbage collection in Thor is different from that in conventional distributed systems because Thor has a client-server architecture, in which clients fetch copies of objects from multiple servers and run transactions. Our design accounts for the caching and prefetching of objects done by the clients. It also accounts for the distributed commit protocol, which involves the transfer of modified objects from the client cache back to the servers. The scalability of Thor precludes the use of global mechanisms. Therefore, our design is based on each server keeping a conservative record of incoming references from clients and other servers; this allows fast and fault-tolerant collection of most garbage. The performance requirement faced by the design is that it minimize the delay added to fetch and commit operations invoked by clients. We have devised techniques that eliminate major overheads when a client fetches a block of objects from a server: no extra messages need be sent, the server need not record the references contained in the objects in the block, and no stable-storage write is required. However, when a client commits a transaction, extra messages and stable-storage writes may be required for garbage collection purposes. We propose a scheme that masks the delay by performing garbage collection work in parallel with normal commit-time work. The rest of the distributed garbage collection protocol is devised so that it works in the background; the protocol uses only unreliable messages and tolerates node crashes and network partitions. Since our design is based on keeping a record of remote references, it does not collect distributed cyclic garbage. The thesis includes a discussion of various techniques that can be used to augment such a design to collect all garbage. The thesis also contains a novel analysis of a wide range of distributed garbage collection algorithms. Thesis Supervisor: Barbara H. Liskov Title: NEC Professor of Software Science and Engineering Distributed Garbage Collection in a Client-Server, Transactional, Persistent Object System by Umesh Maheshwari Submitted to the Department of Electrical Engineering and Computer Science on February 8, 1993, in partial fulfillment of the requirements for the degree of Master of Science in Electrical Engineering and Computer Science

[1]  Liuba Shrira,et al.  Lazy replication: exploiting the semantics of distributed services (extended abstract) , 1990, OPSR.

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

[3]  Liuba Shrira,et al.  Distributed Object Management in Thor , 1992, IWDOM.

[4]  S. C. Vestal,et al.  Garbage collection: an exercise in distributed, fault-tolerant programming , 1987 .

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

[6]  Barbara Liskov,et al.  Garbage collection of a distributed heap , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[7]  Barbara Liskov,et al.  Highly available distributed services and fault-tolerant distributed garbage collection , 1986, PODC '86.

[8]  David R. Cheriton,et al.  Leases: an efficient fault-tolerant mechanism for distributed file cache consistency , 1989, SOSP '89.

[9]  Marc Shapiro,et al.  Robust, distributed references and acyclic garbage collection , 1992, PODC '92.

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

[11]  Chris J. Cheney A nonrecursive list compacting algorithm , 1970, Commun. ACM.

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

[13]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[14]  José M. Piquer Indirect Reference Counting: A Distributed Garbage Collection Algorithm , 1991, PARLE.

[15]  Christian Queinnec,et al.  Garbage collecting the world , 1992, POPL '92.

[16]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[17]  Olivier Gruber,et al.  A garbage detection protocol for a realistic distributed object-support system , 1990 .

[18]  D. I. Bevan,et al.  Distributed Garbage Collection Using Reference Counting , 1987, PARLE.

[19]  Thomas W. Christopher,et al.  Reference count garbage collection , 1984, Softw. Pract. Exp..

[20]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[21]  S. P. Rana,et al.  A Distributed Solution of the Distributed Termination Problem , 1983, Inf. Process. Lett..

[22]  K. S. Weng AN ABSTRACT IMPLEMENTATION FOR A GENERALIZED DATA FLOW LANGUAGE , 1980 .

[23]  Butler W. Lampson,et al.  Crash Recovery in a Distributed Data Storage System , 1981 .

[24]  Sandra Heiler,et al.  Distributed Object Management , 1992, Int. J. Cooperative Inf. Syst..

[25]  Paul Hudak,et al.  Garbage collection and task deletion in distributed applicative processing systems , 1982, LFP '82.

[26]  Joel F. Bartlett,et al.  Compacting garbage collection with ambiguous roots , 1988, LIPO.

[27]  Barbara Liskov,et al.  Practical uses of synchronized clocks in distributed systems , 1991, PODC '91.