MINOS Persistency

The purpose of this site is to document work on the development of a persistency package for handling the storage and retrieval of MINOS data.

There is also a developing Package Rationale for this system, and a Persistency Class development site.

A new web site discusses issues related to the management of the input of records from multiple data streams.

Introduction

Persistence describes the process of making objects permanent beyond their present application for reuse by some later application (such as when an object is written to/read from a file).

The problem of persisting objects to file and retrieving objects back into memory is not trivial.

The solution to this problem is to supplement C++ with a framework (in our case ROOT) for use of its I/O facilities.

ROOT provides the following persistency tools:

The tools provided by ROOT will be used in the design of a MINOS persistency package. (Slides from a recent talk I gave at our local software meeting on object persistency in a ROOT environment can be found here .)

Objectives of the Persistency Package

The purpose of this package is to provide a set of tools to be used in managing the I/O of event data from user processes to persistent store. It must also provide a scheme for organizing the data in files and organizing the distribution of files so as to optimize the efficiency and flexibility of access to the event data.

Within these two subcategories, management and organization, the objectives can be itemized as follows:

Organization of Data Streams

Some preliminary ideas on the organizational breakdown of production data streams can be found here . This model is based on the BaBar framework data stream organization.

Models of Persistency in ROOT framework

Other HEP experiments are already using ROOT as the framework for their persistent data storage, and can be used as models for the design of a MINOS persistency package. Three such packages are:

Presentations

MINOS Persistency package talks have been given at the following meetings:

References

Some books on Object-oriented Database use and design:
[1] C++ Object Databases / David Jordan; Addison Wesley, 1998.
[2] Object data management : object-oriented and extended relational database systems / R.G.G. Cattell; Addison Wesley, 1991.
ROOT references:
[3] ROOT Home Page .
[4] Nick West's MINOS OO Companion .
[5] Fermilab's ROOT Persistency Chapter .
Sue Kasahara
Last Updated: March 20, 2001