Performance Optimization of Multi-Tenant Software Systems

Cor-Paul Bezemer

Promotor: prof.dr. A. van Deursen (TUD)
Copromotor: dr. A.E. Zaidman (TUD)
Technische Universiteit Delft
Date: 14 April, 2014, 10:00


Multi-tenant software systems are Software-as-a-Service systems in which customers (or tenants) share the same resources. The key characteristics of multi-tenancy are hardware resource sharing, a high degree of configurability and a shared application and database instance. We can deduct from these characteristics that they lead to challenges compared to traditional software schemes. To better understand these challenges, we have come up with a reengineering pattern for transforming an existing single-tenant application into a multi-tenant one. We have done a case study in which we transform a single-tenant research prototype into a multi-tenant version. This case study showed that in a layered application, this transformation could be done in less than 100 lines of code.

With a better understanding of the challenges inflicted by multi-tenancy, we have focused on one of these challenges in this thesis, namely performance. Because tenants share resources in multi-tenant applications, it is necessary to optimize these applications on two levels: (1) at the hardware level and (2) at the software level. In this thesis, we present and evaluate methods to analyze and optimize the performance of multi-tenant software on those two levels.