Grapevine Hierarchy

Eddie Byon

The Grapevine multicomputer system for the Xerox research internet was designed with its primary focus on implementing a distributed computer mail system. In order to achieve this while minimizing system complexity, the Grapevine was organized using a hierarchical naming system. This hierarchical naming system was defined recursively, allowing alterations to be handled effectively, and supporting algorithms which were a necessity for electronic mail and other client services.

Grapevine system is a registration database that maps names to specific information about users, servers within the system, and services. The naming system for the entries in the database is structured as a two-level hierarchy. It divides the RName, into two parts. The first part represents the name, while the second represents the registry the name belongs too. For example, the RName X.Y represents a name X within registry Y. Registries correspond to different types of partitions within the system, which permits names to be given to servers as well as users. The only difference would be whether or not the name belonged to a server or user registry. It is this flexibility which permits the database to be divided and defined recursively.

The most important registry within the Grapevine system is the GV (Grapevine) registry. The GV registry stores locations of RNames and moreover the distribution of the database to registration servers using recursion. All registration servers in the system are listed in the GV registry as an individual entry and contain standard information such as address and authentication. Since all registries in the system are listed in the GV registry as group entries, and since their members are the RNames of every registration server that contains that specific registry, all registries of users and services must be stored in the GV registry. The GV registry is also stored as a group entry within itself such that the RNames of all registration servers can be accessed.

This hierarchical structure also allows alterations to the Grapevine system and algorithms for message delivery, authentication, and retrieving messages to be simplified. When a registry is updated in a server, the server sends a message to all of its members in that registries' server to be updated. Eventually, all distributed servers would contain the correctly updated information thus illustrating that the Grapevine system can be easily updated now without affecting or contaminating other registries in the system. Algorithms for functions such as message delivery, authentication, retrieving messages, updating the database, and providing client service are all simplified. The algorithms have easy access to the necessary information because of the hierarchical naming structure, all information can eventually be found under a specific RName within a specific registry.

One aspect that we have not discussed are the shortcomings of such a hierarchical structure, which include the addition of extra components (i.e. multiple registries and names) and slower performance. However, the benefits of the naming system are a clear structure which permits easy alterations and algorithm simplicity, which, when dealing with large complex systems, thoroughly outweigh the costs.