[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
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.
More information about the Squeak-dev