Review

Query optimizer development is generally considered a complex and time-consuming process, something not undertaken often. A consequence of this fact is that enhancing an existing query optimizer with, for example, new search strategies and cost estimation techniques, is often intractable.

To alleviate this problem, much research has been done in developing optimizer toolkits (such as EXODUS, Volcano, Cascades, OPT++). These toolkits spare the implementor the relatively complex task of writing a search engine (sometimes allowing the implementor a choice between search strategies as well), and allow for some degree of extensibility in adding new transformation rules (allowing the optimizer to explore a larger search space to identify a good plan).

The interesting observation made by McKenna et al. in this paper is that a variety of carefully defined and implemented abstractions (besides the search engine) should be reusable, and hence should be part of an optimizer generator toolkit. The key insights are that:

After reading this paper, I certainly obtained a better understanding of the complexity involved in developing extensible query optimizers, and I would recommend this paper to anyone who wishes to gain a deep understanding of this subject.

[Full Disclosure: The first author is a former colleague. However, this has not affected my views of the paper.]


a service of  Schloss Dagstuhl - Leibniz Center for Informatics