full isolation

Jecel Assumpcao Jr jecel at merlintec.com
Fri Mar 4 18:15:38 UTC 2005


Craig Latta wrote on Fri, 04 Mar 2005 02:14:26 -0500
> 	If you've got both small core object memories and remote
> message-sending, why not just put things that need to be isolated in
> separate object memories? Besides being sufficient (?) and simpler than
> trying to cram everything into a single object memory, you get
> distribution across multiple machines "for free".

Imagine that an acyclic directed graph describes the dependency between
the modules (we should be so lucky!). You want a node to be isolated
from some other random node, and also from everything that depends on
it. But you don't want to isolate the node from the stuff on which it
depends.

A solution is to put each node plus a copy of everything on which it
depends into a separate memory, though this only works as long at
everything but the node itself is read-only. Another solution is to put
each node into a separate memory and use remote messages exclusively for
a given node to interact with the stuff it depends on (these are
objects, after all, so we can do this). In this case writable shared
stuff is allowed but performance might not be good. A third solution is
like the first, but the copies are kept in sync. This would be TeaTime,
right?

> 	I have to admit that, so far, I'm not a fan of "isolation" within a
> single object memory, or using image segments for anything not "below
> the line" in virtual-machine-land. Jecel's virtual memory suggestion
> seems fine, but throwing image segments around seems like an
> overcomplication to me. Why not keep it all live objects sending messages?

I would very much like to do it like that (there is an interesting
Croquet thread about this) but one requirement I have is to be able to
deal with people who are connected to the world via CD-ROMs sent by
snail-mail. We can still think of the included files as messages in some
protocol over a channel, but without a reasonable back-channel there can
be no negotiations. If I could drop this requirement then things would
be nicer.

-- Jecel



More information about the Modules mailing list