# US 12,602,371 B1 · One-phase commit for distributed transactions

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,371 B1
- Document ID: US12602371B1
- Status: Granted
- Kind: B1
- Application number: 19/206,475
- Filed: 2025-05-13
- Granted: 2026-04-14
- Earliest claimed: 2025-05-13
- Assignees: EloqData Inc
- Applicants: EloqData Inc
- Inventors: Liang Chen
- Web page: https://patentgrep.com/patent/US12602371B1

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure relates to one-phase commit (1PC) for distributed transactions. A method, computer storage medium, and system are provided for one-phase commit. In one embodiment, the method comprises determining, based on the result of a logging operation that occurs at a global log, whether all of a plurality of nodes are ready to proceed with a commit decision; and communicating a commit decision to the plurality of transaction participants if all of the plurality of nodes are ready, or, communicating an abort decision to the plurality of transaction participants if any of the plurality of nodes is not ready. The transaction coordinator (Tx) communicates with the global log (Txlog) to ensure that transactions are committed or aborted atomically, to achieves high availability and performance, especially for distributed database environments.

## Claims

### Claim 1

A computer-implemented system, comprising:
a plurality of nodes configured to participate in processing a distributed transaction, the plurality of nodes including
a transaction coordinator (Tx), and
a plurality of transaction participants (CcMap shards); and
a global log (Txlog) configured to serve as a centralized authority for managing liveness of the plurality of nodes,
wherein the transaction coordinator (Tx) is configured to:
perform a single logging operation at the global log (Txlog);
determine, based on the result of a single logging operation whether all of the plurality of nodes, participated in distributed transaction, are ready to proceed with a commit decision; and
communicate:
a final commit decision to the plurality of transaction participants when the global log(Txlog) confirms that all of the plurality of nodes are ready; or,
an abort decision to the plurality of transaction participants when the global log (Txlog) indicates that any of the plurality of nodes is not ready;
wherein the liveness of each of the plurality of nodes identifies an operational lifetime of the corresponding node within the computer-implemented system, and is characterized by a unique liveness number;
wherein global in global log (Txlog) denotes the centralized nature of the TxLog logging service, which is accessible by all nodes in the transaction system and serves as the authoritative source for the each node liveness and transaction commit status, the global log maintains a unified system-wide view of transaction state across all nodes, to ensure commit or aborted atomically, even in the presence of node failures, and wherein the centralized logging service reduces the complexity and overhead associated with maintaining local logs at each individual node, thereby improving the system's resilience and availability.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the logging operation comprises
at least one of consistency check and data storage.

### Claim 3 (depends on 2)

The system according to claim 2, wherein
the consistency check is performed
by comparing new liveness numbers with previous liveness numbers having stored in the global log to verify liveness of the plurality of nodes; and wherein
the result of the logging operation is a check flag representing an outcome of the consistency check.

### Claim 4 (depends on 3)

The system according to claim 3, wherein
the liveness number is a node group term, which is
managed by a distributed consensus protocol (such as Raft or Paxos) and
is used to identify the active state of the current leader in a node group.

### Claim 5 (depends on 4)

The system according to claim 4, wherein
the transaction coordinator sends liveness numbers of the plurality of nodes to the global log through a critical path under a commit protocol, and
each of the plurality of nodes sends a new liveness number to the global log through a non-critical path, each time it fails over to a new node or restarts.

### Claim 6 (depends on 3)

The system according to claim 3, wherein
the liveness number is a unique number, which is assigned to a node by a liveness oracle, after successful recovery of the node.

### Claim 7 (depends on 2)

The system according to claim 2, wherein
the global log (Txlog) is configured to persist data items of a commit request into a stable storage of the global log, and
the result of the logging operation is a write flag of the data items.

### Claim 8 (depends on 1)

The system according to claim 1, wherein
each transaction participant of the plurality of nodes is configured to lock respective one of the data items and
respond with a lock flag and a new liveness number of the node to the transaction coordinator, before the logging operation.

### Claim 9 (depends on 8)

The system according to claim 8, wherein
each transaction participant of the plurality of nodes is configured to
release the lock on the respective one of the data items after installing the data items upon receiving the commit decision.

### Claim 10 (depends on 8)

The system according to claim 8, wherein
each transaction participant of the plurality of nodes is configured to
release the locks on the respective one of data items without installing the data items upon receiving the abort decision.

### Claim 11

A method implemented at least in part by a computer comprising:
receiving a commit request in a distributed transaction processing system that includes a plurality of nodes;
determining, based on a result of a logging operation that occurs at a global log, whether all of the plurality of nodes are ready to proceed with a commit decision; and
communicating a commit decision to a plurality of transaction participants if all of the plurality of nodes are ready; or,
communicating an abort decision to the plurality of transaction participants if any of the plurality of nodes is not ready,
identifying an operational lifetime of each of the plurality of nodes within the computer-implemented system by a unique liveness number;
wherein global log (Txlog) denotes the centralized nature of the TxLog logging service, which is accessible by all nodes in the transaction system and serves as the authoritative source for the each node liveness and transaction commit status, the global log maintains a unified system-wide view of transaction state across all nodes, to ensure commit or aborted atomically, even in the presence of node failures, and wherein the centralized logging service reduces the complexity and overhead associated with maintaining local logs at each individual node, thereby improving the system's resilience and availability.

### Claim 12 (depends on 11)

The method according to claim 11, wherein
the logging operation comprises at least one of consistency check and data storage.

### Claim 13 (depends on 12)

The method according to claim 12, wherein
the consistency check is performed
by comparing new liveness numbers with previous liveness numbers stored in the global log to verify liveness of the plurality of nodes, and wherein
the result of the logging operation is a check flag representing an outcome of the consistency check.

### Claim 14 (depends on 13)

The method according to claim 13, wherein
the liveness number is a node group term, which is
managed by a distributed consensus protocol (such as Raft or Paxos) and
is used to identify the active state of the current leader in a node group.

### Claim 15 (depends on 14)

The method according to claim 14, wherein
the transaction coordinator sends liveness numbers of the plurality of nodes to the global log through a critical path of a commit protocol, and
each of the plurality of nodes sends new liveness number to the global log through a non-critical path, each time it fails over to a new node or restarts.

### Claim 16 (depends on 13)

The method according to claim 13, wherein
the liveness number is a unique number which is assigned to a node by a liveness oracle, after successful recovery of the node.

### Claim 17 (depends on 12)

The method according to claim 12, wherein
the global log (Txlog) is configured to
persist data items of the commit request into a stable storage of the global log, and
the result of the logging operation is a write flag of the data items.

### Claim 18 (depends on 11)

The method according to claim 11, further comprising
each transaction participant of the plurality of nodes
locking respective one of the data items and
responding with a lock flag and a new liveness number of the node to the transaction coordinator, before the logging operation.

### Claim 19 (depends on 18)

The method according to claim 18, further comprising,
each transaction participant of the plurality of nodes releasing the locks on the data items after installing the data items upon receiving the commit decision.

### Claim 20 (depends on 18)

The method according to claim 18, further comprising
each transaction participant of the plurality of nodes
releasing the locks on the data items without installing the data items upon receiving the abort decision, after the step of logging operation.
