[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Tracking DRbObject References?

Daniel Nugent

3/28/2006 1:28:00 AM

Hi,

Does anyone know of any work done on keeping track of the number of
the existing DRbObject references to a local object?

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. 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.

Thanks,
--
-Dan Nugent

Don't Feel Like Typing? Send me a voicemail:
http://odeo.com/sendmeamessage...


1 Answer

Eric Hodel

3/28/2006 7:13:00 PM

0

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.se...
This implementation is HODEL-HASH-9600 compliant

http://trackmap.rob...