Tenant-aware database for software as a service

US9898549B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9898549-B1
Application numberUS-201514737407-A
CountryUS
Kind codeB1
Filing dateJun 11, 2015
Priority dateMay 8, 2007
Publication dateFeb 20, 2018
Grant dateFeb 20, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A storage system comprising: one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the system to: receive a command and data associated with a first tenant; access a tenant table having a tenant name and a tenant identification number for a plurality of tenants including a tenant name and tenant identification number for a first tenant and a tenant name and tenant identification for a second tenant to retrieve a first identification for the first tenant; and map, using a multi-tenant structure, a logical data structure identifier to one or more physical location identifiers associated with one or more physical locations in a relational database associated with a first data instance and the data associated with the received command, the one or more physical locations independent of a logical schema, the relational database having a logical schema definition shared by the first tenant and the second tenant, the first data instance associated with the first tenant and a second data instance associated with the second tenant; and receive a schema change, determine a set of affected tenants using the multi-tenant structure and implement the schema change to the set of affected tenants. 2. The storage system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the system to map, using the multi-tenant structure, one from the group of table data and index data. 3. The storage system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the system to map, using the multi-tenant structure, table data and to map, using a second multi-tenant structure, a logical name to a physical location in the database, the second multi-tenant structure mapping index data. 4. The storage system of claim 1 , wherein the tenant table stores at least one sequence generator for at least one tenant. 5. The storage system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the system to associate the first tenant with one or more sequence generator values and wherein the tenant table stores one or more of a starting page and a starting block for the first tenant's one or more sequence generator values. 6. The storage system of claim 1 comprising a tenant/user table for specifying which users are associated with which tenants, the tenant/user table including a user name, a user identification number and a tenant identification number, for at least one of the plurality of tenants. 7. The storage system of claim 6 , wherein the storage system uses a user name and a tenant name as a unique index to the data. 8. The storage system of claim 1 comprising a tenant/object table for storing information about a storage object associated with one of the plurality of tenants. 9. The storage system of claim 8 , wherein the tenant/object table include a tenant identification number, an object number, and a storage object identification number for a plurality of tenant objects. 10. The storage system of claim 1 , comprising a storage object table for mapping between a tenant object and a physical storage location. 11. The storage system of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the system to map from the schema's identifying numbers (e.g. index number) to physical storage identifiers using the storage object table. 12. The storage system of claim 1 , wherein the multi-tenant structure includes a multi-tenant table having a single schema and multiple independent instances corresponding to the multiple tenants. 13. The storage system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause the system to a select an instance for a particular tenant based on received authentication information using the multi-tenant structure. 14. The storage system of claim 1 including a non-multi-tenant table associated with a particular tenant and unshared with other tenants. 15. The storage system of claim 1 , wherein the schema change is implemented on a tenant basis. 16. The storage system of claim 1 , wherein the schema change includes one or more of a change of table, a deletion of a table and an addition of a table. 17. The storage system of claim 1 , wherein the schema change includes one or more of a change of index, a deletion of an index and an addition of an index. 18. The storage system of claim 1 , wherein the storage system uses the multi-tenant structure to control utilization of one or more resources by the plurality of tenants on a per tenant basis. 19. The storage system of claim 18 , wherein the one or more resources includes at least one of a number of buffers, percentage of buffer space, priority for buffer space, priority for central processing unit (CPU) time and percentage of total CPU time. 20. The storage system of claim 1 , wherein the instructions, when executed by the one or more processors, determine one or more tenants affected by a schema change by using a tenant object of the multi-tenant structure and a table identified in the schema change and modify a table or index for the one or more affected tenants.

Assignees

Inventors

Classifications

  • G06F16/86Primary

    Mapping to a database · CPC title

  • the resource being the memory · CPC title

  • Indexing; Web crawling techniques · CPC title

  • with details for schema evolution support · CPC title

  • Indexing; Data structures therefor; Storage structures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9898549B1 cover?
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 tab…
Who is the assignee on this patent?
Progress Software Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/86. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 20 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).