Is Oracle the First Multi-tenant Database for the Cloud?
The recent release of Oracle 12c has caused a lot of discussion around its marquee feature, pluggable databases. When this feature was first announced back in October 2012, it was presented as the “first multi-tenant database designed for the cloud.” Soon after, analyst group IDC published an overview and reaction to the announcement. In that paper, hosted on www.oracle.com, IDC analyst Carl Olofson wrote,
There is some controversy to these announcements … In his keynote, Larry Ellison represented Oracle Database 12c as the “first multitenant database.” One must note that SAP announced SAP Sybase SQL Anywhere cloud edition with multitenancy features over a year ago.
(The product that Olofson was referring to, released as SAP Sybase SQL Anywhere, on-demand edition, was announced in October 2011, and released in July 2012.)
Olofson went on to note that, “… since there is no standard definition of multitenancy in a database context, this area remains subject to debate.” No argument from me here. The term multi-tenancy is overloaded. In order to examine the veracity of Oracle’s claim, it is first necessary to understand how Oracle defines it, and how similar the features are to SQL Anywhere, on-demand edition.
The remainder of this article will examine that claim based on the features described in the Oracle Multitenant Datasheet. In an earlier draft of this blog post, I simply reproduced the full body of that data sheet, replacing all instance of “Oracle Multitenant” to “SQL Anywhere, on-demand”. However, over concerns of violation of fair use, I have decided to go another route (That said, I invite anyone familiar with SQL Anywhere, on-demand edition to read the Oracle datasheet, making the mental replacements, to see for yourself how surprisingly sensibly it reads).
Instead, I will describe the features of SQL Anywhere, on-demand edition under the same topic areas, and leave the comparison to Oracle 12c features as an exercise for the reader.
Designed for the Cloud
SQL Anywhere, on-demand edition is a cloud-designed database that allows a logical database server to be spread across multiple server machines that can be elastically scaled on-demand. Multiple isolated, individual tenant databases are plugged into individual servers that, together, make up the cloud database server. Applications connect directly to their specific tenant database, and are oblivious to all other tenant databases on that same server. This allows many separate SQL Anywhere databases to be consolidated onto a single database server (or group of servers) without comprising security or requiring application changes. This is especially useful for ISVs when creating software-as-a-service applications because it allows them to use a provable data security model, while still consolidating resources.
For many years, customers have been using virtualization technology to achieve database consolidation. This leads to wasted resources because the operating system and server process are duplicated for each instance. With SQL Anywhere, on-demand edition, a single server process (including memory management and background processes) are shared between many tenant databases on each machine. Because of the isolated tenant database model, this allows for a greater utilization of computing resources, while not compromising the security between tenant databases.
Rapid Provisioning and Cloning
SQL Anywhere, on-demand edition provides feature for the rapid provisioning for both new servers, and new databases. When more computing power is needed, a new machine and server process can be added into the database server cloud within minutes. Existing live databases can be migrated to the new server with only seconds of downtime. Plugging-in a new tenant database is as simple as adding an existing SQL Anywhere database from a customer, adding a new blank database, or cloning an existing database. Cloning of existing databases can be especially useful when a copy of a production database is needed for additional testing. A clone can quickly be made to a dedicated test server or unplugged from the cloud altogether and run on a stand-alone SQL Anywhere server.
Faster Upgrades and Patches
Software upgrades and patches can be applied as simultaneous, bulk operations across many databases spanning multiple servers. These bulk operations support fine-grained controls to allow an administrator to only upgrade a select number of databases in order to slowly roll-out an upgrade. When upgrading to whole new server versions, administrators can simply start up servers with the latest software and selectively move tenant databases onto the new servers.
Managing Many Databases as One
Although a SQL Anywhere, on-demand edition cloud may have thousands of tenant databases spanning multiple machines, the system can be managed as though it was one database. In addition to the bulk operations already described, additional operations such as bulk backup and recovery, and ad-hoc SQL execution give administrators unprecedented management power. Although management can be performed to many databases through bulk operations, administrators still have the power to treat databases individually. For example, databases may be backed up in bulk, but restored individually. Similarly, high availability may be setup for all tenant databases on a given server, but each database may be targeting a different mirror server. This fine-grained control allows for optimal resource utilization.
Plug into the Cloud
Plugging existing SQL Anywhere databases into a SQL Anywhere, on-demand edition cloud is easy. No upgrade process is required; the databases are identical. Similarly, at any time a database can be unplugged from SQL Anywhere, on-demand edition and started on a stand-alone SQL Anywhere server. All administration in the cloud can be managed using the Cloud Console tooling. Also, since the databases are regular SQL Anywhere databases, all existing tools (SAP Sybase Central, Application Profiling, SQL Anywhere Monitor) are fully compatible with SQL Anywhere.
Although as Olofson noted, there is a lot of confusion in the term multi-tenancy in a database and cloud context, it seems that Oracle’s usage here is identical to SQL Anywhere’s. Given that, I have to agree with Olofson that there is controversy in Oracle’s claim of 12c as the “first multi-tenant database designed for the cloud.”
It seems rumours of Oracle’s antecedence in multi-tenant cloud databases have been greatly exaggerated.