From: Eric Hodel Date: 2006-03-29T04:12:38+09:00 Subject: Re: Tracking DRbObject References? On Mar 27, 2006, at 5:27 PM, Daniel Nugent wrote: > Does anyone know of any work done on keeping track of the number of > the existing DRbObject references to a local object? IdConv would be the thing that does this. > It seems that if I can keep track of the propogation of DRbObjects > (adding calls to a service on the server where the local server that > update the distributed reference count), that it should be sort of > trivial to release the local object only when all distributed > references are gone. > > On #ruby-lang it was suggested that this might be premature > optimization, however, I am sure that this will be necessary. !!!BIG, RED WARNING FLAG!!! Program based on necessity, not on inferred necessity! > The purpose of the system I am writing is to provide a framework > for Actor > computation. One of the programming techniques in the Actor model is > to produce a large number of worker actors on a machine with many > processors for the express purpose of computing a small part of a much > larger computation. However, another technique is to create a smaller > number of actors that you will keep around and possibly propogate > those references to other actors in the system. So you can see how > the distributed system could easily become littered with > undiscoverable objects that would sit around wasting resources if they > aren't garbage collected, yet we can't necessarily toss them away > right after we use them. > > If there's anything that you think might be helpful, I'd be very > appreciative. There are two better options for tracking distributed objects. Switching to a different IdConv like NamedIdConv. Using a TupleSpace to manage the distributed objects in your system. -- Eric Hodel - drbrain@segment7.net - http://blog.segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com