We project that if each workstation had 320 MB of main memory, we could sort 3.1 GB in one minute on only 14 workstations. This archaic approach is frustrating to users, and has been abandoned in most other areas of computing. The goal of this project is to support online aggregation in a database system, in which users can both observe the progress of their aggregation queries and control execution on the fly. We outline the usability and performance requirements for a system supporting online aggregation, and present a suite of techniques that extend a database system to meet these requirements. Figure 1 is a sample online aggregation user interface, which shows the progression of a query that calculates average GPAs grouped by majors.
Users can observe the results as the query is being processed.
User control includes stopping a group, speeding up or slowing down a group, and adjusting the skip factor that controls the frequency at which the client is sent updated information. Also, statistical confidence interval is produced for the running aggregate, which is an important feature of our user interface. Initial results from our experiments serve as evidence that online aggregation yields more functionality and better performance than would be available in a naive solution. The research community has already developed a number of index structures for many kinds of non-traditional datatypes. Unfortunately, almost none of these are available in today's database systems.