Review of Emerald paper

From: Praveen Rao (psrao_at_windows.microsoft.com)
Date: Wed Feb 04 2004 - 13:27:21 PST

  • Next message: Chuck Reeves: "Fine-Grained Mobility in the Emerald System"

    Emerald is a distributed computing system that allows for fine grain
    mobility. Mobility in Emerald is at object level where objects can be
    anything from small data objects to process objects.

    The paper discusses benefits of fine grained mobility which include the
    benefits of process migration - load sharing, communication performance,
    availability, reconfiguration, utilizing special capability, and
    additional benefits of data movement, invocation performance and garbage
    collection.

    One has to wonder about the performance cost of such fine grained
    mobility. To address this, authors state a goal of achieving performance
    compared to traditional procedure calling systems in local scenarios and
    comparable to RPC in remote scenarios.

    Emerald is not designed for long-haul networks and is only suitable for
    local area networks with a limited (~100) number of nodes. It also
    assumes that all the nodes are homogenous and that they are trusted.
    These assumptions sound somewhat restrictive but I can understand that
    scope needs to be narrowed for such ambitious design.

    To achieve these goals Emerald uses a new language and a new kernel. New
    language allows Emerald to introduce semantics for object movement. The
    interesting things about Emerald are that process can traverse through
    different nodes and that there is no separation of code and data (in
    terms of classes and objects). Code of an object is part of the object
    itself, and this allows for mobility at the fine grained object level.

    Emerald follows call-by-reference model but has optimizations to move
    dependent objects together to avoid the cost of remotes calls resulting
    from this model.

    An Emerald process is a thread of control that is initiated when an
    object with process is created. A process can invoke operations of its
    object or objects references by this object. This thread of execution
    can move across the nodes as the objects move. In traditional systems
    the state of a process is distributed in various OS data structures and
    the process might reference data by names (or indexes) that are relevant
    only on local machine. Emerald's object oriented nature alleviates the
    first problem and second problem is solved by naming the objects in a
    global way. Finding of objects is done using forwarding addresses.

    Emerald allows the objects to have embedded pointers for efficient local
    execution (which is mostly the common case). Upon movement, this
    pointers need to be translated. This is done using the help of compiler
    and the concept of templates. For Garbage collection of the objects
    Emerald uses mark and sweep algorithm.

    The paper includes performance measurements of Emerald system but
    doesn't compare it to the performance of a traditional (local) process
    oriented system. It does show the gains with mobility though.

    This seems to be neat idea barring the practicality of one language,
    applicability only in a small network and performance concerns.


  • Next message: Chuck Reeves: "Fine-Grained Mobility in the Emerald System"

    This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 13:27:29 PST