# US 12,111,814 B2 · Logically consistent archive with minimal downtime

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

- Number: US 12,111,814 B2
- Document ID: US12111814B2
- Status: Granted
- Kind: B2
- Application number: 18/207,619
- Filed: 2023-06-08
- Published: 2023-10-05
- Granted: 2024-10-08
- Earliest claimed: 2021-01-25
- Assignees: Micro Focus LLC
- Applicants: Micro Focus LLC
- Inventors: Daniel S. Sanders; Peeyush Paliwal; Polina Alber
- Web page: https://patentgrep.com/patent/US12111814B2

## CPC

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

## Abstract

A sub-archive is initiated. The sub-archive saves changes that have occurred since a previous final archive. Changes to an operational database (i.e., the operational database that is being archived) are allowed during the first sub-archive. A final archive is initiated in series after the sub-archive has completed. The final archive does not allow changes to the operational database when the final archive is active. In one embodiment, the sub-archive may comprise a plurality of sub-archives that depend on an amount of outstanding changes that exist in the operational database.

## Claims

### Claim 1

A system comprising:
a microprocessor; and
a non-transitory computer readable medium, coupled with the microprocessor and comprising microprocessor readable and executable instructions that, when executed by the microprocessor, cause the microprocessor to:
initiate an archive process on an operational database, wherein the archive process comprises a sub-archive and a final archive, wherein the sub-archive comprises a plurality of sub-archives, wherein the sub-archive saves changes in the operational database that have occurred since a previous final archive, wherein a number of sub-archives in the plurality of sub-archives is based on a number of outstanding changes in the operational database since the previous final archive, wherein a delay time between each of the plurality of sub-archives is based on the number of outstanding changes in the operational database since the previous final archive and a series of progressively smaller incremental time values, wherein changes to the operational database are allowed during the sub-archive, and wherein the sub-archive and the final archive run in series.

### Claim 2 (depends on 1)

The system of claim 1, further comprising:
executable instructions that, when executed by the microprocessor, cause the microprocessor to:
receive a request from a user to access the operational database, and in response to the request to access the operational database, create a registration record for the user, wherein when the user is done accessing the operational database or when the user's access has been terminated the registration record is deleted; and
determine if the registration record exists:
if the registration record exists, then do not initiate the final archive; and
if the registration record does not exist, then initiate the final archive, wherein no changes are allowed to the operational database during the final archive.

### Claim 3 (depends on 2)

The system of claim 2, wherein the registration record includes a heartbeat field indicating the user is actively accessing the operational database.

### Claim 4 (depends on 3)

The system of claim 3, further comprising:
updating the heartbeat field to terminate a heartbeat thread when the user is done accessing the operational database.

### Claim 5 (depends on 1)

The system of claim 1, wherein the number of sub-archives is further based on at least one of: a defined number of sub-archives, and a maximum number of sub-archives.

### Claim 6 (depends on 1)

The system of claim 1, wherein the sub-archive and the final archive comprise a complete archive.

### Claim 7 (depends on 1)

The system of claim 1, wherein the delay time between each of the plurality of sub-archives is further based on an administered value.

### Claim 8 (depends on 1)

The system of claim 1, wherein the microprocessor readable and executable instructions further cause the microprocessor to:
receive a request from a user to access the operational database, and in response to the request to access the operational database, read an archive field that indicates if the final archive is active, and wherein if the final archive is active, all requests to access the operational database are denied.

### Claim 9

A method, comprising:
initiating, by a microprocessor, an archive process on an operational database, wherein the archive process comprises a sub-archive and a final archive, wherein the sub-archive comprises a plurality of sub-archives, wherein the sub-archive saves changes that have occurred since a previous final archive, wherein a number of sub-archives in the plurality of sub-archives is based on a number of outstanding changes in the operational database since the previous final archive, wherein a delay time between each of the plurality of sub-archives is based on the number of outstanding changes in the operational database since the previous final archive and a series of progressively smaller incremental time values, wherein changes to the operational database are allowed during the sub-archive, and wherein the sub-archive and the final archive run in series.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
receiving a request from a user to access the operational database, and in response to the request to access the operational database, creating a registration record for the user, wherein when the user is done accessing the operational database or when the user's access has been terminated, the registration record is deleted; and
determining if the registration record exists:
if the registration record exists, then not initiating the final archive; and
if the registration record does not exist, then initiating the final archive, wherein changes to the operational database are not allowed during the final archive.

### Claim 11 (depends on 10)

The method of claim 10, wherein the registration record includes a heartbeat field indicating the user is actively accessing the operational database.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
updating the heartbeat field to terminate a heartbeat thread when the user is done accessing the operational database.

### Claim 13 (depends on 9)

The method of claim 9, wherein the number of sub-archives is further based on at least one of: a defined number of sub-archives, and a maximum number of sub-archives.

### Claim 14 (depends on 9)

The method of claim 9, wherein the sub-archive and the final archive comprise a complete archive.

### Claim 15 (depends on 9)

The method of claim 9, wherein the delay time between each of the plurality of sub-archives is further based on an administered value.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
receiving a request from a user to access the operational database, and in response to the request to access the operational database, reading an archive field that indicates if the final archive is active, and wherein if the final archive is active, all requests to access the operational database are denied.

### Claim 17

A non-transitory computer readable medium having stored thereon instructions that cause a microprocessor to execute a method, the method comprising:
instructions to initiate an archive process on an operational database, wherein the archive process includes a sub-archive and a final archive, wherein the sub-archive comprises a plurality of sub-archives, wherein the sub-archive saves changes that have occurred since a previous final archive, wherein a number of sub-archives in the plurality of sub-archives is based on a number of outstanding changes in the operational database since the previous final archive, wherein a delay time between each of the plurality of sub-archives is based on the number of outstanding changes in the operational database since the previous final archive and a series of progressively smaller incremental time values, wherein changes to the operational database are allowed during the sub-archive, and wherein the sub-archive and the final archive run in series.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, further comprising:
instructions to determine a request to access the operational database is received from a user, and in response to receiving the request from the user, instructions to create a registration record for the user, wherein when the user is done accessing the operational database or when the user's access has been terminated, the registration record is deleted; and
instructions to determine if the registration record exists:
if the registration record exists, then instructions to not initiate the final archive; and
if the registration record does not exist, then instructions to initiate the final archive, wherein no changes are allowed to the operational database during the final archive.

### Claim 19 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the number of sub-archives is further based on at least one of: a defined number of sub-archives, and a maximum number of sub-archives.

### Claim 20 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the delay time of each of the plurality of sub-archives is further based on an administered value.
