From: Gail Rahn (grahn_at_cs.washington.edu)
Date: Wed Feb 04 2004 - 18:10:02 PST
Review of "Fine-Grained Mobility in the Emerald System" paper by Jul et al.
The Emerald system is an object-based language for use in distributed
programming. Emerald allows fine-grained object mobility -object data and
processes can move easily around a network of computers.
What is fine-grained mobility, exactly? The distributed unit in this kind of
programming system is the object. A programmer can easily move data AND
processes form node to node in a network, without having to explicity
marshal and transfer information. When invoking remote processes, Emerald
has the option of strategically moving parameter objects to improve the
performance of the process. Fine-grained mobility also means improved
distributed garbage collection.
The design goals of the Emerald system include:
* performance competitive with standard LPC and ROC.
* ease of programmer use of the system.
* object distribution method(s) hidden from programmer
Emerald relies on network-wide unique naming and a smart compiler to detect
the level of distribution for an object and select the best implementation
method. The programmer is ignorant of the implementation selection. Code
for an Emerald object resides in a single location on a node that holds the
distributed object. When the object is moved, the receiving node also
requests its processes to be transferred to the machine. In this way,
processes follow an object. Emerald defines some primitives that allow
object portability: Locate, Move, Fix, Unfix and Refix are methods that
manage finding and moving objects around a network. In Emerald, a programmer
can also "attach" objects to each other, allowing objects to move in groups
around a network.
The Emerald system is implemented by exploiting shared memory. Emerald is
contained in a single address space, and its object process are containing
lightweight-threads. Emerald also contains a message-passing algorithm for
object location across nodes.
Probably because of the date of publication, and because the system was a
prototype, Emerald makes two assumptions that don't work on today's
networks. First, Emerald is designed for distribution among a "modest"
number of nodes - around 100. This kind of small network exists in
decreasing numbers. Second and more importantly, the system assumes a
network comprised of homogeneous systems. Today's networks, even in
research situations, are heterogeneous, even chaotic. Distributed systems
must be able to function across networks containing different platform
implementations.
-- Gail Rahn
grahn_at_cs.washington.edu
This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 18:10:04 PST