Computer Laboratory

Technical reports

A modular and extensible network storage architecture

Sai-Lai Lo

January 1994, 147 pages

This technical report is based on a dissertation submitted November 1993 by the author for the degree of Doctor of Philosophy to the University of Cambridge, Darwin College.


Most contemporary distributed file systems are not designed to be extensible. This work asserts that the lack of extensibility is a problem because:

– New data types, such as continuous-medium data and structured data, are significantly different from conventional unstructured data, such as text and binary, that contemporary distributed file systems are built to support.

– Value-adding clients can provide functional enhancements, such as convenient and reliable persistent programming and automatic and transparent file indexing, but cannot be integrated smoothly with contemporary distributed file systems.

– New media technologies, such as the optical jukebox and RAID disk, can extend the scale and performance of a storage service but contemporary distributed file systems do not have a clear framework to incorporate these new technologies and to provide the necessary user level transparency.

Motivated by these observations, the new network storage architecture (MSSA) presented in this dissertation, is designed to be extensible. Design modularity is taken as the key to achieve service extensibility. This dissertation examines a number of issues related to the design of the architecture. New ideas, such as a flexible access control mechanism based on temporary capabilities, a low level storage substrate that uses non-volatile memory to provide atomic update semantics at high performance, a concept of sessions to differentiate performance requirements of different data types, are introduced. Prototype implementations of the key components are evaluated.

Full text

PS (0.3 MB)

BibTeX record

  author =	 {Lo, Sai-Lai},
  title = 	 {{A modular and extensible network storage architecture}},
  year = 	 1994,
  month = 	 jan,
  url = 	 {},
  institution =  {University of Cambridge, Computer Laboratory},
  number = 	 {UCAM-CL-TR-326}