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.