Spoon vs Serialization

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Spoon vs Serialization

Tapple Gao
There are four ways I can think of to use an object
resident in a foreign island (or object memory, or vat), in a
safe manner (no interrupting an object during a state change, and
no out-of-sync copies)

If the object is writable, you can:
1. PassByProxy: Get a proxy to the object, and send it messages
   that execute in its local island, safely scheduled. E and
   Croquet do this with FarRefs; Spoon does it with Others.
2. PassByReplica: Get a replica of the object. Messages sent to
   it will be executed both locally and remotely. Croquet does
   this

If the object is read-only, you can also:
3. PassBySerialization: Serialize the object into a stream of
   instructions in a safe language, then read it in locally.
   Since the copies are read only, they never get out-of-sync.
   This is what any serializer does.
4. PassByCopy: If the islands are in the same format, one could
   copy out the bytes, and resolve out-pointers at both ends.
   This is what ImageSegments do. This would be much faster than
   serialization, and can even be supported in hardware, by
   doing a DMA between two memories in a distributed memory
   computer (such as a Cell Broadband Engine)
5. PassByInstance: If the islands have access to shared memory,
   one can use an object directly, executing messages for it
   locally. Croquet does this for a few objects,

Which of these does Spoon use to copy objects between
memories/islands? I'm curious, especially in regard to
PassByCopy, since I'm working with the Cell BE in mind.

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/
_______________________________________________
Spoon mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/spoon
Reply | Threaded
Open this post in threaded view
|

Re: Spoon vs Serialization

ccrraaiigg

Hi Matthew--

      Spoon uses proxies by default, and serialization on demand. This
is all that's needed for its module system and other remote tools to
work, but one could certainly implement the other techniques, for
further applications.


      thanks,

-C

--
Craig Latta
improvisational musical informaticist
www.netjam.org
Smalltalkers do: [:it | All with: Class, (And love: it)]

_______________________________________________
Spoon mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/spoon