Object-Orientation FAQ

17 Exodus (Storage Man, perst)

What: Exodus project software (Storage Manager & GNU E)
From: zwilling@caseus.cs.wisc.edu (Mike Zwilling)
Date: 16 Jul 92 04:53:19 GMT
In the past there have been discussions in comp.object and comp.databases
about persistent storage for object-oriented databases and programming
languages.  As you may know, the EXODUS Database Toolkit project at the
University of Wisconsin has researched these issues and others for a number of
years.  The purpose of this note is to inform you that the software from the
EXODUS project is freely available via anonymous ftp.  The EXODUS software
includes the EXODUS Storage Manager and the compiler for the E persistent
programming language.  Also included is documentation, and a suite of test
programs for both components.  This note briefly describes the software and
explains how to obtain it.  We currently support DECstation 3100s/5000s and
SPARC based workstations.  Others have ported the code to HP700s and IBM
The EXODUS Storage Manager is a client-server object storage system which
provides "storage objects" for storing data, versions of objects, "files"
for grouping related storage objects, and indexes for supporting efficient
object access.  A storage object is an uninterpreted container of bytes which
can range in size from a few bytes to hundreds of megabytes.  The Storage
Manager provides routines to read, overwrite, and efficiently grow and shrink
objects.  In addition, the Storage Manager provides transactions, lock-based
concurrency control, and log-based recovery.
GNU E is a persistent, object-oriented programming language developed as part
of the Exodus project.  GNU E extends C++ with the notion of persistent data,
program level data objects that can be transparently used across multiple
executions of a program, or multiple programs, without explicit input and
output operations.
GNU E's form of persistence is based on extensions to the C++ type system to
distinguish potentially persistent data objects from objects that are always
memory resident.  An object is made persistent either by its declaration (via
a new "persistent" storage class qualifier) or by its method of allocation
(via persistent dynamic allocation using a special overloading of the new
operator).  The underlying object storage system is the Exodus storage manager,
which provides concurrency control and recovery in addition to storage for
persistent data.
The current release of GNU E is based on gcc/g++ version 2.2.2, and is upward
compatible with C++ as implemented by that compiler.
A bibliography of EXODUS related papers can be obtained from the ftp site
described below.
To obtain the software, simply ftp to ftp.cs.wisc.edu (, login
as anonymous with your email address as a password, "cd" to the "exodus"
directory, and follow the directions (directions will be given as you "cd").
See the README for the latest information about the software and an indication
of our future plans.  If you decide to use the software, please contact us at
exodus@cs.wisc.edu so that we can notify you of changes.

This document was translated by ms2html v1.8 on 01.06.95.