IP Library Granted Patent US 9,286,341
Granted Patent B2
US 9,286,341 · App. 14/307,427 · Granted Mar 15, 2016

Conditional commit for data in a database

Inventor: David Labuda (Palo Alto, CA)
Assignee: Matrixx Software, Inc.
G06F17/30345G06F17/30289G06F17/30351
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 9,286,341
App. No.
14/307,427
Granted
Mar 15, 2016
Kind
B2
Abstract

A database comprises a database interface and a database updater. The database interface enables a reading of a first set of information from the database. The database updater updates a second set of information in the database based at least in part on one or more conditions. The one or more conditions limit changes allowable to the first set of information from the database that occurred after the reading of the first set of information from the database.

Claims (41)

1. A database, comprising:

a database interface, wherein the database interface enables a first transaction comprising a reading of a first set of information from the database at the same time as a second transaction comprising a second conditional write command of at least one element in the first set of information;

a database updater, wherein the database updater:

updates, using a processor, the first set of information according to a write command as part of the first transaction;

receives the second transaction comprising the second conditional write command for updating the at least one element in the first set of information in the database, wherein the second conditional write command includes one or more conditions based at least in part on a value of a database entry of the first set of information, wherein the one or more conditions limit changes allowable to the value of the database entry of the first set of information that occurred after the reading of the first set of information from the database, wherein the one or more conditions detect corruption of data and allow the database to execute read and write commands at full speed in order to reduce overhead associated with access locking;

updates the at least one element of the first set of information in the event that the one or more conditions in the second conditional write command is met; and

in the event that the one or more conditions in the second conditional write command is not met, abort the second transaction.

2. A database as in claim 1 , wherein the first set of information from the database comprises one or more data entries in the database.

3. A database as in claim 1 , wherein the database updater further receives a third transaction comprising a third conditional write command for a third set of information, wherein the third set of information comprises at least one element of the first set of information.

4. A database as in claim 1 , wherein one condition of the one or more conditions comprises a condition that a value of a database entry is less than an upper limit value.

5. A database as in claim 1 , wherein one condition of the one or more conditions comprises a condition that a value of a database entry is less than or equal to an upper limit value.

6. A database as in claim 1 , wherein one condition of the one or more conditions comprises a condition that a value of a database entry is more than a lower limit value.

7. A database as in claim 1 , wherein one condition of the one or more conditions comprises a condition that a value of a database entry is more than or equal to a lower limit value.

8. A database as in claim 1 , wherein one condition of the one or more conditions comprises a condition that a value of a database entry is equal to a predetermined value.

9. A database as in claim 1 , wherein the at least one element of the first set of information is updated to a first absolute value.

10. A database as in claim 1 , wherein the at least one element of the first set of information is updated to a value relative to a current value.

11. A database as in claim 10 , wherein the value relative to the current value is a value less than the current value.

12. A database as in claim 10 , wherein the value relative to the current value is a value greater than the current value.

13. A database as in claim 1 , wherein the reading of the first set of information from the database is read without a lock occurring during the read in the database.

14. A database as in claim 1 , wherein the reading of the first set of information from the database is read with a latch occurring during the read in the database.

15. A database as in claim 1 , wherein the reading of the first set of information from the database is read without a latch occurring during the read in the database.

16. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having been written since a specific prior read.

17. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having been written since a specific prior time.

18. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having not been written since a specific prior read.

19. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having not been written since a specific prior time.

20. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having been read since a specific prior read.

21. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having been read since a specific prior time.

22. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having not been read since a specific prior read.

23. A database as in claim 1 , wherein one condition of the one or more conditions comprises a value of a database entry having not been read since a specific prior time.

24. A method for a database, comprising:

enabling a first transaction comprising a reading of a first set of information from the database at the same time as a second transaction comprising a second conditional write command of at least one element in the first set of information;

updating the first set of information according to a write command as part of the first transaction;

receiving the second transaction comprising the second conditional write command for updating the at least one element in the first set of information in the database, wherein the second conditional write command includes one or more conditions based at least in part on a value of a database entry of the first set of information, wherein the one or more conditions limit changes allowable to the value of a database entry of the first set of information that occurred after the reading of the first set of information from the database, wherein the one or more conditions detect corruption of data and allow the database to execute read and write commands at full speed in order to reduce overhead associated with access locking;

updating the at least one element of the first set of information in the event that the one or more conditions in the second conditional write command is met; and

in the event that the one or more conditions in the second conditional write command is not met, abort the second transaction.

25. 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:

enabling a first transaction comprising a reading of a first set of information from the database at the same time as a second transaction comprising a second conditional write command of at least one element in the first set of information;

updating the first set of information according to a write command as part of the first transaction;

receiving the second transaction comprising the second conditional write command for updating the at least one element in the first set of information in the database, wherein the second conditional write command includes one or more conditions based at least in part on a value of a database entry of the first set of information, wherein the one or more conditions limit changes allowable to the value of a database entry of the first set of information that occurred after the reading of the first set of information from the database, wherein the one or more conditions detect corruption of data and allow the database to execute read and write commands at full speed in order to reduce overhead associated with access locking;

updating the at least one element of the first set of information in the event that the one or more conditions in the second conditional write command is met; and

in the event that the one or more conditions in the second conditional write command is not met, abort the second transaction.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY, RECORDED AT REEL: 057719, FRAME: 0417 Recorded Dec 23, 2025
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: MATRIXX SOFTWARE, INC.
Reel/Frame 074052/0748 →
SECURITY INTEREST Recorded Feb 14, 2024
From: MATRIXX SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 066597/0905 →
SECURITY INTEREST Recorded Dec 7, 2021
From: MATRIXX SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 058322/0431 →
SECURITY INTEREST Recorded Oct 6, 2021
From: MATRIXX SOFTWARE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB (AS AGENT)
Reel/Frame 057719/0417 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 3, 2019
From: MATRIXX SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 048783/0582 →
Continuity (3)
Continuation 13658112 · Oct 23, 2012
Continuation 12380981 · Mar 5, 2009
Related Publication 20150019481A1 · Jan 15, 2015