IP Library Granted Patent US 10,740,320
Granted Patent B2
US 10,740,320 · App. 16/135,242 · Granted Aug 11, 2020

Systems and methods of operation lock management and system catalog overrides in database systems

Inventors: James E. Mace (San Francisco, CA); Atish Agrawal (Sunnyvale, CA)
Assignee: salesforce.com, inc.
G06F16/2343G06F9/4881G06F16/2246G06F16/2291G06F16/2365
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 10,740,320
App. No.
16/135,242
Granted
Aug 11, 2020
Kind
B2
Abstract

Systems and methods are provided for a shared memory between a database system and a storage catalog server, which stores system catalog overrides and locks for at least a first workflow. The current system catalog overrides include at least a portion of the system catalog overrides and locks that are retrieved by the shared memory from the storage catalog server at a predetermined point in time. The database system performs a check of at least one of index validity and tenant validity for a second workflow or other database operation by checking a state of the corresponding tenant or index in the current system catalog overrides. The system catalog overrides suppress visibility of the respective system catalog changes when the database system determines that at least one of the index and the tenant is invalid based on the current system catalog overrides for the first workflow.

Claims (41)

1. A system comprising:

a database system to store records and execute one or more database operations;

a storage catalog server that includes a storage catalog to record information about system catalog overrides for active workflows of the database system;

a shared memory, communicatively coupled to the database system and the storage catalog server, to store current system catalog overrides and locks for at least one of a tenant and an index of a first workflow of the database system, wherein the current system catalog overrides include at least a portion of the system catalog overrides and locks that are retrieved by the shared memory from the storage catalog server at a predetermined point in time, and wherein the shared memory includes the current system catalog overrides for at least the first workflow,

wherein the database system performs a check of at least one of index validity and tenant validity for a second workflow or other database operation by checking a state of the current system catalog overrides in the shared memory, and

wherein the system catalog overrides suppress visibility of the respective system catalog changes when the database system determines that at least one of the index and the tenant is invalid based on the current system catalog overrides for the first workflow.

2. The system of claim 1 , wherein the storage catalog includes log-structured merge-tree (LSM) metadata associated with an instance of the database system, which persists independently of the database system.

3. The system of claim 2 , wherein at least one of the first workflow and the second workflow are selected from the group consisting of: a workflow that includes operations that modify a state of the database system, and a workflow that includes operations that manipulate the LSM metadata.

4. The system of claim 1 , wherein the system catalog includes the internal database catalog metadata and relations of the database system, and is persisted through database logging and recovery systems.

5. The system of claim 1 , wherein the database system performs a lock conflict check for at least one of an index and tenant for the second workflow or other database operation by checking a state of the current system catalog overrides in the shared memory, and

wherein the database system delays execution of the second workflow or other the other database operation until the completion of the first workflow when the database system determines a lock conflict exists for at least one of the index and the tenant based on the current locks for the first workflow.

6. The system of claim 1 , wherein a workflow daemon of the database system sequences a first workflow operation and a second workflow operation of the first workflow.

7. The system of claim 6 , wherein the database system acquires any locks needed by at least the first workflow operation and transfers them to the workflow daemon.

8. The system of claim 6 , wherein the workflow daemon manages locks for tenants of at least one of the first workflow operation and the second workflow operation, wherein the locks are durably held by the workflow daemon.

9. The system of claim 6 , wherein the locks are managed by the workflow daemon for at least one of an index and tenant for the first workflow operation during the first workflow.

10. The system of claim 6 , wherein the lock is transferred by the workflow daemon of the database system to the second workflow operation when the first workflow operation is complete.

11. The system of claim 1 , wherein a primary lock table is stored in the shared memory, wherein the primary lock table that tracks locks held by at least one of the first workflow and the second workflow.

12. A method comprising:

storing records and executing one or more database operations with a database system;

storing, at a storage catalog server, a storage catalog to record information about system catalog overrides for active workflows of the database system;

storing, in a shared memory communicatively coupled to the database system and the storage catalog server, current system catalog overrides and locks for at least one of a tenant and an index of a first workflow of the database system, wherein the current system catalog overrides include at least a portion of the system catalog overrides and locks that are retrieved by the shared memory from the storage catalog server at a predetermined point in time, and wherein the shared memory includes the current system catalog overrides for at least the first workflow;

performing, at the database system, a check of at least one of index validity and tenant validity for a second workflow or other database operation by checking a state of the current system catalog overrides in the shared memory; and

suppressing visibility of the respective system catalog changes when the database system determines that at least one of the index and the tenant is invalid based on the current system catalog overrides for the first workflow.

13. The method of claim 12 , wherein the storage catalog includes log-structured merge-tree (LSM) metadata associated with an instance of the database system, which persists independently of the database system.

14. The method of claim 13 , wherein at least one of the first workflow and the second workflow are selected from the group consisting of: a workflow that includes operations that modify a state of the database system, and a workflow that includes operations that manipulate the LSM metadata.

15. The method of claim 12 , wherein the system catalog includes the internal database catalog metadata and relations of the database system, and is persisted through database logging and recovery systems.

16. The method of claim 12 , further comprising:

performing, at the database system, a lock conflict check for at least one of an index and tenant for the second workflow or other database operation by checking a state of the current system catalog overrides in the shared memory; and

delaying execution of the second workflow or other the other database operation until the completion of the first workflow when the database system determines a lock conflict exists for at least one of the index and the tenant based on the current locks for the first workflow.

17. The method of claim 12 , further comprising:

sequencing, at a workflow daemon of the database system, a first workflow operation and a second workflow operation of the first workflow.

18. The method of claim 17 , further comprising:

acquiring, at the database system, any locks needed by at least the first workflow operation and transfers them to the workflow daemon.

19. The method of claim 17 , further comprising:

managing, at the workflow daemon, locks for tenants of at least one of the first workflow operation and the second workflow operation,

wherein the locks are durably held by the workflow daemon.

20. The method of claim 17 , further comprising:

managing, at the workflow daemon, the locks for at least one of an index and tenant for the first workflow operation during the first workflow.

21. The method of claim 17 , further comprising:

transferring, at the workflow daemon, the lock to the second workflow operation when the first workflow operation is complete.

22. The method of claim 12 , wherein a primary lock table is stored in the shared memory, wherein the primary lock table that tracks locks held by at least one of the first workflow and the second workflow.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0378 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2018
From: MACE, JAMES E.; AGRAWAL, ATISH
To: SALESFORCE.COM, INC.
Reel/Frame 046909/0799 →
Continuity (1)
Related Publication 20200089789A1 · Mar 19, 2020
Cited By (2)
US 12,253,916 US 12,625,863