Native Apps At The Client & Cloud

Srinivasan Sundara Rajan

Subscribe to Srinivasan Sundara Rajan: eMailAlertsEmail Alerts
Get Srinivasan Sundara Rajan: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Article

SaaS - Multi-Tenant Database Design Options

Making the best out of dynamic infrastructure with database design

Cloud Business Profitability & Infrastructure Efficiency
Your survival as a SaaS provider depends on how efficient is your software service with respect to resource utilization, so that you spend the least on your capital and operational expenditure  and you can transform your cost benefits to your customers resulting in more recognition for your products and service.

We have also seen that most of the IaaS pricing, that is the platform you host your applications  are charged per the usage, based on the  instance power and the amount of data transferred, for example let us  see the factors in the Amazon EC2 pricing :

Standard On-Demand Instances

Linux/UNIX Usage

Windows Usage

Small (Default)

$0.085 per hour

$0.12 per hour

Large

$0.34 per hour

$0.48 per hour

Extra Large

$0.68 per hour

$0.96 per hour

Again an instance is considered Small, Large , Extra Large based on the amount of memory and  CPU usage .

Standard On-Demand Instances

CPU

Memory

Small (Default)

1 EC2 Compute Unit

1.7 GB

Large

4 EC2 Compute Unit

7.5 GB

Extra Large

8 EC2 Compute Unit

15 GB

 

With Amazon Elastic Block Store, you only pay for what you use. Volume storage is charged by the amount you allocate until you release it, and is priced at a rate of $0.10 per allocated GB per month Amazon EBS also charges $0.10 per 1 million I/O requests you make to your volume.

So the heavier your application is, the higher the cost of cloud computing for your application, and the multi-tenant database design plays a vital part here.

Three Options for Multi-Tenant Database Design

  1. Separate Database: Each of the tenants  is allocated a separate physical database  for storing their data.
  2. Separate Schema: Each of the tenants  is allocated a separate logical unit called Schema, within a single physical database .
  3. Separate Rows: Each of the tenants  is allocated  same physical database and schema, but their information is separated using  primary keys which are allocated as part of the data base design and all the information is kept within the same physical tables.

The following diagram provides a quick snapshot of these three models. Diagram utilizes the IaaS model of Amazon AWS on which you can host your SaaS applications.

Attributes Influencing The Cloud Database Multi Tenant Design
As evident, these three models  will fit the needs of a cloud service provider; however, the following attributes needs to considered before choosing either one of the model.

Attribute

Separate Database

Separate Schema

Separate Rows

Tenants are large enterprise customers who could store large amounts of data in TB or 100s of GB

Good

Fair

Poor

Tenants are individual consumers  with low or moderate storage of data like a  social networking site

Poor

Fair

Good

Rapid provisioning is the key, risk of losing business exists  if the response is not quick, customers select the service on the fly

Fair

Fair

Good

Customers can opt out of  (Cancel ) service at a faster rate and  space reclamation is not a concern

Good

Good

Fair

Customer can opt out of (Cancel) service at a faster rate and space reclamation is a concern

Good

Good

Poor

The business logic of your SaaS application is highly customized with respect to the Tenant

Good

Good

Poor

Application is prone to database locks

Good

Fair

Poor

Security and Legal Requirements require data separation, even if the application controls it

Good

Fair

Poor

Performance tuning is a concern and reports performance should be based on the volume of data

Good

Fair

Poor

Administration and maintenance of Schema and  database code is a concern

Poor

Poor

Good

Scalability is a concern

Good

Fair

Poor

Frequent Changes to the Application Possible

Poor

Poor

Good

Data is mission critical and Point In Time Recovery is needed in case of a crash

Good

Fair

Poor

The list is not complete and there could be more attributes, however  these major attributes play an important role in determining the multi tenant database design for your SaaS application.

More Stories By Srinivasan Sundara Rajan

Highly passionate about utilizing Digital Technologies to enable next generation enterprise. Believes in enterprise transformation through the Natives (Cloud Native & Mobile Native).