Review of Fine-Grained Mobility in the Emerald System

From: Honghai Liu (liu789_at_hotmail.com)
Date: Wed Feb 04 2004 - 13:49:16 PST

  • Next message: Cem Paya 98: "Review: Fine-grained mobility in the Emerald System"

    Fine-Grained Mobility in the Emerald System

     

    Reviewer: Honghai Liu

     

    The paper presents Emerald system, an object-oriented language and system, which enables
    the fine-grained mobility programming in a distributed system with performance gain.

     

    Emerald, is a new object-based language which is different than many other OO languages.
    Traditional OO languages tend to provide more abstract and generic object support, while
    Emerald focuses on extra mechanisms to improve performance.

     

    First, it explicit supports mobility, for example, it has "move" and "attach" primitives to
    let programmer explicitly decide whether to move the object to a remote location for better
    performance in future invocation. This makes the language less transparent to programmers,
    but it can be reasonably justified by the fact that performance is the major concern in a
    distributed system.

     

    Second, Emerald provides implicit support on different objects based on their locations.
    Specifically, objects are classified into global, local and direct objects. It enables the mobility
    support without the compromise of performance of local objects.

     

     Last, direct memory address is used in Emerald again to increase the performance of local
    invocations. Template was invented to describe the format of local pointers, and with the help
    from run-time support, the pointers can be easily translated when an (global) object is moved.

     

    It is interesting to see how garbage collection works in such a mobility distribution system.
    Traditional mark-and-sweep collection algorithm requires the traverse of objects in a computer
     twice to identify the objects that were not referenced by other objects any more. In Emerald,
    it is optimized in two ways. First, it marks all the object on the move black (reachable), since
    they wouldn't move unless they are referenced somewhere. Second, in order for collectors to
     proceed in parallel with executing process, all the objects reachable from processes will be
    marked. Therefore, there is always a small delay whenever there is a reference to an object
    during process's execution; however, concurrency of garbage collection with processes is
    achieved.

     

    Nevertheless, in order to achieve performance goals, Emerald requires an entirely new
    language, compiler and kernel support, and it may limit its application to modern systems.
    After all, there are other alternatives to increase the performance in distributed system without
    impact on languages.


  • Next message: Cem Paya 98: "Review: Fine-grained mobility in the Emerald System"

    This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 13:49:24 PST