rST - Remote Garbage Collector
Last updated at 4:50 pm UTC on 16 January 2006
This is a description for the Remote Garbage Collector in rST - Remote Smalltalk
Goals
- Remove garbage. =o)
- Handle intermittence in the availability of the images, so PDA and Notebooks can interoperate in a distributed environment.
- Run concurrently.
Open Points
- Can't remove circular references between remote objects.
- User other meassure of time: The time for the objects must be considered for the messages they receives and not in real time. (suggestion of AlejandroReimondo)
Arquitecture
For convenience, we'll name Server to an image that gives remote access to a local object and Client to an image that use a remote object that lives in another image. Every image can play as Server for some objects and as Client for others.
- The Client image periodically send to each Server image a list of objects accesibles from the Client image (see RSTBroker>>clientSideMaintenance)
- When the Server images receives the notificacion can forget the objects that are not in the list. (see RSTBroker>>remoteImage:references:)
- The objects remembered by the Server image for an Client image that are not sending the notificacion will be alive forever (or for a large time) waiting for the notification.
- The objects exported by name will be remembered for ever (see RSTBroker>>export:named:)
Participants
- RSTBroker: in the role of Client and/or server (see RSTBroker>>remoteImage:references: and RSTBroker>>clientSideMaintenance)
- RSTRememberer: the role of this class is to remember some objects. It can remember forever or for some time. (see RSTRememberer class comment)
Credits