Project Information
Overview
PREDATOR is an
object-relational database system. The goal has been to build a
research and educational vehicle that can handle real-life database
problems. At Cornell, our research focus has been on techniques for
the efficient support of complex data types (hence the name PRedator
Enhanced DAta Type Object-Relational DBMS). However,
in an effort to build a database system capable of handling realistic
applications, several other "standard" features of commercial OR-DBMS systems
have been implemented (or at least incorporated into the design).
The source code of PREDATOR
is freely available to the database research community, as are design
documentation and implementation notes. The system has been built on
top of the SHORE storage manager library from the University of Wisconsin
(also publicly available software). We hope that others in the community
will modify, improve upon and add to this system, so that we
develop a common freeware DBMS for research and education. To
facilitate such use, we have provided extensive documentation of
the system. There is also an online interactive tutorial that is
more useful than most user manuals.
Currently, two versions of the system are available to the research
community. The older Version 0.1 is a beta-release from August 1997 and
runs only on Sparc/Solaris. We expect to release Version in August 1998.
In order to facilitate research over the summer, we are making
a pre-release Version 0.95 available in June 1998. V0.95 contains
source code that runs on WindowsNT and Sparc/Solaris. There will be
no significant changes to the code (beyond bug fixes) before V1.0
is released.
While the development of the system is by no means complete,
rich functionality is already available. In its current
form, PREDATOR can
serve as a test-bed for research, as an educational tool, and as a
platform for application development.
Features of the V0.95 include:
- Client-server database system with transactional support
(including multi-statement transactions), multi-threaded server,
and support for large volumes. Many of these properties are
provided by our use of the SHORE storage manager.
- Standard relational query processing capability
through SQL queries (can run the Wisconsin benchmark and much more).
- Multiple join algorithms are supported, with the ability to add
new algorithms.
- Extensible implementations of query optimization techniques
like query rewrite and join ordering have been provided.
- A variety of cost-based optimizers have been built, and new
optimizers can be added.
- Extensibility with complex data types. The data types
can define methods and aggregates which can be used within
SQL queries. Several sample data types (image, audio,
document, polygon, point, raster, date, bytearray)
have been provided.
- Optimizations of queries involving complex data types --
this is the focus of our research activity. The system supports
Enhanced Abstract Data Types (E-ADTs) which expose optimization
semantics for methods.
- B+ tree and R* tree indexing (with the ability to add
new indexes) over simple and complex expressions.
- A variety of client libraries, including a Java library to
build Web-based client applets, and a C++ library for CGI-based
Web applications. Extensible client-side data types to match
server-side E-ADTs.
- Web-enabled delivery of multi-media data through extensible
streaming protocols.
- Query processing analysis tool showing query plans, and results
of query rewrite transformations.
- Builds on Sparc/Solaris using gcc2.7.2 (with 2.7.1 libraries).
Porting it to gcc2.8.0 should be straightforward.
- Builds on WindowsNT 4.0 using MS DevStudio 5.0. V0.95 uses
a buggy port of the Shore Storage Manager (we believe probable bugs to
be in the concurrency control, causing possible transaction errors).
We expect to fix these problems by V1.0.
We expect to release Version1.0 of PREDATOR
in August 1998. The release will augment V0.95 with:
- Release of executables-only version.
- Stable Shore port to WindowsNT.
- Any bug fixes from the current release.
- JDBC2.0 and ODBC3.0 drivers.
History
The origins of this system are in Praveen Seshadri's thesis work at
the University of Wisconsin with Raghu Ramakrisnan and Miron Livny.
The system acquired the name "PREDATOR" somewhere along the way after
the usual acronym hunt. In Fall 1996, Praveen moved to Cornell, and
since then, several students have participated in the project.
Meet the current group here.
In May 1997, the system was demonstrated at the SIGMOD 97 conference.
In August 1997, Version 0.1 was released. A conference management
system built on PREDATOR was used to run the SIGMOD'98 (Winter 1997)
and the VLDB'98 (spring 1998) reviews process. Version 0.95 is
released in June 1998.
MAIL:: User support: predator-support@cs.cornell.edu
Project information :
praveen@cs.cornell.edu