Untitled-1

Back to the previous slide on to the next slide or up to the storage overview

Supporting these varied documents and the applications that will use them would be very difficult for a single storage system, especially given the changing requirements of new applications. To address this problem we propose a microstorage architecture that separates kernel aspects of the storage system from the storage server models that provide the different application program interfaces. This approach of providing multiple ``personalities'' for the storage system that are implemented on top of the single, thin kernel is similar to the microkernel approaches used in current operating systems.

The microkernel is responsible for moving data between memory and the disk, caching data operations, organizing the data on the disk, and a number of other issues that will be discussed later. It presents to the different storage servers a single, relatively simple model of storage. The storage servers are responsible for implementing different interfaces to storage. For instance, file systems and object oriented stores can be easily implemented as storage servers. Somewhat surprisingly perhaps, one could also implement the virtual memory system of operating system as separate storage server.

The client programs are then free to access as many or as few of the storage servers as desired. As new storage needs arise new storage servers can be implemented, experimented with and deployed without the need to remove or replace the existing storage servers. The new servers can co-exist with the old servers without compromising performance. In addition, using some of the techniques to be discussed, data that is managed by one storage server can also be made available to other servers. This allows continuous data, like sound and video, to be incorporated into ``textual'' files in a properly designed file system.

Richard Zippel