IP Library Granted Patent US 12,730,798
Granted Patent B2
US 12,730,798 · App. 18/973,146 · Granted Sep 8, 2026

Transaction conflict resolution in a file-system-backed database system

Inventor: Austin Lee (Burbank, CA)
Assignee: Rapid7, Inc.
G06F16/2379G06F16/2246
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,730,798
App. No.
18/973,146
Granted
Sep 8, 2026
Kind
B2
Abstract

Embodiments of a transactional database system are described to implement transaction processing over database objects stored in a strongly consistent object storage system. When a transaction is initiated, the system makes a private copy of data objects that are used by the transaction. Reads and writes of the transaction will be performed on the private copy. When the transaction is to be committed, the system verifies that the committed state of the data objects has not changed outside the transaction, and updates metadata object(s) in the data storage system to point to the private copy as the currently committed state of the data objects. If the committed state of any data objects has changed during the transaction, the private copy is abandoned and the transaction is rolled back and/or retried.

Claims (65)

1 . A system, comprising:

one or more processors with associated memory that implement a transactional database system, configured to:

manage transactions for a database, wherein the database is stored in a file system as plurality of data objects, wherein individual data objects are files in the file system that store table data associated with respective tables of the database and individual tables of the database are stored under respective table directories in the file system;

initiate a first transaction that accesses a plurality of data items in the database, including to create a first copy of one or more first data objects to be accessed by the first transaction, wherein updates in the first transaction are performed on the first copy;

determine that a committed state of the one or more first data objects has not changed since the initiation of the first transaction, and in response:

commit the first transaction, including to update one or more metadata objects in the file system to refer to the first copy as the committed state of the one or more first data objects; and

initiate a second transaction that accesses the database, including to create a second copy of one or more second data objects to be accessed by the second transaction;

determine that a committed state of the one or more second data objects has changed since the initiation of the second transaction, and in response:

roll back the second transaction, including to abandon the second copy of the one or more second data objects so that the second copy is not referred to as the committed state of the one or more second data objects; and

execute an asynchronous garbage collection process to remove copies of data objects that have been abandoned due to rollbacks, including the second copy of one or more second data objects.

2 . The system of claim 1 , wherein the transactional database system is configured to automatically retry a particular transaction when the particular transaction fails to commit due to a conflict.

3 . The system of claim 1 , wherein the transactional database system is configured to generate a warning to a client when a competing transaction is detected for a particular transaction submitted by the client.

4 . The system of claim 1 , wherein the second transaction is rolled back when the second transaction attempts to commit.

5 . The system of claim 1 , wherein the second transaction is rolled back when a competing transaction that caused the change to the committed state of the one or more second data objects is committed.

6 . The system of claim 1 , wherein the transactional database system performs conflict resolution among competing transactions based on a conflict resolution policy specified via a configuration interface.

7 . The system of claim 6 , wherein the conflict resolution policy specifies that a first finishing transaction in a group of competing transactions wins conflict resolution over one or more other transactions in the group.

8 . The system of claim 6 , wherein the conflict resolution policy specifies one or more rules to avoid starvation of transactions, wherein a particular transaction experiences starvation if it loses conflict resolution for a specified number of times.

9 . The system of claim 6 , wherein the conflict resolution policy selects a winning transaction from a group of competing transactions based on one or more of:

a current contention level of impacted data objects,

expected execution times of the competing transactions, and

transaction scopes of the competing transactions.

10 . The system of claim 1 , wherein the transactional database system is configured to:

generate a user interface to show pending transactions in the transactional database system; and

in response to user input via the user interface, kill one or more of the pending transactions.

11 . The system of claim 1 , wherein the transactional database system is configured to:

log a conflict history of transactions received by the transactional database system;

determine, based on the conflict history, a conflict hotspot within the file system; and

show the conflict hotspot via a user interface.

12 . The system of claim 1 , wherein the transactional database system is configured to:

determine a mitigation action to mitigate the conflict hotspot, to:

schedule a scheduled transactions to different time,

separate a future transaction into a set of smaller transactions, or

partition one or more data objects impacted by the conflict hotspot; and

show the mitigation action as a recommendation action via the user interface.

13 . A method, comprising:

executing a transactional database system implemented using one or more computer devices, wherein the execution comprises:

managing transactions for a database, wherein the database is stored in a file system as plurality of data objects, wherein individual data objects are files in the file system that store table data associated with respective tables of the database and individual tables of the database are stored under respective table directories in the file system;

initiating a first transaction that accesses a plurality of data items in the database, including creating a first copy of one or more first data objects to be accessed by the first transaction, wherein updates in the first transaction are performed on the first copy;

determining that a committed state of the one or more first data objects has not changed since the initiation of the first transaction, and in response:

committing the first transaction, including updating one or more metadata objects in the file system to refer to the first copy as the committed state of the one or more first data objects; and

initiating a second transaction that accesses the database, including creating a second copy of one or more second data objects to be accessed by the second transaction;

determining that a committed state of the one or more second data objects has changed since the initiation of the second transaction, and in response:

rolling back the second transaction, including abandoning the second copy of the one or more second data objects so that the second copy is not referred to as the committed state of the one or more second data objects; and

executing an asynchronous garbage collection process to remove copies of data objects that have been abandoned due to rollbacks, including the second copy of one or more second data objects.

14 . The method of claim 13 , wherein the second transaction is rolled back when a competing transaction that caused the change to the committed state of the one or more second data objects is committed.

15 . The method of claim 13 , further comprising the transactional database system:

receiving a conflict resolution policy via a configuration interface, wherein the conflict resolution policy specifies a conflict resolution option wherein a first finishing transaction in a group of competing transactions wins conflict resolution over one or more other transactions in the group.

16 . The method of claim 15 , wherein the conflict resolution policy specifies one or more rules to avoid starvation of transactions, wherein a particular transaction experiences starvation if it loses conflict resolution for a specified number of times.

17 . The method of claim 15 , wherein the conflict resolution policy selects a winning transaction from the group of competing transactions based on one or more of:

a current contention level of impacted data objects,

expected execution times of the competing transactions, and

transaction scopes of the competing transactions.

18 . The method of claim 13 , further comprising the transactional database system:

generating a user interface to show pending transactions in the transactional database system; and

in response to user input via the user interface, killing one or more of the pending transactions.

19 . The method of claim 13 , further comprising the transactional database system:

logging a conflict history of transactions received by the transactional database system;

determining, based on the conflict history, a conflict hotspot within the file system; and

showing the conflict hotspot via a user interface.

20 . A method of claim 19 , further comprising the transactional database system:

determining a mitigation action to mitigate the conflict hotspot, to:

schedule a scheduled transactions to different time,

separate a future transaction into a set of smaller transactions, or

partition one or more data objects impacted by the conflict hotspot; and

showing the mitigation action as a recommendation action via the user interface.

Assignments (2)
SECURITY INTEREST Recorded Jun 26, 2025
From: RAPID7, INC.; RAPID7 LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 071743/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: LEE, AUSTIN
To: RAPID7, INC.
Reel/Frame 069522/0108 →
Continuity (2)
Continuation 18085745 · Dec 21, 2022
Related Publication 20250103587A1 · Mar 27, 2025
References Cited (11)
US 10997160B1 · Vig · 2021 [cited by examiner]
US 11526487B2 · Novotny · 2022 [cited by examiner]
US 11720563B1 · Khan · 2023 [cited by examiner]
US 11748338B1 · Paulus · 2023 [cited by examiner]
US 11829354B2 · Gordon · 2023 [cited by examiner]
US 11899648B2 · Luo · 2024 [cited by examiner]
US 12153569B2 · Cseri · 2024 [cited by examiner]
US 12197425B2 · Jiang · 2025 [cited by examiner]
US 12423196B1 · Rajgaria · 2025 [cited by examiner]
US 20200110822A1 · Pantela · 2020 [cited by examiner]
US 20200379982A1 · Ozawa · 2020 [cited by examiner]