next up previous contents
Next: Bayou Up: Related Work Previous: NFS

Orca

The Orca distributed shared object system and language [1] focuses on optimizations for parallel programming. It uses a custom compiler to determine read/write semantics of operations, and makes object access and location decisions based on those semantics. For instance, read-only methods can run simultaneously on multiple machines, but methods that perform writes require locking the object. Objects can be replicated, moved, or accessed remotely. Replica consistency is enforced by a totally ordered group communication [11]: all clients see updates in the same order. Updates are automatically propagated to clients, and updates to objects are sent as method signatures with parameters.

Orca has a number of elements that are useful for DCAs including object replication, an update-based consistency protocol, and global ordering for updates. However, Orca allows unsynchronized access only for read-only methods, but locks objects to execute methods that modify the object. These locks prevent other clients from simultaneously reading the object. Our goal is to experiment with a weaker consistency model that will allow unsynchronized access. We would like to avoid locks altogether for three reasons: (1) to eliminate the server state necessary to keep track of clients holding locks, (2) to allow disconnected operation in the future, and (3) to prevent denial of service because a client couldn't acquire a lock, or because a remote client couldn't release a lock.



Carmine F. Greco
Wed Mar 26 23:44:38 EST 1997