Novel hardware technologies and application requirements have recently triggered a flurry of research and development into new data management systems. These systems challenge the hegemony of ossified, legacy database systems which lack the agility to adapt to these new constraints. But features pioneered by legacy systems (e.g., declarative query processing) are still desirable, and therefore, much work is being devoted to designing components that provide these features in new systems.
The goal of this project is to support research and development of (query) optimizers in data management systems. Optimizers, which translate declarative descriptions of data (queries) into executable plans, are inherently complex but nonetheless, there are no software engineering tools dedicated to their development. Therefore this project aims to design and build DEVEL-OP: a dedicated DEVELopment Environment for OPtimizers consisting of the following suites of tools:
1) Component Generators, which use declarative specifications of components to produce executable code. Developers can use generators to rapidly prototype alternative versions of components encompassing different optimization approaches,
2) Profiling Tools, which help developers identify bugs or performance bottlenecks in generated components, and
3) Component Benchmarks, which enable the evaluation of optimization approaches (as manifested in generated components) in terms of their effectiveness and robustness in contributing to optimization as a whole.
DEVEL-OP provides a sandbox where optimizers can be quickly prototyped, refined and compared with minimal effort. Therefore, its impact will be in applying software engineering methodologies to the inherently difficult and complex development process for this key component of data management systems.