From: Steve Arnold (stevearn_at_microsoft.com)
Date: Wed Feb 04 2004 - 14:49:46 PST
The Emerald system is a platform and language for enabling object-level
(fine-grained) mobility among many nodes. There had been past attempts
at this, but the authors of this paper wanted to introduce some more
concepts to really make this work. The advantages of this system, as
then contend, are load balancing, performance, availability, data
movement, and a couple of others.
The Emerald system is built completely around objects, consisting of
globally unique names, data, methods, and (sometimes) a process. The
language has a new syntax, but one that would be fairly familiar to
object-oriented programmers. They implemented a few primitives just for
supporting mobility. This enables the programmer to easily (yet
explicitly) move things around.
Emerald relies heavily on shared memory. Pointers can be used, but they
must be re-linked after moving. Sometimes objects that you need may move
around, so they have provided ways of locating these objects using an
object identifier. Moving is left largely up to the programmer, so that
he or she can make decisions about where the best location for an object
is. Much emphasis is given to garbage collection, since objects and
dependencies can be all over the place. They have some clever methods
for keeping track of this.
There is a section on performance on this paper, but they mainly give
raw numbers. They compare to those systems without mobility, although I
didn't see much detail of this. The numbers were also relative to the
hardware, and it would have been nice to see more comparisons.
This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 14:49:55 PST