Implementing an Interpreter for Functional Rules in a Query Optimizer

Query optimizers translate a high-level, user-submitted query into an efficient plan for executing that query, usually by estimating the execution cost of many different alternative plans. Existing implementations of these sophisticated but complex components of relational database management systems (DBMSS) typically embed the available strategies in the optimizer code, making them difficult to modify or enhance as improved strategies become available. In the last few years, interest in making DBMSs customizable for new application areas has magnified this need for flexible specification of execution strategies in a query optimizer. Several researchers have recently proposed query optimizers that are generated from rules for transforming plans into alternative plans. However, little progress has been reported on developing an implementation design that satisfies the requirements for high degrees of both flexibility and performance in an extensible query optimizer. This paper presents a design for implementing a query optimizer that interprets a new kind of compositional rules for specifying alternative execution strategies that are input to the optimizer as data. Modifications to these function-like rules do not necessitate re

[1]  Hamid Pirahesh,et al.  A data management extension architecture , 1987, SIGMOD '87.

[2]  John W. Backus From Function Level Semantics to Program Transformation and Optimization , 1985, TAPSOFT, Vol.1.

[3]  Dean Daniels,et al.  Query Processing in R* , 1985, Query Processing in Database Systems.

[4]  Hamid Pirahesh,et al.  Extensibility in the Starburst Database System , 1986, OODBS.

[5]  Guy M. Lohman,et al.  Optimizer Validation and Performance Evaluation for Distributed Queries , 1998 .

[6]  Carlo Zaniolo,et al.  Extensible Cost Models and Query Optimization in GENESIS , 1986, IEEE Database Eng. Bull..

[7]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[8]  Guy M. Lohman,et al.  Index scans using a finite LRU buffer: a validated I/O model , 1989, ACM Trans. Database Syst..

[9]  Johann-Christoph Freytag,et al.  A rule-based view of query optimization , 1987, SIGMOD '87.

[10]  Guy M. Lohman,et al.  Grammar-like functional rules for representing query optimization alternatives , 1988, SIGMOD '88.

[11]  David J. DeWitt,et al.  Architecture of the EXODUS extensible DBMS: a preliminary report , 1986 .

[12]  Hans-Jörg Schek,et al.  Architecture and implementation of the Darmstadt database kernel system , 1987, SIGMOD '87.

[13]  Paul Helman,et al.  Understanding and Extending Transformation-Based Optimizers. , 1986 .

[14]  Patricia G. Selinger,et al.  Access path selection in a relational database management system , 1979, SIGMOD '79.

[15]  David J. DeWitt,et al.  The EXODUS optimizer generator , 1987, SIGMOD '87.

[16]  Don S. Batory A Molecular Database Systems Technology , 1987 .

[17]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.