# US 2021/0334246 A1 · Virtual transaction queues for database replication

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

- Number: US 2021/0334246 A1
- Document ID: US20210334246A1
- Status: Published application
- Kind: A1
- Application number: 16/858,967
- Filed: 2020-04-27
- Published: 2021-10-28
- Earliest claimed: 2020-04-27
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Dirk Alexander Seelemann, II; Dzmitry Lepniakou; Michael Jory
- Web page: https://patentgrep.com/patent/US20210334246A1

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An embodiment includes extracting, after a first specified time interval, recovery data from a recovery log for a data table corresponding to a set of database operations on the data table that occurred during the first specified time interval. The embodiment also generates index data for a progress record associated with the first time interval. The progress record includes a first data field for storing data representative of a first net change to the data table resulting from a first subset of the set of database operations. The first subset of database operations are associated with a first transaction. The embodiment also detects a commit operation in the first subset of database operations that committed the first transaction. The embodiment also recovers the first transaction in a target data table using the recovery log and the first net change data associated with the first transaction in the progress record.

## Claims

### Claim 1

A computer-implemented method comprising:
extracting, after a first specified time interval, recovery data from a recovery log for a data table corresponding to a set of database operations on the data table that occurred during the first specified time interval;
generating, responsive to extracting the recovery data at the end of the first specified time interval, index data for a progress record associated with the first time interval, wherein the progress record includes a first data field for storing data representative of a first net change to the data table resulting from a first subset of the set of database operations, wherein the first subset of database operations are associated with a first transaction;
detecting, responsive to generating the index data, a commit operation in the first subset of database operations that committed the first transaction; and
recovering, responsive to detecting the commit operation, the first transaction in a target data table using the recovery log and the first net change data associated with the first transaction in the progress record.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
generating, responsive to extracting the recovery data at the end of the first specified time interval, additional index data for the progress record associated with the first time interval, wherein the progress record includes a second data field for storing data representative of a second net change to the data table resulting from a second subset of the set of database operations, wherein the second subset of database operations are associated with a second transaction.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, further comprising:
detecting, responsive to generating the additional index data, that the second subset of database operations lack a terminating operation on the second transaction during the first specified time interval.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
generating, responsive to detecting the lack of a terminating operation, an accumulator data entry representative of the second transaction, wherein the accumulator data entry provides an indication of transactions to check for changes after a second specified time interval subsequent to the first specified time interval.

### Claim 5 (depends on 2)

The computer-implemented method of claim 2, further comprising:
detecting, responsive to generating the additional index data, a rollback operation in the second subset of database operations that aborted the second transaction.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
removing, responsive to detecting the rollback operation, the second transaction from future processing by removing an accumulator data entry associated with the second transaction.

### Claim 7 (depends on 2)

The computer-implemented method of claim 2, further comprising:
detecting, responsive to generating the additional index data, a start operation in the second subset of database operations that started the second transaction during the first specified time interval.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, further comprising:
further detecting, responsive to generating the additional index data, that the second subset of database operations lack a terminating operation on the second transaction during the first specified time interval; and
generating, responsive to detecting the lack of a terminating operation, an accumulator data entry representative of the second transaction, wherein the accumulator data entry provides an indication of transactions to check for changes after a second specified time interval subsequent to the first specified time interval.

### Claim 9 (depends on 7)

The computer-implemented method of claim 7, further comprising:
detecting, responsive to generating the additional index data, a second commit operation in the second subset of database operations that committed the second transaction during the first specified time interval; and
recovering, responsive to detecting the second commit operation, the second transaction in the target data table using the recovery log and the second net change data associated with the second transaction in the progress record.

### Claim 10 (depends on 7)

The computer-implemented method of claim 7, further comprising:
detecting, responsive to generating the additional index data, a rollback operation in the second subset of database operations that aborted the second transaction during the first specified time interval; and
removing, responsive to detecting the rollback operation, the second transaction from future processing by removing an accumulator data entry associated with the second transaction.

### Claim 11

A computer usable program product for data replication, the computer program product comprising one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable by a processor to cause the processor to perform operations comprising:
extracting, at the end of a first specified time interval, recovery data from a recovery log for a data table corresponding to a set of database operations on the data table that occurred during the first specified time interval;
generating, responsive to extracting the recovery data at the end of the first specified time interval, index data for a progress record associated with the first time interval, wherein the progress record includes a first data field for storing data representative of a first net change to the data table resulting from a first subset of the set of database operations, wherein the first subset of database operations are associated with a first transaction;
detecting, responsive to generating the index data, a commit operation in the first subset of database operations that committed the first transaction; and
recovering, responsive to detecting the commit operation, the first transaction in a target data table using the recovery log and the first net change data associated with the first transaction in the progress record.

### Claim 12 (depends on 11)

The computer usable program product of claim 11, wherein the stored program instructions are stored in a computer readable storage device in a data processing system, and wherein the stored program instructions are transferred over a network from a remote data processing system.

### Claim 13 (depends on 11)

The computer usable program product of claim 11, wherein the stored program instructions are stored in a computer readable storage device in a server data processing system, and wherein the stored program instructions are downloaded over a network to a remote data processing system for use in a computer readable storage device associated with the remote data processing system, further comprising:
program instructions to meter use of the computer usable code associated with the request; and
program instructions to generate an invoice based on the metered use.

### Claim 14 (depends on 11)

The computer usable program product of claim 11, further comprising:
generating, responsive to extracting the recovery data at the end of the first specified time interval, additional index data for the progress record associated with the first time interval, wherein the progress record includes a second data field for storing data representative of a second net change to the data table resulting from a second subset of the set of database operations, wherein the second subset of database operations are associated with a second transaction.

### Claim 15 (depends on 14)

The computer usable program product of claim 14, further comprising:
detecting, responsive to generating the additional index data, that the second subset of database operations lack a terminating operation on the second transaction during the first specified time interval.

### Claim 16 (depends on 15)

The computer usable program product of claim 15, further comprising:
generating, responsive to detecting the lack of a terminating operation, an accumulator data entry representative of the second transaction, wherein the accumulator data entry provides an indication of transactions to check for changes after a second specified time interval subsequent to the first specified time interval.

### Claim 17

A computer system comprising a processor and one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable by the processor to cause the processor to perform operations comprising:
extracting, at the end of a first specified time interval, recovery data from a recovery log for a data table corresponding to a set of database operations on the data table that occurred during the first specified time interval;
generating, responsive to extracting the recovery data at the end of the first specified time interval, index data for a progress record associated with the first time interval, wherein the progress record includes a first data field for storing data representative of a first net change to the data table resulting from a first subset of the set of database operations, wherein the first subset of database operations are associated with a first transaction;
detecting, responsive to generating the index data, a commit operation in the first subset of database operations that committed the first transaction; and
recovering, responsive to detecting the commit operation, the first transaction in a target data table using the recovery log and the first net change data associated with the first transaction in the progress record.

### Claim 18 (depends on 17)

The computer system of claim 17, further comprising:
generating, responsive to extracting the recovery data at the end of the first specified time interval, additional index data for the progress record associated with the first time interval, wherein the progress record includes a second data field for storing data representative of a second net change to the data table resulting from a second subset of the set of database operations, wherein the second subset of database operations are associated with a second transaction.

### Claim 19 (depends on 18)

The computer system of claim 18, further comprising:
detecting, responsive to generating the additional index data, that the second subset of database operations lack a terminating operation on the second transaction during the first specified time interval.

### Claim 20 (depends on 19)

The computer system of claim 19, further comprising:
generating, responsive to detecting the lack of a terminating operation, an accumulator data entry representative of the second transaction, wherein the accumulator data entry provides an indication of transactions to check for changes after a second specified time interval subsequent to the first specified time interval.
