Review for "Fine-Grained Mobility in the Emerald System"

From: Justin Voskuhl (justinv_at_microsoft.com)
Date: Wed Feb 04 2004 - 14:41:54 PST

  • Next message: Steve Arnold: "Review: Jul, et.al., Emerald"

    This paper describes an environment for distributed programming that
    provides a type-safe runtime and programming language that allow objects
    in the system to move from node to node in a transparent fashion. The
    programming language allows the programmer to express notions related to
    mobility in the programming language. For example, if the programmer
    defines a type A, and the type A contains a member B, in the type
    definition for A the programmer can express whether or not B should
    travel along with A when A moves from node to node.

     

    To achieve this mobility objects are assigned special names that are
    unique across the network. The names are machine-id/timestamp pairs,
    which allow objects to refer to objects on remote machines just like it
    can refer to objects on its own node. The designers take special care
    to not make operations that run on the local machine (much) more
    expensive than they would be in most other programming languages, while
    also providing the flexibility of having a reference to any object
    potentially be remote.

     

    Since objects can move around in the system, each node maintains
    forwarding addresses for objects that have moved off the node. With
    this scheme, nodes looking for an object can follow the forwarding
    addresses looking for the object. Because the naming of the objects
    uses the timestamp, you can get some optimizations from knowing which
    names for an object are later and which are newer.

     

    The system uses garbage collection to handle memory management. Because
    most objects will be short lived and stay on only one node, the garbage
    collector takes special note of objects that have moved off this node,
    or objects that have moved from another node. It can garbage collect
    local objects without having to interact with remote nodes.
    Periodically it needs to garbage collect the entire distributed network.
    It uses a mark and sweet algorithm that can run while the nodes continue
    to do work and modify the graph.


  • Next message: Steve Arnold: "Review: Jul, et.al., Emerald"

    This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 14:42:00 PST