NAME *Rsm.pm* -- record storage manager. DESCRIPTION Module implements data store for records representing individual objects. Apart from the indexing structures realizing oids and basic information form the object level, records are treated as arrays of bytes the structure of which is known at the object level realized by *Osm.pm*. The record storage manager is based on the Berkeley DB (1.x) storage system providing access to various database formats; *Rsm.pm* uses hash data files. Records are stored as oid/value pairs where the values are packed in the sequences of bytes. ARCHITECTURE Current version of the module provides a very simple record manager relying heavily on DB_File package. The module can be described thru the groups of routines serving as the interface to *Rsm.pm*. The first group of routines allows the manipulation of object identifiers. Free oids obtained by releasing the object from the database are stored in the list of free oids realized directly as key/value pairs. Object manager *Osm.pm* handles relationships between instances and class records (objects) in a similar manner as in early network and hierarchical database storage systems. Each class is realized as a list including all instances as well as the sub-class objects. The implementation of the relationships among class and instance objects follows the semantics of the object hierarchy (poset) comprising a database is described in []. The simple routines for storing and retrieving records (*rec_read*, *rec_write*) are provided. Next, the set of routines (*inx_create*, *inx_defined*, *inx_print*, *inx_drop*) are implemented to manipulate main-memory hash indexes based on a single class attribute. Finally, the set of procedures (*db_create*, *db_open*, *db_close*, *db_commit*, *db_clean*) for the manipulation of the database files are provided. NOTES The module *Rsm.pm* is planned to be (should be:) rewritten in a stand-alone file-based record storage system. The features planned: the custom object address space tuned for storing larger text records, efficient object packing which allows selective access to record components, and grouping of instance objects by their classes. COMMENTS This module is part of the *qios* programming environment.