W4 thursday stuff

Syed Adnan (sadnan@ucsd.edu)
Thu, 27 Apr 2000 02:00:50 -0700

Name: Syed Adnan
Date: 4-26-00
Fine-Grained Mobility of the Emerald System.

Paper talks about an object-based language and system designed for the construction of distributed programs. In distribution, Emerald's explicit goal was to provide mobility of objects. Paper also discusses the advantages of fine grain mobility.
Emerald said to have fine grain mobility because system didn't distinguished between data objects and objects containing processes. Paper mentions the advantages of the process migration as load sharing, communication-performance, availability, reconfiguration, utilization, data movement, invocation performance and garbage collection.
One of the major goals of this system to achieve a reasonable performance with both local process based system for local objects and performance equal to RPC based system for distributed objects. Programmer for this system creates just one type of object, and system doest makes any distinction between local and distributed object. Only compiler makes it different underneath during compilation time. This allows a Emerald programmer to describe from nothing to a great deal about an object.
System provides primitives for mobility to support distribution of objects. Emerald uses call by objects methodology, but try to avoid it by utilizing the mobility of the objects that it is very expensive for system. Paper does acknowledge and except these performance trade offs to get all the advantages of a fine-grained mobile system. Notion of ID is used to identify an object uniquely in a system (very similar to Microsoft guid, number uniquely generated for each type of objected). Protection among objects is guaranteed by the compiler, both type checking and run time checking (very similar to java).
There are mechanisms to find objects over the network, to be able to keep track of them, or just simply invoke a method on them. Garbage collection uses mechanism along with its own tags, to garbage collect objects (though it is not implemented in the system yet)
Emerald system is very close to java system. It is also single address space system, using compiler for protection. RMI is similar to distributed fine-grained model that is being described here, but not as detailed. This paper is a very good overview of how one might sat down and think about creating something like Java system. There are few places where it is too detailed oriented, but it is a very good paper.

Name: Syed Adnan
Date: 4-26-00
Experience with Grapevine
The Growth of a Distributed System

Paper talks about a system called Grapevine. OneIt is a message based distributed system that provides name, authentication, resource allocation, and access control in an Internet system. Paper talks about the experience of creating and maintaining such a system as the load grows on such a system. Services provided by the grapevine are divided into two message and registration services. Message service accepts messages from client to deliver to individual recipients and distribution lists. The registration service provides, naming, authentication, access control list and resource allocation to client using a database containing all the relevant information.
All these services obtained by the client using a program of Grapevine, which runs on client side. This program uses Internet protocols (the one available at that time).
One of the goals of the system to increase the capacity of the system by adding more fixed power servers, with out using extremely powerful servers. They noticed that as the system grew with number of users and groups, Grapevine experienced problems. As the size of Internet grew, point-to-point communication became harder in Grapevine system. Message delivery delays were experienced, and solution for those delays were suggest to be multi step forwarding of messages where point-to-point link wasn't available. Different configuration in servers was used to make things more efficient. For example, message sharing among all recipient inboxes on the same server and it was stored only once. Registry organization in servers was changed to make it more efficient.
There was one implementation issue that grapevine system really didn't have the logic to understand different type of connections. It didn't take any consideration for reliability and bandwidth of the system. Propagation of database changes from one server to others was a problem that once size and frequency of update of messages increased, propagation started to delays messages because of all the traffic on the network. They decided later on to update only the changes instead, which relived some of the load from the network. Reliability issues were discussed in this paper that replication was one of the solution for reliability. Problem with that solution was that once load increased on servers, and one of the servers crashes, it moves the load on other servers, and it became a chain reaction thrashing a lot of servers overloading with requests.
I think that it was such a hard system to create that they were taking care of so many different issues of a network. Grapevine was providing so many different services, which made things harder on Grapevine. System was providing, in some sense, routing to the packets to other servers, and providing server services as well. Everything boiled down to the resources in this system. Though they were able to detect and provide some sort of solution for their problems, they really needed more hardware to support the demand for exploding number of users on the Internet.