Review of Emerald Paper

From: Gail Rahn (grahn_at_cs.washington.edu)
Date: Wed Feb 04 2004 - 18:10:02 PST

  • Next message: neshnash_at_u.washington.edu: ""Fine-Grained Mobility in the Emerald System" Review"

    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


  • Next message: neshnash_at_u.washington.edu: ""Fine-Grained Mobility in the Emerald System" Review"

    This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 18:10:04 PST