MIME-Version: 1.0 Server: CERN/3.0 Date: Sunday, 24-Nov-96 22:06:29 GMT Content-Type: text/html Content-Length: 4398 Last-Modified: Thursday, 17-Oct-96 18:38:57 GMT The PREDATOR Project

The PREDATOR DBMS Project


Contents


What is PREDATOR?

The PREDATOR database system (PRedator Enhanced DAta Type Object-Relational DBMS) is an object-relational DBMS built as a research prototype to study how complex data types should be supported. Existing technology is based on the notion of Abstract Data Types (ADTs): each data type is encapsulated through a well known interface, and the database system maintains an extensible table of ADTs. Each ADT provides a bunch of user-level methods that can be applied from within an SQL query to operate on ADT values. The PREDATOR system recognizes that the cost of ADT operations can dominate database performance. Consequently, the ADT notion is "enhanced" so that each data type can maintain meta-information, use that meta-information for optimizing operations on the ADT, and apply optimizations on expressions involving concatenations of ADT operations. Further, each data type can provide a "query language" in which complex operations on that type can be expressed. This Enhanced Abstract Data Type (E-ADT) paradigm is the basic technology in PREDATOR. Providing the support for this paradigm requires a fundamental redesign of many components of a traditional object-relational DBMS. The purpose of PREDATOR is to fully explore the E-ADT idea, and to see how queries involving complex object expressions can be further optimized by exploiting interactions between E-ADTs. The current focus of work is to build support for several different data types, each of which can co-exist independent of the others.

The E-ADT paradigm

The E-ADT paradigm is explained in detail in a technical report, also being submitted as a paper to ACM SIGMOD 97. This document also describes the high-level architecture of PREDATOR, the interesting design issues, possible extensions of the current technology, and open problems for future research.

System code structure

The detailed code design is described here. This may not always be upto date, because the code base is constantly being updated. For most students in CS537, you will only need to concentrate on the portion of the design document dealing with the SQL engine, and/or the portion dealing with new data types.

Installation instructions

These instructions are only for Cornell CS537 students. For others, PREDATOR is not yet a publicly available piece of software, but it will be in a few months. Here are the installation instructions and some quick tests you can run.

System Development

Look here for some tips on system development in PREDATOR.

Coding conventions

When adding to PREDATOR, it is crucial that you follow the same coding conventions that have been used relatively uniformly throughout the code. Click here to get to a list of dos and don'ts. The document also tells you how to use RCS, a simple source code control mechanism used to manage the distribution of PREDATOR code.

Testing

Initially, after installing your code, you should try some quick tests . On a more regular basis, as you add code, you should run a test suite that is being developed for PREDATOR. Details of this test suite and how to run it are here .

Acknowledgements

PREDATOR is built using the SHORE storage manager as the data repository.