This document is the report for the authors’ joint eﬀort in researching and designing a query optimizer for fast’s next-generation search platform, known as MARS. This work was done during the pre-project to the master thesis at the Department of Computer and Information Science at the Norwegian University of Science and Technology, autumn 2008.MARS does not currently employ any form of query optimizer, but does have a parser and a runtime system. The report therefore focuses on the core query optimizing aspects, like plan generation and optimizer design. First, we give an introduction to query optimizers and selected problems. Then, we describe previous and ongoing eﬀorts regarding query optimizers, before shifting focus to our own design and results.MARS supports DAG-structured query plans, which means that the optimizer must do so too. This turned out to be a greater task than what it might seem like. The optimizer also needed to be extensible, including the ability to deal with query operators it does not know, as well as supporting arbitrary cost models.During the course of the project, we have laid out the design of an optimizer we believe satisfies these goals. DAGs are currently not fully supported, but the design can be extended to do so. Extensibility is solved by loose coupling between optimizer components. Rules are used to model operators, and the cost model is a separate, customizable component. We have also implemented a prototype that demonstrates that the design actually works.
Page rendered at Tuesday, July 28, 2015 4:26:21 AM (W. Europe Standard Time, UTC+01:00)
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in anyway.