This set of articles was first published on my Sybase blog in 2009. Since that time, this 5 part series has been one of the most requested set of articles. As part of Sybase's integration with SAP, I am republishing them on the SAP SCN, and taking the opportunity to update them.
In Part 1, I outlined the various factors that must be considered when choosing a multi-tenant architecture. In this post I’ll examine the “Separate server” and “Shared server, separate database server process” architectures, and highlight the factors mentioned previously. Remember, there is no “one-size-fits-all” approach to implementing a multi-tenant database, only trade-offs.
Separate Server
The separate server architecture is at the extreme end of the spectrum of isolation. Each customer / tenant has a hosted server machine that only serves their database. This architecture may be appropriate for some customers who require a very high degree of isolation, have very large databases, a large number of users, or who have very specific performance requirements.
Shared Server, Separate Database Server Process
This architecture is similar to the separate server model in that each tenant has their own database. Several tenants share a single server machine, each with their own server process. This approach reduces the hardware costs for the hosting company, while still maintaining many of the isolation benefits.
Another operational factor comes into play with this model, and that is Migration of Tenants. With each tenant having a separate database, it is very easy to migrate tenants who require improved performance or isolation to their own machine with minimal effort.
The problem with this architecture arises because each tenant has their own database server process. These servers cannot share resources such as database cache effectively between tenants. While this allows improved predictability for each tenant, it does mean that a given server machine may not be fully utilized when one tenant could take advantage of unused space being held by another tenant’s server process.
This architecture also describes a typical virtualization environment. The resources on a given server machine are subdivided for each tenant. Each tenant has their own server process and database. Each virtualized operating environment reserving its own memory and disk resources, and is unable to share unused resources with other virtualized environments.
This Shared Server, Separate Database Server process model can be easily demonstrated with SQL Anywhere.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
26 | |
24 | |
21 | |
13 | |
9 | |
9 | |
9 | |
9 | |
8 | |
8 |