Distributed garbage collection
To better understand this section, examine the sample SstPingPongLPDgc.
The distributed garbage collection (DGC) system for SST is used to remove objects from the export set of an object space once they are no longer imported (referenced) by any other space participating in DGC. Once removed from the export set, they are subject to collection by the normal Smalltalk garbage collector.
A typical distributed application is spread over a number of application contexts with the DGC system installed in each. The object space of one of these contexts is chosen as the coordinator space for the DGC. The DGC coordinator is responsible for initiating and detecting the termination of garbage collection iterations.
The DGC system attempts to maintain a threshold on the size of the export set in each object space. Once the number of exported objects exceeds this threshold, the local DGC object asks the DGC coordinator to initiate a new collection iteration. Once the iteration is complete, each space is free to remove the objects which are no longer referenced by remote spaces.
The DGC system has also been designed to gracefully handle incremental registration and deregistration of spaces and to accommodate failure scenarios.
Last modified date: 04/20/2020