IP Library Granted Patent US 11,423,003
Granted Patent B2
US 11,423,003 · App. 15/837,724 · Granted Aug 23, 2022

Optimistic concurrency control for database transactions

Inventors: Benjamin M. Vandiver (Cambridge, MA); Styliani Pantela (Cambridge, MA); Jaimin Dave (Cambridge, MA)
Assignee: MICRO FOCUS LLC
G06F16/2315G06F16/2343G06F16/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 11,423,003
App. No.
15/837,724
Filed
Dec 11, 2017
Granted
Aug 23, 2022
Kind
B2
Art Unit
2164
USPC
707/704
Abstract

A technique includes performing optimistic concurrency control to process a request associated with a transaction to change a schema of an object. Performing the optimistic concurrency control includes locally modifying the object to change the schema of the object based on the request; after locally modifying the object, locking a global catalog to block the object from being globally modified; validating the locally modified object based on the global catalog; and committing the modified object to a globally shared storage in response to the modified object being validated.

Claims (45)

1. A method comprising:

receiving, by a processor of a first computing device, a request for a transaction to change a structure of a first table stored on the first computing device, wherein the first table contains local database objects of the first computing device, and the first computing device further stores a copy of a global catalog of global database objects stored in a global storage;

in response to receiving the request to change the structure of the first table, locking only the first table on the first computing device to prevent changes to the local database objects in the first table;

after locking only the first table, processing the transaction in the request to change the structure of the first table to generate a writeset, wherein the writeset includes a set of data representing a new version of the first table;

after generating the writeset representing the new version of the first table, locking the global catalog in the global storage to prevent changes to the global database objects in the global storage;

validating the writeset based on the global catalog; and

in response to the writeset being validated, committing the writeset to the global catalog by updating the global catalog in the global storage to include the set of data in the writeset.

2. The method of claim 1 , wherein the transaction to change the structure of the first table comprises adding a column to the first table.

3. The method of claim 1 , wherein the request comprises a data definition language (DDL) operation request.

4. The method of claim 1 , wherein validating the writeset based on the global catalog comprises comparing the local database objects in the new version of the first table against the global database objects in the global storage.

5. The method of claim 1 , further comprising:

after committing the writeset to the global catalog, releasing the locking of the global catalog and the locking of the first table.

6. The method of claim 1 , wherein the locking of the first table comprises acquiring an ownership lock on the first table.

7. The method of claim 1 , further comprising:

in response to the writeset not being validated, rolling back the transaction and unlocking the first table.

8. A non-transitory computer readable storage medium storing instructions that, when executed by a processing node of a database system, cause the processing node to:

receive a request for modifying a structure of a first table stored on the processing node, wherein the first table contains local database objects of the processing node, and the processing node further stores a copy of a global catalog of global database objects stored in a global storage;

in response to receiving the request for modifying the structure of the first table, lock only the first table on the processing node to prevent changes to the local database objects in the first table, without locking the global catalog in the global storage;

after locking only the first table, process the request to modify the first table and generate writeset data representing a new version of the first table;

after generating the writeset data representing the new version of the first table, lock all the global catalog in the global storage to prevent changes to the global database objects in the global storage;

validate the writeset data based on the global catalog; and

in response to the writeset data being validated, commit the writeset data to the global catalog in the global storage by updating the global catalog to include the writeset data.

9. The non-transitory computer readable storage medium of claim 8 , wherein the instructions that cause the processing node to validate the writeset data include instructions that cause the processing node to compare the local database objects in the new version of the first table against the global database objects in the global storage.

10. The non-transitory computer readable storage medium of claim 8 , wherein the instructions, when executed by the processing node, further cause the processing node to:

in response to the writeset data not being validated, roll back the modification of the first table and unlock the first table.

11. The non-transitory computer readable storage medium of claim 8 , wherein the request is a request to add a column to the first table.

12. The non-transitory computer readable storage medium of claim 8 , wherein the instructions further cause the processing node to:

after committing the writeset data to the global catalog, release the locking of the global catalog and the locking of the first table.

13. The non-transitory computer readable storage medium of claim 8 , wherein the request comprises a request of for modifying structures of a plurality of tables including the first table.

14. A computing device comprising:

a local storage storing a first table containing local database objects and a copy of a global catalog of global database objects stored in a global storage:

a processor, and

a memory storing instructions that, when executed by the processor, cause the processor to:

in response to receiving a request for a transaction to change a structure of the first table on the computing device, lock only the first table to prevent changes to the local database objects in the first table without locking the global catalog in the global storage;

after locking only the first table, process the transaction in the request to change the structure of the first table to generate a writeset, wherein the writeset includes a set of data representing a new version of the first table;

after generating the writeset representing the new version of the first table, lock the global catalog in the global storage to prevent changes to the global database objects in the global storage;

validate the writeset based on the global catalog; and

in response to the writeset being validated, commit the writeset to the global catalog in the global storage by updating the global catalog to include the set of data in the writeset.

15. The computing device of claim 14 , wherein the transaction to change the structure of the first table comprises adding a column to the first table.

16. The computing device of claim 14 , wherein the request comprises a data definition language (DDL) operation.

17. The computing device of claim 14 , wherein the instructions, when executed by the processor, further cause the processor to:

after committing the writeset to the global catalog, release the locking of the global catalog and the locking of the first table.

18. The computing device of claim 14 , wherein the instructions that cause the processor to validate the writeset include instructions that cause the processor to compare the local database objects in the new version of the first table against the global database objects in the global catalog.

19. The computing device of claim 14 , wherein the instructions cause the processor to:

in response to the writeset not being validated, roll back the transaction and unlock the first table.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2017
From: VANDIVER, BENJAMIN M.; PANTELA, STYLIANI; DAVE, JAIMIN
To: ENTIT SOFTWARE LLC
Reel/Frame 044828/0842 →
Continuity (1)
Related Publication 20190179930A1 · Jun 13, 2019