[squid] Re: Squid plan

Jecel Assumpcao Jr jecel at merlintec.com
Thu May 22 23:24:40 UTC 2003


Nice Swiki page! I'll try to find some time to comment on it next 
week...

On Saturday 17 May 2003 14:31, Anthony Hannan wrote:
> The replica would be added to your segment that called for it.  If
> you want you can create a new segment and move objects to it. 
> Segments are like disk partitions, while objects are like files. 
> Objects can be moved or replicated between segments.

Ok, and what things can I do with segments themselves?


> I still want to model disk partitions.  We can then model
> object-groups (your verions of segments) on top of that, if desired. 

Sure - I have looked into many alternatives over the years and none is a 
clear winner. For example: once I was trying to unify message passing 
between VMs and saving segments to disk. That was really fun!

> Although, replicating at the object level may be sufficient.  I'm not
> saying to only transfer one object at a time, a group of them can be
> replicated and transfered at once.  But I am saying that each object
> replica would have a remote pointer to its original.

Would the original know anything about the replicas?

> To minimize replica overhead, I would declare certain classes as
> "value" classes.  Instances of these classes are immutable and have
> no object identity.  They would just be copied when replicated with
> no reference to its original.  Only #= should be sent to these
> objects.  Along with Strings and other primitive objects, I would
> declare Methods as value objects.  This way a class can be replicated
> with only a few replica pointers. 

What about symbols? You might want to handle them specially since not 
being able to send them #== would make them pointless, while having 
them be costly to replicate would not be very nice.

> Notice a class could be immutable
> as well but it would not be a "value" object.  Classes would still
> have object identity.  This is necessary to recognize the same class
> on different machines.  This way when an instance is transferred to
> another machine its class can be found on the target machine using
> identity test.

This is a really, really hard problem and where most of the distributed 
object systems have failed. And one of the reasons why eliminating 
classes from the language definition was attractive for me.

> If we still want to group objects without adding a parent field we
> can try to group them by relative position within the segment heap. 
> The gabage collector will have to maintain this relative position.

I have already forgotten what the parent field was for.

> And yes, I want to use a proper reflective architecture, where all
> entities, including physical entities such as disk-partitions,
> processor, memory, disk, display, keyboard, mouse, printer, etc. are
> objects.  Obviously, objects representing physical entities can not
> be replicated or moved to other segments/disk-partitions.

Have you seen CoDA or Moostrap? They have meta-objects for sending and 
receiving messages as well.

http://web.yl.is.s.u-tokyo.ac.jp/members/jeff/research/coda.html

http://citeseer.nj.nec.com/254056.html

-- Jecel



More information about the Squeak-dev mailing list