On the Use of a Reflective Architecture to Augment Database Management Systems

N. Carvalho, A. Correia Jr., J. Pereira, L. Rodrigues, R. Oliveira, S. Guedes.

Journal of Universal Computer Science, Vol 13, Nb. 8, pp 1110-1135.


The Database Management System (DBMS) used to be a commodity software component, with well known standard interfaces and semantics. However, the performance and reliability expectations being placed on DBMSs have increased the demand for a variety add-ons, that augment the functionality of the database in a wide range of deployment scenarios, offering support for features such as clustering, replication, and self-management, among others. A well known software engineering approach to systems with such requirements is reflection. Unfortunately, standard reflective interfaces in DBMSs are very limited. Some of these limitations may be circumvented by implementing reflective features as a wrapper to the DBMS server. Unfortunately, these solutions comes at the expense of a large development effort and significant performance penalty.

In this paper we propose a general purpose DBMS reflection architecture and interface, that supports multiple extensions while, at the same time, admitting efficient implementations. We illustrate the usefulness of our proposal with concrete examples, and evaluate its cost and performance under different implementation strategies.

Luís Rodrigues