27th April Evaluations.

Thu Apr 27 02:59:52 2000

Experience with Grapevine: The Growth of a Distributed System

Grapevine system is implemented to run on a set of distributed dedicated computers. It provides services that can be divided into message service and registration service distributed over different servers. All servers cooperate to provide those two services where each service is a client of the other. The structures used by those services are replicated and distributed among the different servers with careful consideration to have the needed information near to the server that might ask for them.
The operational experience that the authors gained when the system is under heavy load gave them a better outlook on how the system should be modified in the future to accommodate that load. The authors address how to increase the system capacity and still manage the message service and registration service efficiently. The correct configuration decisions made by the designers in dividing the registration database and inboxes controls the performance of the system.
The Grapevine system is viewed by users as a single, reliable computer and the fact that it is distributed is totally transparent to them. This surprises the users when they find that the change they have done to a registry has not been updated yet, thus thinking that it has been lost in the system.
The Grapevine system provides a simplified file sharing in the Internet. Pitfalls in the file access method in the system design were noticed and solutions to give a better performance under heavy load are suggested. Mail access for home users was only permitted to few users to preserve a maintainable load on the servers.
Normal operators and system experts operate the system. While normal operators, who are not required to have special knowledge of how the system work, have to be present at the server site, system experts can do their job remotely using logs and dead letter facilities of the system.

Fine-Grained Mobility in the Emerald System

The Emerald system is an object-based language and system that supports mobility in distributed programming to provide efficient execution. The fine-grain mobility allows objects (data or process), that are the unit of distribution, to be moved to various nodes in the network in order to achieve better performance. Emerald is intended to be used on local area networks with less than 100 nodes.
Emerald optimizes parameter passing between different nodes. Call-by-reference leads to successive remote calls and call-by-value introduces a lot of copies distributed all around the network. The introduction of call-by-visit and call-by-move allows the programmer knowledge of the application itself to help in this optimization by sending the argument along with the invocation message in the same network packet. The programmer can attach the objects that always need other object, to perform their operation, to it by making it an attached object.
Objects in Emerald provide an easy way to extract the state that they are in. Once an object need to access a remote object, forwarding address is obtained and updated lazily from the different nodes (following the chain) till it finds the node that has the object. In case the chain followed passes through a dead node, broadcasting is used to find the node that has the updated object.
Garbage collecting in Emerald is much simpler than other distributed systems. While other systems have mobile references, Emerald uses mobile objects. The garbage collecting process goes in two different ways: local collector and a distributed collector. Both of those collectors operate in a mark-and-sweep fashion. Any object that is on the move is known to be either a referenced object or an object that is currently executing, thus no need to garbage collect it. The authors proposed way of implementing the garbage collector eliminates the need to halt the execution of the processes and overcomes the problems of having a crashed node in the network.
Mobility increases the generality of the system but degrades the performance since the process could have been executed locally. One of the Emerald designersí objectives is to develop the system such that the distribution will not interfere with the performance of objects in a single node. I think they have achieved that to a great extent.

Sobeeh Almukhaizim