IP Library Granted Patent US 12,066,998
Granted Patent B2
US 12,066,998 · App. 17/457,247 · Granted Aug 20, 2024

Online updates to schema information in multi-tenant database system

Inventors: Helen Kwong (Palo Alto, CA); Benjamin Busjaeger (San Carlos, CA)
Assignee: Salesforce, Inc.
G06F16/2379G06F16/211G06F16/2358G06F16/256
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,066,998
App. No.
17/457,247
Granted
Aug 20, 2024
Kind
B2
Abstract

Techniques are disclosed relating to updating schema information for multi-tenant databases. In some embodiments, a multi-tenant database system stores a standard schema for a database object, where the standard schema is shared by multiple tenants and a tenant-specific schema for the database object. The tenant-specific schema may include one or more tenant-specific custom elements for the database object. The system may enforce a naming scheme in which tenant-specific elements include a predetermined pattern that is not included in object elements of the standard schema. The system may, in response to detecting an update of the standard schema, automatically propagate the update to the tenant schema, while the tenant is online.

Claims (74)

1. A method, comprising:

storing, by a multi-tenant database system, a standard schema for a database object, wherein the standard schema is shared by multiple tenants;

storing, by the multi-tenant database system, a tenant-specific schema for the database object, wherein the tenant-specific schema includes one or more tenant-specific custom elements for the database object; and

checking, by the multi-tenant database system, tenant-specific custom elements for a predetermined pattern to enforce a naming scheme;

automatically adding, by the multi-tenant database system, the predetermined pattern in response to the check determining that a tenant-specific custom element does not include the predetermined pattern, wherein the predetermined pattern is not included in object elements of the standard schema;

detecting, by the multi-tenant database system, an update of the standard schema; and

in response to the detecting, the multi-tenant database system automatically propagating the update to the tenant-specific schema, while the database remains available to accept tenant queries of a tenant corresponding to the tenant-specific schema, without taking the database offline for the update.

2. The method of claim 1 , wherein the multi-tenant database system stores data for a tenant according to both the standard schema and the tenant-specific schema for the database object in a non-relational underlying storage format.

3. The method of claim 2 , further comprising:

processing change records from a change stream for the non-relational underlying storage format, wherein the detecting the update of the standard schema and the automatic propagation are based on a change record for the update in the change stream.

4. The method of claim 1 , wherein the standard schema is stored using a top-level scope and the tenant-specific schema is stored in a tenant namespace scope.

5. The method of claim 4 , further comprising:

creating, by the multi-tenant database system, the tenant namespace scope and the top-level scope;

configuring, by the multi-tenant database system, multitenancy settings for the top-level scope based on one or more commands received via a provisioning application programming interface (API);

updating, by the multi-tenant database system, the tenant-specific schema based on one or more commands received via a metadata API; and

updating, by the multi-tenant database system, a database object that conforms with the tenant-specific schema based on one or more commands received via a data API.

6. The method of claim 1 , further comprising maintaining state information for the standard schema that supports at least the following states:

a creating state;

an active state;

an updating state; and

one or more states in which at least a portion of the standard schema is being propagated to multiple tenants.

7. The method of claim 6 , further comprising maintaining state information for the tenant-specific schema that supports at least the following states:

a creating state;

an active state; and

an updating state.

8. The method of claim 1 , wherein the storing the tenant-specific schema includes storing, for different tenants, multiple different tenant-specific schemas associated with the standard schema.

9. The method of claim 1 , further comprising:

in response to creation of a tenant-defined database object, automatically storing a tenant-specific schema for the tenant-defined database object.

10. A non-transitory computer-readable medium having computer instructions stored thereon that, when executed by a multi-tenant database system, cause operations comprising:

storing a standard schema for a database object, wherein the standard schema is shared by multiple tenants;

storing a tenant-specific schema for the database object, wherein the tenant-specific schema includes one or more tenant-specific custom elements for the database object; and

checking tenant-specific custom elements for a predetermined pattern to enforce a naming scheme;

automatically adding the predetermined pattern in response to the check determining that a tenant-specific custom element does not include a predetermined pattern, wherein the predetermined pattern is not included in object elements of the standard schema;

detecting an update of the standard schema; and

in response to the detecting, automatically propagating the update to the tenant-specific schema, while the database remains available to accept tenant queries of a tenant corresponding to the tenant-specific schema, without taking the database offline for the update.

11. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

storing data for a tenant according to both the standard schema and the tenant-specific schema for the database object in a non-relational underlying storage format.

12. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

asynchronously processing change records from a change stream, wherein the detecting the update of the standard schema and automatic propagation is based on a change record for the update in the change stream.

13. The non-transitory computer-readable medium of claim 10 , wherein the standard schema is stored using a top-level scope and the tenant-specific schema is stored in a tenant namespace scope, the operations further comprising:

creating the tenant namespace scope and the top-level scope;

configuring multitenancy settings for the top-level scope based on one or more commands received via a provisioning application programming interface (API);

updating the tenant-specific schema based on one or more commands received via a metadata API; and

updating a database object that conforms with the tenant-specific schema based on one or more commands received via a data API.

14. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

maintaining state information for the standard schema that supports at least the following states:

a creating state;

an active state;

an updating state; and

one or more states in which at least a portion of the standard schema is being propagated to multiple tenants; and

maintaining state information for the tenant-specific schema that supports at least the following states:

a creating state;

an active state; and

an updating state.

15. The non-transitory computer-readable medium of claim 10 , wherein the storing the tenant-specific schema includes storing, for different tenants, multiple different tenant-specific schemas associated with the standard schema.

16. The non-transitory computer-readable medium of claim 10 , wherein the operations further comprise:

in response to creation of a tenant-defined database object, automatically storing a tenant-specific schema for the tenant-defined database object.

17. A system comprising:

one or more processors; and

one or more storage elements having computer instructions stored thereon that are capable of being executed by the one or more processors to:

store a standard schema for a database object, wherein the standard schema is shared by multiple tenants;

store a tenant-specific schema for the database object, wherein the tenant-specific schema includes one or more tenant-specific custom elements for the database object;

check tenant-specific custom elements for a predetermined pattern to enforce a naming scheme;

automatically add the predetermined pattern in response to the check determining that a tenant-specific custom element does not include a predetermined pattern, wherein the predetermined pattern is not included in object elements of the standard schema;

detect an update of the standard schema; and

in response to the detection, automatically propagate the update to the tenant-specific schema, while the database remains available to accept tenant queries of a tenant corresponding to the tenant-specific schema, without taking the database offline for the update.

18. The system of claim 17 , wherein the system is configured to store data for a tenant according to both the standard schema and the tenant-specific schema for the database object in a non-relational underlying storage format.

19. The system of claim 17 , wherein the instructions are further capable of being executed to:

asynchronously process change records from a change stream, wherein the detection of the update of the standard schema and automatic propagation is based on a change record for the update in the change stream.

20. The system of claim 17 , wherein the standard schema is stored using a top-level scope and the tenant-specific schema is stored in a tenant namespace scope, wherein the instructions are further capable of being executed to:

create the tenant namespace scope and the top-level scope;

configure multitenancy settings for the top-level scope based on one or more commands received via a provisioning application programming interface (API);

update the tenant-specific schema based on one or more commands received via a metadata API; and

update a database object that conforms with the tenant-specific schema based on one or more commands received via a data API.

Assignments (2)
CHANGE OF NAME Recorded Jul 9, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 068256/0157 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2021
From: KWONG, HELEN; BUSJAEGER, BENJAMIN
To: SALESFORCE.COM, INC.
Reel/Frame 058262/0711 →
Continuity (1)
Related Publication 20230169067A1 · Jun 1, 2023