Review of Emerald System

From: Muench, Joanna (jmuench_at_fhcrc.org)
Date: Wed Feb 04 2004 - 14:23:00 PST

  • Next message: Justin Voskuhl: "Review for "Fine-Grained Mobility in the Emerald System""

    In their paper on the Emerald system, Jul et al. (1988) present a language
    and system to support object-oriented distributed programs. They motivate
    the work as a step towards finer-grained mobility of process migration,
    moving individual objects rather than entire address spaces. As a measure of
    success, they compare local performance with standard procedural languages
    and remote performance with standard RPC systems.

    On the surface, Emerald is a single-object model with only a single object
    definition mechanism. However under the covers the compiler analyzes each
    object and generates an appropriate implementation. These implementations
    are global, local and direct objects, used for moveable, contained and
    primitive-like objects, respectively. The language uses
    call-by-object-reference parameter-passing semantics. While the programmer
    can allow the compiler to determine what objects should be moved to the site
    of a remote invocation, the language also supports call-by-move, allowing
    the programmer to request an object be moved, based on knowledge about the
    application.

    Implementation of Emerald required solutions for many of the issues common
    to distributed systems. The system required a scheme allowing objects to be
    found, in this case using an address-forwarding scheme backed up by a
    broadcast protocol, presumably in case one component of the system fails.
    The marshalling of objects depends on the type of object, and requires some
    careful analysis of activation records. The system uses templates to
    describe object data areas. These both help the system figure out what
    object pieces are pointers or data, and also help with garbage collection.

    At a glance, the performance of the system appears reasonable, although true
    performance is hard to judge without a system under use. The design decision
    to favor quicker local calls over remote is reflected in the performance
    measures. Unfortunately the authors don't mention how difficult the system
    is to develop for or maintain.

    I found the paper compelling from an intellectual standpoint, simply because
    the initial concept seemed so improbable. The authors managed to devise a
    system that appears easy to use, with its complex (yet elegant) mobility
    mechanisms neatly handled below the surface. Unfortunately I was left with
    the nagging question of where a system like Emerald could be useful. It
    certainly isn't a general-purpose OS, given its requirements for homogeneity
    in language. And with modern processor speeds, I'm not certain that such a
    fine-grained mobility mechanism is especially useful. The paper does present
    some unique solutions to standard distributed systems issues.


  • Next message: Justin Voskuhl: "Review for "Fine-Grained Mobility in the Emerald System""

    This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 14:24:32 PST