From: Honghai Liu (liu789_at_hotmail.com)
Date: Wed Feb 04 2004 - 13:49:16 PST
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.
This archive was generated by hypermail 2.1.6 : Wed Feb 04 2004 - 13:49:24 PST