Patent attributes
A system for providing a tenant-aware database includes a relational database management system comprising a query engine, a transaction manager, a buffer manager, a recovery manager and a storage manager. The storage manager includes a tenant table, a tenant/user table, a tenant/object table, a multi-tenant table structure and multi-tenant index structure. The tenant table, the tenant/user table, the tenant/object table, the multi-tenant table structure and the multi-tenant index structure cooperate to provide a mechanism that has a single schema definition with multiple data instances for tables and their associated indexes, one for each tenant. The use of multi-tenant structures and associated components in the storage manager is advantageous because it provides: good isolation among tenant's data (each tenant's data can be stored in one or multiple storage areas independent of other tenants), simple schema updates as there is only one schema to update, easy maintenance that can be done for individuals tenant's data without affecting others, good performance and good scalability. The present invention also includes a variety of methods including: a method for reading or writing using the storage manager, a method for reading or writing using the multi-tenant table structure and the multi-tenant index structure, a method for determining the tenant of a user and a method for making multi-tenant schema changes.