Garbage Collection for Storage-Oriented Clusters

Storage-oriented clusters present unique challenges to the implementation of storage management. Such clusters manage a vast amount of data, most of which is located on secondary storage. Manual storage management in storage-oriented cluster environments is complex, error-prone and tedious. As a result there is a clear need for automatic storage management (garbage collection) for such clusters.The goals of a garbage collector for use in a storage-oriented cluster are safety, completeness and scalability in the face of distributed cycles of garbage in secondary storage. Of the few extant distributed secondary storage garbage collectors, none meet all of the stated goals whilst also operating effciently.This paper describes the design and implementation of a new distributed garbage collector based on the train algorithm, specifically for use in storage-oriented clusters. The collector presented here extends the train algorithm, employing an asynchronous distributed termination detection algorithm for isolated train detection, a mechanism for deferring the update of metadata and a new external root tracking mechanism to permit interaction with clients that cache and swizzle pointers. Our experiments demonstrate that these extensions successfully adapt the train algorithm for efficient operation in a storage-oriented cluster, fulfilling the stated goals of safety, completeness and scalability.

[1]  Gerard Tel,et al.  The Derivation of Distributed Termination Detection Algorithms from Garbage Collection Schemes , 1991, PARLE.

[2]  Barbara Liskov,et al.  Partitioned garbage collection of a large object store , 1997, SIGMOD '97.

[3]  Ronald Morrison,et al.  A compliant persistent architecture , 2000 .

[4]  Barbara Liskov,et al.  Collecting cyclic distributed garbage by controlled migration , 1997, PODC '95.

[5]  David S. Munro,et al.  A persistent hyper-programming system , 1997, Proceedings 13th International Conference on Data Engineering.

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

[7]  David S. Munro,et al.  Towards Compliant Distributed Shared Memory , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[8]  Barbara Liskov,et al.  Collecting distributed garbage cycles by back tracing , 1997, PODC '97.

[9]  J. Eliot B. Moss,et al.  Incremental Collection of Mature Objects , 1992, IWMM.

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

[11]  Ronald Morrison,et al.  Orthogonally persistent object systems , 1995, The VLDB Journal.

[12]  Steffen Grarup,et al.  Incremental Mature Garbage Collection Using the Train Algorithm , 1995, ECOOP.

[13]  Irving L. Traiger,et al.  The Recovery Manager of the System R Database Manager , 1981, CSUR.

[14]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[15]  David S. Munro,et al.  Starting with termination: a methodology for building distributed garbage collection algorithms , 2001, Proceedings 24th Australian Computer Science Conference. ACSC 2001.

[16]  David S. Munro,et al.  Garbage collecting the world: one car at a time , 1997, OOPSLA '97.

[17]  David S. Munro,et al.  PMOS: A Complete and Coarse-Grained Incremental Garbage Collector for Persistent Object Stores , 1996, POS.

[18]  David S. Munro,et al.  Mosaic: a non-intrusive complete garbage collector for DSM systems , 2001, Proceedings First IEEE/ACM International Symposium on Cluster Computing and the Grid.

[19]  David S. Munro,et al.  Using the Compliant Systems Architecture to Deliver Flexible Policies within Two-Phase Commit , 2003, BNCOD.

[20]  Marc Shapiro,et al.  Larchant-RDOSS: a Distributed Shared Persistent Memory and its Garbage Collector , 1995, WDAG.