Experience Using a Globally Shared State Abstraction to Support Distributed Applications

Sai Susarla, Anand Ranganathan, John Carter
The Khazana Project

Technical Report UUCS-98-016

August 1998

The Flux Research Group
Department of Computer Science
University of Utah
50 S. Central Campus Drive Rm. 3190
Salt Lake City, Utah 84112-9205


In this paper, we evaluate the effectiveness of basing distributed systems on a persistent globally shared address space abstraction, as implemented by Khazana. Khazana provides shared state management services to distributed application developers, including consistent caching, automated replication and migration of data, location management, access control, and (limited) fault tolerance. We report on our experience porting three applications to Khazana: a distributed file system (KFS), a distributed name service (KNS), and a cooperative drawing program based on xfig (KFIG). The basic Khazana abstraction of persistent shared memory made it easy to create fairly efficient distributed services with flat data abstractions (KFS and KNS), but our port of xfig made it clear that a higher level abstraction is preferable for applications with more structured state. As a result, we extended Khazana to support a limited set of object-like functions (reference swizzling, event upcalls, and update propagation). We present herein the current Khazana design and implementation, and discuss the lessons learned from our initial evaluation of it.

The full technical report is also available.