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.