next up previous contents
Next: Bibliography Up: Actor Garbage Collection in Previous: Local Actor Garbage Collection

Optional Distributed Garbage Collection Service

Distributed actor garbage collection is more complicated because of actor migration and the difficulty of recording a meaningful global state of the distributed system. The SALSA garbage detection protocol and the local actor garbage collectors help simplify the problem -- they can handle acyclic distributed garbage and all local garbage.

The current SALSA distributed actor garbage collector is implemented as a logically centralized, optional service. When it is triggered to manage several hosts, it coordinates the local collectors to get a meaningful global snapshot. Actors referenced by those outside the selected hosts are never collected. The task of identifying garbage is done in the logically centralized service. Once garbage is identified, a garbage list is then sent to every participating host.

A distributed garbage collection service collects garbage for selected hosts (theaters). It collects distributed garbage providing a partial view of the system. SALSA also supports hierarchical actor garbage collection. To build the garbage collection hierarchy, each distributed garbage collection service requires its parent (at most one) and its children. The usage of the distributed garbage collection service is shown as follows:

java -cp salsa<version>.jar:. gc.serverGC.SServerPRID <n> <parent> <child1 or host1> <child2 or host2> ......

specifies that the service should be activated every seconds. means that the service only executes once and then terminates. parent specifies the address of the parent service, with the format <ip>:<port>. Invalid format indicates that the service is the root service. <child1 or host1> indicates the address of the child service or the target theater, with the format <ip>:<port>. Notice that a theater is always a leaf.

To run the distributed garbage collection once, one can use the command as follows:

java -cp salsa<version>.jar:. gc.serverGC.SServerPRID -1 x <host1> <host2> ......

To run it every seconds, use:

java -cp salsa<version>.jar:. java gc.serverGC.SServerPRID <40> x <host1> <host2> .....

Note that n should be large enough, or else performance can be severely degraded. The default is .

LITERATURE CITED


next up previous contents
Next: Bibliography Up: Actor Garbage Collection in Previous: Local Actor Garbage Collection
Wei-Jen Wang
2007-11-28