CSE 221 Paper Evaluations

Greg Johnson (johnson@SDSC.EDU)
Wed, 26 Apr 2000 20:56:19 -0700 (PDT)

M. Schroeder, A. Birrell, and R. Needham, 1984.

This paper describes Grapevine, a distributed, not-quite-operating
system, which provides several services divided into two classes.
The messaging service enables messages of arbitrary content to be
passed between clients and servers. Registration services provide
authentication, access control, and maintenance (of access control
and resource location lists).

With these services, Grapevine provides portions of a meta computing
environment. In this respect it appears to lack only job scheduling
and control, and local resource allocation services.

A Grapevine system is composed of a wide area network dotted with
Grapevine servers, one or more of which is typically located (and
services) the hosts within a given local area network. Replication
of key data makes for a reliable, reconfigurable system.

One issue with a distributed system of this type is its scalability.
The careful consideration of this point is an aspect of the paper I
particularly liked. The authors detail potential and current limits
to expansion (everything from how and when to increase the number of
servers, to methods for handling distribution and "interest" lists
of increasing size).

The success of the authors in achieving the goals of a distributed,
reliable, performance-oriented meta system is best reflected in the
comment: "most users and registrars treat Grapevine as if it were
implemented on a single, large, reliable computer ... to which all
workstations were connected through high-speed links."

Unfortunately, is doesn't appear as though Grapevine will "become
the source of authentication and access control information for the
internet." This may partly be due to freezing the Grapevine design
and implementation before its time. The authors state they became
reluctant to make changes to the system that might affect its large
user community. In essence, Grapevine may have fallen victim to the
bane of research codes everywhere: productization.


E. Jul, H. Levy, N. Hutchinson, and A. Black, 1988.

Emerald is an object-based language and distributed operating system
designed to perform efficiently, be reconfigurable, and take advantage
of spatial locality (for improved communication performance). Emerald
is targeted at homogeneous clusters of less than 100 nodes (not all of
which need be a part of the same physical machine). In the description
of Emerald design motivations, the authors lightly touch on the notion
of the duality in systems designs described in the Lauer / Needham paper.

The movement of active objects between nodes of the system is performed
in an interesting manner. Only the data associated with an object is
moved, never the code. Rather, the code required by the object in its
new home is retrieved from another node by the kernel if its does not
already exist in the new location. Thus, objects share code within a

The ability to move fine-grained objects around in a parallel system
raises some interesting possibilities. Objects may be moved to the
location(s) in the system where they are referenced most often. Further,
object movement can be used to replace a traditional (user level) message
passing scheme (simply move the object with the required data as needed).

One consideration (of several the authors describe) associated with
pervasive mobility of objects, is how to keep track of the location of
an object in the system. This is handled in Emerald via "forwarding
addresses". Finding an object is a matter of looking in the last known
location. If the object isn't there, simply follow its "trail of bread-
crumbs" until you find it. As a last resort, issue a broadcast message.

Greg Johnson office: (858) 534-8367
Senior Programmer Analyst fax: (858) 534-5152
San Diego Supercomputer Center email: johnson@sdsc.edu
University of California San Diego