Talk to me if you want more information about any of the suggestions. I will add more suggestions, and also more references, soon. You are also free to choose your own project.
Suggestions (added 9/13/07):
- Model-based Views: Following up on the MauveDB paper, integrate time-series forecasting for predicting future events
into MauveDB system. One very nice application to drive this project is the following dataset available in real-time:
Speed Sensor Data
There is some recent work on this topic: S. Duan and S. Babu; Processing Forecasting Queries
- Model-based Views: Another problem in this domain (following up directly on the MauveDB paper): Given a collection of
regression-based view (see the paper), how to evaluate a large number of continuous queries on them. For example, you might have queries like:
"select temp from reg-view where x = 10 and y = 10 and temp ≥ 1000". Can you evaluate this predicate more efficiently than the dumb option, e.g., by converting it into a predicate on the actual observations (or can
you push it into the sensor network) ?
- Model-driven acquisition: Following up on the model-driven acquisition paper (link), lets say the "probabilistic model" is represented as a Bayesian network.
How do you evaluate queries more efficiently on such a model ? There might have been some work on this.
Other related papers: Top-k query processing using models/samples
- Probabilistic databases: This paper proposes a model to incorporate
correlations in probabilistic databases, whereas this paper evaluates top-k
queries in probabilistic databases assuming independence. Combine the two.
- Probabilistic databases: There are several other problems in this area that are very theoretical. Talk to me if you are interested
in pursuing that.
- Pattern matching in time-series/RFID data when there is missing data: Say we have a large ammount of RFID
events coming in real time and we need to find patterns over it. Thousands of such patterns have
been specified (as e1 --≥ e2 --≥ e3 .. --- the events don't have to be consecutive), and the system should output the pattern as soon as it
is recognized. The catch is trying to deal with missing events, presenting users with probabilistic patterns etc. So
if a single event is missing from a pattern chain, the user should be presented with the pattern, with
associated probability.
There is a lot of work on pattern matching in time serieses.
Another student worked on this last year and did some very interesting initial work; if you are interested in this, I can put
you in touch with him.
- Adaptive query processing: Many of the adaptive query processing techniques don't deal with memory very well. There
are many problems in this area.
For example: Take a technique like MJoin. Design techniques/algorithms to handle disks and adaptivity simultaneously. It is unclear
what the cost metric should be, but something like minimizing the average latency should work.
- Routing policies for eddies: Eddies is a adaptive query processing technique that uses "routing" to execute tuples. The
routing policies for eddies are not well-understood, and there are several problems in this area.
A concrete problem: Say eddies were being used with MJoins (see above). If we assume that the joins are independent of each other, then
it is known how to solve the problem. One idea is to monitor the correlations between the join attributes using a simple Bayesian network,
and then use that to do the routing.
A related paper: Pipelined Filter Ordering
- Parallelizing eddies/parallel query optimization over streams: There has very little work on parallel query processing
over streams. One of our recent papers talks about one problem in this domain.
There are interesting problems in extending such techniques to multiple queries, and to eddies. One related work:
Feng Tian, David J. DeWitt: Tuple Routing Strategies for Distributed Eddies. VLDB 2003: 333-344