Tech Report CS-94-22
Storage Class Extensibility in the Brown Object Storage System
David E. Langworthy and Stanley B. Zdonik
New applications such as CAD, hypermedia, and programming environments stress existing database technology to the limit. Object-oriented databases (OODBs) were developed to meet the demands of these new domains. All OODBs use some distinct service that provides stable storage for objects or pages, referred to as object servers and page servers respectively. OODBs support new application domains with extensible type systems that allow new abstractions to be added easily. This causes problems whenever an OODB attempts to model a domain for which specialized secondary storage structures exist. Incorporating a new storage structure into an existing database implementation is a formidable task. Concurrency control, recovery and other modules would need to be changed in order to accommodate the new storage structure. It would be desirable to have an extensible object store that could accommodate new interfaces without causing major disruption to the existing system.
The Brown Object Storage System BOSS achieves extensibility by providing well defined interfaces to the designers of specialized storage structures. Through these interfaces the designer augments the structure with correct concurrent operation, fault tolerance and client-server distribution. BOSS aims to minimally constrain storage structure designers. To this end, BOSS is constructed from loosely coupled entities that cooperate asynchronously through well defined interfaces that communicate by message passing.