# US 2020/0401575 A1 · Streamlined database commit for synchronized nodes

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

- Number: US 2020/0401575 A1
- Document ID: US20200401575A1
- Status: Published application
- Kind: A1
- Application number: 16/446,034
- Filed: 2019-06-19
- Published: 2020-12-24
- Earliest claimed: 2019-06-19
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Chad A. OLSTAD; Donald F. ZIMMERMAN
- Web page: https://patentgrep.com/patent/US20200401575A1

## CPC

- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/2343: {Locking methods, e.g. distributed locking or locking implementation details}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for streamlined commit procedures between synchronized nodes are provided. A request to commit a transaction is transmitted from a first node, where the request instructs a second node to retain any locks related to the transaction. A response is received, from the second node, indicating that the transaction was successfully committed. Upon receiving the response, the transaction is committed on the first node. Upon successfully committing the transaction on the first node, first cleanup request is transmitted to the second node, where the cleanup request instructs the second node to release any locks related to the transaction.

## Claims

### Claim 1

A method comprising:
transmitting, from a first node, a first request to commit a first transaction, wherein the first request instructs a second node to retain any locks related to the first transaction;
receiving, from the second node, a first response indicating that the first transaction was successfully committed;
upon receiving the first response, committing the first transaction on the first node; and
upon successfully committing the first transaction on the first node, transmitting a first cleanup request to the second node, wherein the first cleanup request instructs the second node to release any locks related to the first transaction.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first node transmits the first request instructing the second node to retain the locks related to the first transaction based on determining that the first transaction includes only record-level changes, the method further comprising:
upon determining that a second transaction involves more than record-level changes, transmitting, from the first node, a second request to prepare to commit the second transaction, wherein, responsive to the second request, the second node prepares to commit the second transaction but does not commit the second transaction until receiving a commit instruction from the first node.

### Claim 3 (depends on 1)

The method of claim 1, the method further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node; and
committing the second transaction on the first node.

### Claim 4 (depends on 1)

The method of claim 1, the method further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
rolling back the second transaction on the first node.

### Claim 5 (depends on 1)

The method of claim 1, the method further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
receiving, from the second node, a second response indicating that the second transaction was not successfully committed; and
rolling back the second transaction on the first node.

### Claim 6 (depends on 1)

The method of claim 1, the method further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon receiving a second cleanup request from the second node, releasing any locks related to the second transaction.

### Claim 7 (depends on 1)

The method of claim 1, the method further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node.

### Claim 8 (depends on 1)

The method of claim 1, the method further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
releasing the locks related to the second transaction.

### Claim 9

A computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to perform an operation comprising:
transmitting, from a first node, a first request to commit a first transaction, wherein the first request instructs a second node to retain any locks related to the first transaction;
receiving, from the second node, a first response indicating that the first transaction was successfully committed;
upon receiving the first response, committing the first transaction on the first node; and
upon successfully committing the first transaction on the first node, transmitting a first cleanup request to the second node, wherein the first cleanup request instructs the second node to release any locks related to the first transaction.

### Claim 10 (depends on 9)

The computer-readable storage medium of claim 9, the operation further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node; and
committing the second transaction on the first node.

### Claim 11 (depends on 9)

The computer-readable storage medium of claim 9, the operation further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
rolling back the second transaction on the first node.

### Claim 12 (depends on 9)

The computer-readable storage medium of claim 9, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon receiving a second cleanup request from the second node, releasing any locks related to the second transaction.

### Claim 13 (depends on 9)

The computer-readable storage medium of claim 9, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node.

### Claim 14 (depends on 9)

The computer-readable storage medium of claim 9, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
releasing the locks related to the second transaction.

### Claim 15

A system comprising:
one or more computer processors; and
a memory containing a program which when executed by the one or more computer processors performs an operation, the operation comprising:
transmitting, from a first node, a first request to commit a first transaction, wherein the first request instructs a second node to retain any locks related to the first transaction;
receiving, from the second node, a first response indicating that the first transaction was successfully committed;
upon receiving the first response, committing the first transaction on the first node; and
upon successfully committing the first transaction on the first node, transmitting a first cleanup request to the second node, wherein the first cleanup request instructs the second node to release any locks related to the first transaction.

### Claim 16 (depends on 15)

The system of claim 15, the operation further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node; and
committing the second transaction on the first node.

### Claim 17 (depends on 15)

The system of claim 15, the operation further comprising:
transmitting, from the first node, a second request to commit a second transaction, wherein the second request instructs the second node to retain any locks related to the second transaction;
upon failing to receive a response from the second node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
rolling back the second transaction on the first node.

### Claim 18 (depends on 15)

The system of claim 15, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon receiving a second cleanup request from the second node, releasing any locks related to the second transaction.

### Claim 19 (depends on 15)

The system of claim 15, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a primary node:
flagging the second transaction for resync when communication is established with the second node.

### Claim 20 (depends on 15)

The system of claim 15, the operation further comprising:
receiving, by the first node, from the second node, a second request to commit a second transaction, wherein the second request instructs the first node to retain any locks related to the second transaction;
committing the second transaction on the first node;
transmitting, to the second node, a second response indicating that the second transaction was successfully committed; and
upon failing to receive a response from the first node, determining, by the first node, whether the first node is a primary node or a secondary node; and
upon determining that the first node is a secondary node:
releasing the locks related to the second transaction.
