IP Library Granted Patent US 12,079,204
Granted Patent B2
US 12,079,204 · App. 18/076,815 · Granted Sep 3, 2024

Transaction block processing for conditional commit databases

Inventors: David Labuda (Hillsborough, CA); Deepak Bisht (Fremont, CA); Ian Marshall (Sunnyvale, CA); Ming-Wen Sung Hwang (Saratoga, CA)
Assignee: Matrixx Software, Inc.
G06F16/2379
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,079,204
App. No.
18/076,815
Granted
Sep 3, 2024
Kind
B2
Abstract

A database system includes an interface and a processor. The interface is configured to receive a transaction request comprising one or more transaction blocks in an order. The processor is configured to evaluate each transaction block of the one or more transaction blocks in the order by: determining in the order whether a condition expression of a transaction block of the one or more transaction blocks is true; and in response to the condition expression of the transaction block being true, adding in the order one or more associated action sets of the transaction block to a transaction context; and in response to each of the transaction blocks being evaluated, cause the transaction context to be executed as an atomic transaction.

Claims (41)

1. A database system, comprising:

an interface, wherein the interface is configured to:

receive a transaction request comprising one or more transaction blocks in an order; and

a processor, wherein the processor is configured to:

evaluate each transaction block of the one or more transaction blocks in the order by:

determining in the order whether a condition expression of a transaction block of the one or more transaction blocks is true, wherein the condition expression includes an expression inquiring whether all of the value have stayed the same before a calculation phase, and wherein in the event that all of the value have not stayed the same before the calculation phase, retry the condition expression before performing the calculation phase; and

in response to the condition expression of the transaction block being true, adding in the order one or more associated action sets of the transaction block to a transaction context; and

in response to each of the transaction blocks being evaluated, cause the transaction context to be executed as an atomic transaction.

2. A database of claim 1 , wherein the one or more associated action sets comprise an instruction for data in the database.

3. A database of claim 2 , wherein the instruction comprises a create or an insert instruction.

4. A database of claim 2 , wherein the instruction comprises a delete instruction.

5. A database of claim 2 , wherein the instruction comprises an update instruction.

6. A database of claim 2 , wherein the one or more associated action sets comprises one or more instructions for data in the database, wherein the one or more instructions comprise one or more create or insert instructions, one or more delete instructions, and/or one or more update instructions.

7. A database of claim 1 , wherein a condition expression of the transaction block comprises a Boolean expression that is evaluated as either true or false or null.

8. A database of claim 7 , wherein the Boolean expression includes a Boolean operator.

9. A database of claim 8 , wherein the Boolean operator comprises one or more of AND, OR, XOR, NAND, NOR, XNOR, or NOT.

10. A database of claim 7 , wherein the Boolean expression includes an operand comprising a previously evaluated transaction block condition expression.

11. A database of claim 7 , wherein the Boolean expression includes an operand comprising a condition set.

12. A database of claim 11 , wherein the condition set comprises a greater than or greater than or equal to operator.

13. A database of claim 11 , wherein the condition set comprises a less than or less than or equal to operator.

14. A database of claim 11 , wherein the condition set comprises an equal to operator.

15. A database of claim 11 , wherein the condition set comprises a time and/or a date.

16. A database of claim 11 , wherein the condition set comprises a database data and a condition using the database data.

17. A database of claim 11 , wherein the condition set comprises a prior read time and/or a prior read date of a database data and a condition using the prior read time and/or the prior read date.

18. A database of claim 11 , wherein the condition set comprises a prior write time and/or a prior write date of a database data and a condition using the prior write time and/or the prior write date.

19. A database of claim 11 , wherein the condition set comprises a database data and a condition using a relative value from a current value of the database data.

20. A database of claim 1 , wherein the processor is further configured to add an indication that the transaction block is skipped to a skipped transaction block list for the transaction in response to the transaction block condition expression being false.

21. A database of claim 20 , wherein the processor is further configured to provide the skipped transaction block list.

22. A database of claim 1 , wherein the atomic transaction further comprises one or more of a durable transaction for the database, a consistent transaction for the database, and/or an isolated transaction for the database.

23. A method for a database, comprising:

receiving a transaction request comprising one or more transaction blocks in an order

evaluating, using a processor, each transaction block of the one or more transaction blocks in the order by:

determining in the order whether a condition expression of a transaction block of the one or more transaction blocks is true, wherein the condition expression includes an expression inquiring whether all of the value have stayed the same before a calculation phase, and wherein in the event that all of the value have not stayed the same before the calculation phase, retrying the condition expression before performing the calculation phase; and

in response to the condition expression of the transaction block being true, adding in the order one or more associated action sets of the transaction block to a transaction context; and

in response to each of the transaction blocks being evaluated, causing the transaction context to be executed as an atomic transaction.

24. A computer program product for a database, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a transaction request comprising one or more transaction blocks in an order

evaluating, using a processor, each transaction block of the one or more transaction blocks in the order by:

determining in the order whether a condition expression of a transaction block of the one or more transaction blocks is true, wherein the condition expression includes an expression inquiring whether all of the value have stayed the same before a calculation phase, and wherein in the event that all of the value have not stayed the same before the calculation phase, retrying the condition expression before performing the calculation phase; and

in response to the condition expression of the transaction block being true, adding in the order one or more associated action sets of the transaction block to a transaction context; and

in response to each of the transaction blocks being evaluated, causing the transaction context to be executed as an atomic transaction.

Assignments (2)
SECURITY INTEREST Recorded Feb 14, 2024
From: MATRIXX SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 066597/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2023
From: LABUDA, DAVID; BISHT, DEEPAK; MARSHALL, IAN; HWANG, MING-WEN SUNG
To: MATRIXX SOFTWARE, INC.
Reel/Frame 062979/0924 →
Continuity (1)
Related Publication 20240193152A1 · Jun 13, 2024