Cloud computing is a technology that enables elastic, on-demand resource provisioning. Migrating applications to the cloud can increase their elasticity, allowing them to adapt to workload changes by dynamically allocating resources. In a multi-tenant application multiple client organizations, each referred to as tenants, make use of one or more shared application instances. These shared instances must however behave like a private instance by guaranteeing both data separation and performance isolation for every tenant. In order to achieve high scalability, a multi-tenant application running on the elastic cloud requires a flexible and scalable architecture for both the computational resources and the storage resources. In this paper we present and evaluate the design of a data management framework which can be used to extend existing multi-tenant cloud applications in order to achieve high scalability of the storage resources. We describe the most important components, and discuss important design choices. The framework invokes data allocation algorithms in order to find a feasible allocation of tenant data resulting in a minimal operating cost and a maximal performance, while taking no more than 10 ms to execute.
展开▼