J. Filipe and J. Cordeiro (Eds.): ICEIS 2009, LNBIP 24, pp. 3–13, 2009.
© Springer-Verlag Berlin Heidelberg 2009
MIDAS: A Middleware for Information Systems with
QoS Concerns*
Luís Fernando Orleans and Geraldo Zimbrão
COPPE/UFRJ - Computer Science Department - Graduate School and
Research in Engineering – Federal University of Rio de Janeiro
{lforleans,zimbrao}@cos.ufrj.br
Abstract. One of the most difficult tasks in the design of information systems is
how to control the behaviour of the back-end storage engine, usually a relational
database. As the load on the database increases, the longer issued transactions
will take to execute, mainly because the presence of a high number of locks
required to provide isolation and concurrency. In this paper we present MIDAS,
a middleware designed to manage the behaviour of database servers, focusing
primarily on guaranteeing transaction execution within an specified amount of
time (deadline). MIDAS was developed for Java applications that connects to
storage engines through JDBC. It provides a transparent QoS layer and can be
adopted with very few code modifications. All transactions issued by the
application are captured, forcing them to pass through an Admission Control
(AC) mechanism. To accomplish such QoS constraints, we propose a novel AC
strategy, called 2-Phase Admission Control (2PAC), that minimizes the amount
of transactions that exceed the established maximum time by accepting only
those transactions that are not expected to miss their deadlines. We also
implemented an enhancement over 2PAC, called diffserv – which gives priority
to small transactions and can adopted when their occurrences are not often.
Keywords: Database Performance, QoS for Databases, Transactions with
deadlines, Midas.
1 Introduction
Information systems are usually designed with a multi-tier architecture, each tier
being responsible for a specific function. Commonly, there are at least 3 tiers,
comprising presentation, application and persistence logics (see figure 1). In a web
information system, for instance, the first tier contains web pages (static or dynamic)
that are displayed to clients. The second comprises business rules and constraints,
validating and/or processing users data input. Finally, the database is responsible for
storage and retrieval of such data.
Although all tiers present potential performance bottlenecks, the database layer is
commonly the most problematic, being responsible for performance degradation in
peak situations. Intuitively, this can be explained by the high number of disk accesses
*
This work was partially financed by CNPq – Brazil.