home · mobile · calendar · colloquia · 1997-1998 · 

Colloquium - Cherniack

Building Query Optimizers with Combinators
Brown University

Query optimizers generate plans to retrieve data requested by queries. This process typically is divided into two stages: a query rewriting (or algebraic optimization) stage that rewrites a posed query into an equivalent query that is more amenable to plan generation; and a plan generation stage that uses cost estimates to decide on a plan to retrieve the data specified by the rewritten query.

Query rewriting must be semantics-preserving (i.e., correct). But correctness is hard to ensure, even when rewrites are confined to queries over the relatively simple Relational Data Model. This was illustrated by the query rewrites proposed for nested (Relational) queries in [Kim82]. Despite being accompanied by "correctness proofs", these rewrites were later revealed to change the semantics of certain queries they transformed. With the advent of more complex data models, queries and hence query rewriting has become even more complex and error-prone.

In this talk, I will introduce a novel approach to expressing query rewrites that permits formal reasoning about their correctness. Unlike existing approaches which express rewrites fully or partially with programming language code, our approach enables the verification of query rewrites with a theorem prover. The key to our approach is a two-tiered language for expressing rewrites. The first tier (KOLA) is a language for representing queries that permits expression of basic rewrites using term rewriting rules. The second tier (COKO) is a language for controlling rule firing to support the expression of complex rewrites in terms of KOLA rules. I will also speak about ongoing work that explores semantic and dynamic optimization strategies for processing queries over object databases. The recurring theme of this work is that all of the proposed techniques are made possible by a combinator-based representation of queries.

Refreshments will be served immediately before the talk at 3:30pm.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)