# US 12,007,857 B2 · Non-blocking backup in a log replay node for tertiary initialization

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

- Number: US 12,007,857 B2
- Document ID: US12007857B2
- Status: Granted
- Kind: B2
- Application number: 17/575,879
- Filed: 2022-01-14
- Published: 2022-05-05
- Granted: 2024-06-11
- Earliest claimed: 2018-06-21
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Simhachala Sasikanth Gottapu; Yahong Wang; Nandan Marathe; Anant Agarwal
- Web page: https://patentgrep.com/patent/US12007857B2

## CPC

- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/1407: {Checkpointing the instruction stream}
- G06F 11/1464: {for networked environments}
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/2041: {with more than one idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2056: {by mirroring}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1466: {to make the backup process non-disruptive}
- G06F 2201/80: Database-specific techniques
- G06F 2201/87: Monitoring of transactions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are system, method, and computer program product embodiments for non-blocking backup for tertiary initialization in a log replay only node. An embodiment operates by performing a standard log replay on a secondary server and briefly suspending the standard log replay in response to tertiary initialization. Further, the secondary server may determine backup block information and perform a page-aligned backup process from the secondary server to a tertiary server. Additionally, the secondary server may determine log replay block information, and perform a modified log replay concurrently with the backup process based on the backup block information.

## Claims

### Claim 1

A method for a secondary server within a three-tiered replication system, comprising:
determining, by the secondary server, whether a backup process is in progress on the secondary server based on backup block information, wherein the secondary server operates as a mirror mode of a primary server of the three-tiered replication system, and the secondary server is a source node of a tertiary server;
determining, by the secondary server, whether a replay list containing logical blocks indicated by replay block information intersects with a backup list containing logical blocks indicated by the backup block information;
determining whether one or more logical blocks contained in the replay list have been backed up;
upon a determination that the one or more logical blocks contained in the replay list have been backed up, replaying log information to determine the replay block information that identifies the one or more logical blocks to be modified in accordance with the log information; and
performing, by the secondary server, a page-aligned backup process from the secondary server to the tertiary server.

### Claim 2 (depends on 1)

The method of claim 1, wherein upon a determination that the one or more logical blocks contained in the replay list have not been backed up, the method further comprises:
locking the backup list to prevent backup block identifiers of the backup block information from being modified; and
performing the backup process on the one or more logical blocks contained in the replay list that have not been backed up.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
upon completion of the backup process on the one or more logical blocks, unlocking the backup list to allow modifications to the backup block identifiers of the backup block information.

### Claim 4 (depends on 2)

The method of claim 2, wherein the performing the backup process on the one or more logical blocks comprises:
determining a modified replay list based on an intersection of the replay list and the backup list;
updating the modified replay list by removing logical blocks that have already been backed up;
determining a page including a lowest logical block of the modified replay list identified by replay block identifiers of the replay block information; and
performing the backup process on logical blocks contained in the page.

### Claim 5 (depends on 4)

The method of claim 4, wherein the page is a first page, and the performing the backup process on the one or more logical blocks further comprises:
identifying a second page including a highest logical block of the modified replay list identified by the replay block identifiers of the replay block information;
identifying each logical block belonging to a page between the first page and the second page; and
performing the backup process on each logical block belonging to the page between the first page and the second page.

### Claim 6 (depends on 2)

The method of claim 2, wherein the determining whether the one or more logical blocks contained in the replay list have been backed up comprises:
determining whether a status of the backup process included in the backup block identifier for a replay logical block indicates that the replay logical block has been backed up by the backup process.

### Claim 7 (depends on 6)

The method of claim 6, wherein the status of the backup process indicates an index of a logical block being backed up, and the method comprises:
determining the replay logical block has been backed up when the index of the logical block being backed up is greater than an index of the replay logical block.

### Claim 8 (depends on 1)

The method of claim 1, wherein the determining whether the backup process is in progress comprises:
checking a status of the backup process included in the backup block information.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determining whether the replay list intersects with the backup list comprises:
comparing backup block identifiers of the backup block information to replay block identifiers of the replay block information; and
determining a logical block identified by a same backup block identifier and a replay block identifier.

### Claim 10 (depends on 1)

The method of claim 1, wherein the determining whether the backup process is in progress is performed by a log replay module of a secondary server of the three-tiered replication system.

### Claim 11

A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
determining whether a backup process is in progress based on backup block information, wherein the computing device is a secondary server of a three-tiered replication system, the secondary server operates as a mirror mode of a primary server of the three-tiered replication system, and the secondary server is a source node of a tertiary server;
determining whether a replay list containing logical blocks indicated by replay block information intersects with a backup list containing logical blocks indicated by the backup block information;
determining whether one or more logical blocks contained in the replay list have been backed up;
upon a determination that the one or more logical blocks contained in the replay list have been backed up, replaying log information to determine the replay block information that identifies the one or more logical blocks to be modified in accordance with the log information; and
performing a page-aligned backup process from the secondary server to the tertiary server.

### Claim 12 (depends on 11)

The non-transitory computer-readable device of claim 11, wherein upon a determination that the one or more logical blocks contained in the replay list have not been backed up, the operations further comprise:
locking the backup list to prevent backup block identifiers of the backup block information from being modified; and
performing the backup process on the one or more logical blocks contained in the replay list that have not been backed up.

### Claim 13 (depends on 12)

The non-transitory computer-readable device of claim 12, the operations further comprising:
upon completion of the backup process on the one or more logical blocks, unlocking the backup list to allow modifications to the backup block identifiers of the backup block information.

### Claim 14 (depends on 12)

The non-transitory computer-readable device of claim 12, wherein the performing the backup process on the one or more logical blocks comprises:
determining a modified replay list based on an intersection of the replay list and the backup list;
updating the modified replay list by removing logical blocks that have already been backed up;
determining a page including a lowest logical block of the modified replay list identified by replay block identifiers of the replay block information; and
performing the backup process on logical blocks contained in the page.

### Claim 15 (depends on 14)

The non-transitory computer-readable device of claim 14, wherein the page is a first page, and the performing the backup process on the one or more logical blocks further comprises:
identifying a second page including a highest logical block of the modified replay list identified by the replay block identifiers of the replay block information;
identifying each logical block belonging to a page between the first page and the second page; and
performing the backup process on each logical block belonging to the page between the first page and the second page.

### Claim 16 (depends on 11)

The non-transitory computer-readable device of claim 11, wherein the determining whether the backup process is in progress comprises:
checking a status of the backup process included in the backup block information.

### Claim 17 (depends on 11)

The non-transitory computer-readable device of claim 11, wherein the determining whether the replay list intersects the backup list comprises:
comparing backup block identifiers of the backup block information to replay block identifiers of the replay block information; and
determining a logical block identified by a same backup block identifier and a replay block identifier.

### Claim 18

A secondary server system, comprising:
a memory; and
at least one processor coupled to the memory and configured to:
determine whether a backup process is in progress based on backup block information, wherein the secondary server system is included in a three-tiered replication system, the secondary server system operates as a mirror mode of a primary server of the three-tiered replication system, and the secondary server system is a source node of a tertiary server;
determine whether a replay list containing logical blocks indicated by replay block information intersects with a backup list containing logical blocks indicated by the backup block information;
determine whether one or more logical blocks contained in the replay list have been backed up;
upon a determination that the one or more logical blocks contained in the replay list have been backed up, replay log information to determine the replay block information that identifies the one or more logical blocks to be modified in accordance with the log information and
performing a page-aligned backup process from the secondary server system to the tertiary server.

### Claim 19 (depends on 18)

The secondary server system of claim 18, wherein upon a determination that the one or more logical blocks contained in the replay list have not been backed up, the at least one processor is further configured to:
lock the backup list to prevent backup block identifiers of the backup block information from being modified; and
perform the backup process on the one or more logical blocks contained in the replay list that have not been backed up.

### Claim 20 (depends on 19)

The secondary server system of claim 19, wherein the at least one processor is further configured to:
upon completion of the backup process on the one or more logical blocks, unlock the backup list to allow modifications to the backup block identifiers of the backup block information.
