JUCS - Journal of Universal Computer Science 13(8): 1110-1135, doi: 10.3217/jucs-013-08-1110
On the Use of a Reflective Architecture to Augment Database Management Systems
expand article infoNuno Carvalho, Alfranio Correia Jr.§, José Pereira§, Luís Rodrigues|, Rui Oliveira§, Susana Guedes
‡ Universidade de Lisboa, Lisboa, Portugal§ Universidade do Minho, Portugal| Instituto Superior Técnico/INESC-ID, Portugal¶ Universidade de Lisboa, Portugal
Open Access
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.
databases, reflection, performance