Yu Xu's eva7.txt

Albert Xu (xualbert@yahoo.com)
Thu, 27 Apr 2000 01:21:43 -0700 (PDT)

Do You Yahoo!?
Talk to your friends online and get email alerts with Yahoo! Messenger.
Evaluation of "Experience with grapevine"

The designers of Grapevine reexamine their system after Grapevine has been used for several years. In this paper they report what they have learned from using Grapevine.
Grapevine is a distributed, replicated system which provides message delivery, naming, authentication, resource location, and access control services in an internet of computers.
Distribution lists doesn't scale well. The decision to use only geographical registries was mistaken. As for transparency of distribution and replication, There are several major problems. Delays in propagating registration database changes often surprise registrar and users; There is no notion of any kind of "home server" for a registry at which its statistics should be accumulated; Automatic remailing from removed inbox sites is a mistaken. It would be better for the abandoned inbox to be marked for deletion but continue to be accessible until emptied by message retrieval; Apparent failure to eliminate a duplicate message from an inbox; The designers assumed that users would not want to know much about its state of availability or accessibility, and accordingly they are not told about such things. This is a wrong decision; Group nest could cause access control checks to take a very long time, especially when access to the file was denied. This can be solved by introducing two chan
ges. Achiving was not done very well. It's still possible for a disk to get too full. Users with terminals need better service.

Evaluation of " Fine Grained Mobility in the Emerald System"

Emerald is an object-oriented language and system for distributed
programming. Emerald is operational on a small network, also it
assumes that nodes are homogeneous in the sense that they all run the same
instruction set and that they are trusted.
Emerald has several features:
- support for fine-grained object mobility.
In Emerald, Objects can be small data objects as well as process
objects. Object mobility subsumes both process migration and data
transfer.Fine-grained mobility provides three more benefits on the following
aspects compared to process migration:Data movement, invocation performance and garbage collection.

-Efficient local execution
In Emerald, all objects on a node share a single address space and
objects are addressed directly. Invocations are implemented through procedure call or in-line code where possible. This greatly improve local execution
But the result is that pointers must be translated when an object is
moved. To solve this problem, a combination of compiled invocation code and
run-time support is responsible for maintaining date structures linking
activation records to the objects they invoke. To reduce the cost of its
maintenance, this structure is lazy evaluated.

-A single object model,

Emerald provide language primitive for programmers to find and
manipulate the location of objects For example, Programs can declare "attached" variable, the object named by attached variables move along with the objects to which they are attached. Call-by-move permits an invocation's argument object to be moved along with the invocation request. This can improve remote invocation performance while preserving the advantages of call-by-reference semantics.
The mail system traffic example shows the good performance of object mobility. I think the good performance of Emerald is partly because it don't consider the security issues since it assumes all nodes are trusted.
The paper doesn't mention the issue of scalability, reliability, load
balance which are importance subject in almost distributed system. These issues are carefully talked in the grapevine paper.