Hosting providers, SaaS vendors, and Enterprises are all looking for multi-tenant capabilities for the ability to share database and hardware resources amongst a number of 3rd party and/or in-house developed database applications.
Applications requiring multi-tenancy support are rapidly increasing. Hosting providers and large enterprises have thousands of databases that demand efficient management and deployment. The proliferation of SaaS applications further exacerbates this need for efficient and secure multi-tenant database solutions.
NuoDB is a multi-tenant database. That’s a cloud buzzword, but essentially it means that with a single install of NuoDB you can run any number of distinct databases serving distinct tenants. For example, NuoDB has demonstrated its ability to run 72,000 database instances of its cloud database on a fully loaded Moonshot system with 45 cartridges.
Each NuoDB database maintains its own physically separate archives and runs with its own set of security credentials. To make this model usable and useful, NuoDB provides a management tier that supports a simple (and scriptable) notion of administration. The management tier in NuoDB that supports scale-out also supports running multiple databases on a single host, or across shared hosts. Because a database is simply a collection of processes, multi-tenant deployments can be accomplished by running separate processes for separate databases on the same host. Unlike traditional approaches that share the same database instance in multi-tenant scenarios, NuoDB databases have process-level isolation, use different credentials to establish separate, secure channels and store their durable archives in physically separate locations.
Key Features of NuoDB Multi-Tenancy:
- Each database has its own set of database processes
- Machine hosts can be shared between databases
- Run and manage multiple databases within a NuoDB administrative domain
- On-demand resource management through database hibernation and waking
- Ability to administer and monitor multiple databases through a single, centralized Web UI
Part of the advantage to running a multi-tenant deployment as separate databases is better efficiency. For instance, many applications were not written to support deployment against shared databases, so this multi-tenant model enables consolidation from separate database deployments down to one or a small number of hosts. It’s also common that some databases will be active while others are idle. In this case, it makes sense to assign the system resources on the databases that need them.
Because database processes can be started so quickly (in milliseconds) in NuoDB, when a given database is inactive its processes can be shut down completely and re-started on-demand as needed. This capability is called database hibernation. Hibernation supports deployments where very large numbers of databases need to be available but only a subset of these databases are active at any moment in time. This functionality has been shown to support tens of thousands of databases under real-world load on small quantities of inexpensive hardware.
Multi-tenancy is an exercise in isolation, meaning it’s an exercise in security, which is of the highest importance for cloud deployments. In addition to supporting the traditional multi-tenant model, NuoDB supports a model that delivers true isolation in terms of process management and resource management. When multi-tenancy is in the database layer – and not written into the application – it is an automatic security feature. For example, a SaaS provider running a commercial application on a multi-tenant database could assure customers that, even though they’re handling multiple different users’ data, they’re not comingled.
NuoDB’s Automation Console makes the management of multi-tenant deployments easy. You can provision, manage and monitor multiple applications from a single, browser-based user interface. NuoDB templates define a declarative language that capture a Service Level Agreement (SLA). Using templates, you can define SLAs for each and every database in your multi-tenant deployment. Add this all up and it means that NuoDB can be run as a service managing not just your database but also your applications – an invaluable feature for hosting providers, as it gives them the ability to host and manage more databases with far fewer resources.