Project Central

[ Query Processing | Query Optimization | New Data Types | Indexing | Data Mining | Data Warehousing | Heterogenous DBMS | Web-based Data | Client Extensions | Applications ]
PREDATOR is meant to be used in advanced classes as an educational tool. The design document and implementation notes make it possible for students to extend the system in incremental ways. Here are some suggested projects.

Query Processing

Modify reladt/compile, reladt/optimize and reladt/execute.
  1. New Join Algorithms: PREDATOR currently has sort-merge, tuple-nested-loops and a page-nested-loops algorithm. Add a hash-join algorithm. Also, improve the page-nested-loops algorithm to use an in-memory index. Compare the performance of the different algorithms.
  2. Temporal Join Algorithms: Modify the sort-merge join algorithm to implement various "temporal" joins.
  3. Aggregates: Implement hash-based aggregates and compare them with the sort-based aggregates already implemented.
  4. OLAP: Implement a CUBE operator using sorting or hashing.
  5. Sorting: Implement a fast sort that can be integrated with sort-merge joins for increased performance. This involves bypassing the SHORE sort routine.
  6. Views: Implement materialized views and function caching (as a special case of materialized views).
  7. Sampling: Implement sampling versions of all (or some subset of) the operators.

Query Optimization

  1. KBZ Join Ordering: Add a KBZ join optimizer for join queries.
  2. Randomized Join Ordering: Add a variety of randomized join optimizers.
  3. Enhanced Statistics: Implement advanced statistics collection (like serial histograms) and modify selectivity estimation to use them.
  4. :

New Data Types

  1. Build a new E-ADT : Take your pick of several possible data types.
  2. Feature extraction : PREDATOR already has some code for image feature extraction -- however, while all the mechanism is in place, the actual featur extraction code is not in the released codebase (it belongs to a different project). Use your own feature extraction code instead. Or try this with audio data.
  3. Multi-resolution storage : An initial implementation of multi-resolution storage is provided for image data. Implement a more generic version that can be applied uniformly across data types.
  4. Compressed/Encrypted storage : Build mechanisms that can be used to transparently store data in compressed or encrypted form.
  5. :

Indexing

  1. Feature Indexing: Explore options for indexing high-dimensional feature data.
  2. Generalized Indexing: Incorporate GiST trees as another indexing alternative.
  3. Specialized indexes: Build a specialized index for a particular data type (for example, signature file for documents)
  4. :

Data Mining

  1. Standard Mining Algorithms : Implement a set of data mining algorithms as part of a separate relational query language (in addition to SQL). PREDATOR allows multiple query languages, so simply add a data mining language.
  2. Integrated Mining: Add a specific mining algorithm within the SQL engine and explore possibilities for query optimization.

Data Warehousing

  1. Trigger Mechanism: Provide a basic trigger mechanism which can specify actions to be performed on updates.
  2. View Maintenance: Implement view maintenance algorithms either on top of the trigger mechanism, or standalone.
  3. :

Web-based Data

  1. Semi-Structured Data: Add support for "semi-structured" data using new data types.
  2. Web Search Engine: Build your own.Extend indexing to support inverted files on documents.
  3. Streaming Protocols: Integrate streaming protocols like RealAudio/RealVideo for multi-media playback.

Client Extensions

Extend the Java GUI with all the standard client-side extensions.
  1. Client-Side Caching: How much caching can you perform? What limits do browsers place on your memory size?
  2. Client-Specific Delivery: Work the client-side characteristics (like connection speed and browser capabilities) directly into server side query processing (for example, use lower resolution data).
  3. HTTP Server: Build a HTTP server on top of PREDATOR. HTTP is simply another language supported by a separate query processing engine.

Applications

Roll your own application, complete with transactions, queries, complex content, web-based clients and a Java GUI. Here are some sample apps we are building:
  1. Conference Management Software: Possibly even to handle submissions to SIGMOD 98.
  2. Digital Library: Images of rare art from national art galleries.
  3. GIS: Geographic data from the Sequoia benchmark.


Mail user support:
predator-support@cs.cornell.edu .... Back to PREDATOR Home Page