The Shore Storage Manager (SSM) is a package of libraries for building object repository servers and their clients. The core library in the package, libsm.a, is a multi-threaded system managing persistent storage and caching of un-typed data and indexes. It provides disk and buffer management, transactions, concurrency control and recovery. A second library, libshorecommon.a, provides many common utilities need for implementing both client and servers. The third library, librpclib.a, is a slightly modified version (for use in a multi-threaded environment) of the Sun RPC package.
We use the term value-added-server (VAS) to refer to systems built with the SSM. A VAS relies on the SSM for the above capabilities and extends it to provide more functionality. One example of a VAS is the Shore server, which extends the SSM to provide typed objects with permissions and ownership and organizes storage as a tree structured name-space. The overall role of the SSM in Shore is further described in Shoring Up Persistent Applications.
This document provides an overview the SSM facilities and interface. Details of the programming interfaces are presented in a set of manual pages. Where each facility is discussed, references are made to the appropriate manual pages. The introductory sections for these manual pages are:
The tutorial, Writing Value-Added Servers with the Shore Storage Manager, complements this document by explaining how to use the SSM to build an example client-server system.
The rest of this document is organized as follows. The first six sections describe the basic facilities provided by the SSM. Each sections has pointers to manual pages with details on using the facility. The final section describes how to write and compile a VAS and its clients.
This document follows these notational conventions: