# US 10,769,023 B1 · Backup of structured query language server to object-based data storage service

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

- Number: US 10,769,023 B1
- Document ID: US10769023B1
- Status: Granted
- Kind: B1
- Application number: 14/574,140
- Filed: 2014-12-17
- Granted: 2020-09-08
- Earliest claimed: 2014-12-17
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Steven John Abraham, Jr.
- Web page: https://patentgrep.com/patent/US10769023B1

## CPC

- G06F 11/1451: {by selection of backup contents}
- G06F 16/214: {Database migration support}
- G06F 11/1456: {Hardware arrangements for backup}
- G06F 11/1458: {Management of the backup or restore process}
- G06F 11/1464: {for networked environments}
- G06F 16/119: {Details of migration of file systems (migration mechanisms in storage systems G06F3/0647)}
- G06F 11/0766: {Error or fault reporting or storing}
- G06F 2201/81: Threshold
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A structured query language server may receive a command from a backup control server to provision a virtual device and perform a backup operation on the structured query language server. The structured query language server may be configured to write data to the virtual device in order to be transmitted to a data storage service. The backup and restore operations directed to the structured query language server may include a web service application programming interface request to the data storage service to cause the data written to the virtual device to be stored as a data object in the data storage service.

## Claims

### Claim 1

A computer-implemented method, comprising:
transmitting a first request, at a backup manager of one or more computing devices to a virtual device application programming interface, to create a virtual device to which a structured query language (SQL) server can write;
transmitting, to the SQL server, a second request to write a backup of a database managed by the SQL server to the virtual device;
buffering a portion of the backup written to the virtual device for the backup in a volatile memory corresponding to the virtual device, wherein the portion of the backup is compressed prior to the portion of the backup being written to the virtual device;
as a result of a determination that a size of the portion of the backup buffered in volatile memory has not met a threshold size, looping by the backup manager such that additional data is added to the portion of the backup;
transmitting at the backup manager, as a result of the size of the portion of the backup buffered in the volatile memory reaching the threshold size, a web service application programming interface request to an object-based data storage service to transfer the portion of the backup from the volatile memory to the object-based data storage service to be stored in a data object in the object-based data storage service; and
receiving a status update related to the portion of the backup written to the virtual device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the method further comprises generating the web service application programming interface request to include the portion of the backup.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the portion of the backup is compressed in response to a backup command.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the virtual device application programming interface enables structured query language server backup operations and/or restore operations without storing the database managed by the SQL server to a disk prior to the web service application programming interface request being transmitted to the object-based data storage service.

### Claim 5

A system, comprising:
one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the system to at least:
transmit a first request, at least in part by a backup manager, to a virtual device application programming interface to create a virtual device to which a structured query language (SQL) server can write;
transmit a second request, to a database management system of the SQL server, to write a backup of a database managed by the database management system to the virtual device;
buffer a portion of the backup written to the virtual device for the backup of the database in a volatile memory corresponding to the virtual device, wherein the portion of the backup is compressed prior to the portion of the backup being written to the virtual device;
as a result of a determination that a size of the portion of the backup buffered in the volatile memory has not met a threshold size, loop by the backup manager such that additional data is added to the portion of the backup;
cause, as a result of the size of the portion of the backup buffered in the volatile memory reaching the threshold size, a web service application programming interface request to be transmitted to an object-based data storage service to transfer the portion of the backup from the volatile memory to the object-based data storage service to be stored in a data object in the object-based data storage service; and
receive a status update related to the portion of the backup written to the virtual device.

### Claim 6 (depends on 5)

The system of claim 5, wherein the database management system is a database server.

### Claim 7 (depends on 5)

The system of claim 5, wherein the instructions further cause the system to store the portion of the backup in a buffer of the virtual device, wherein the buffer includes the volatile memory.

### Claim 8 (depends on 5)

The system of claim 5, wherein, in a backup operation, the virtual device is a source and the object-based data storage service is a target, and, wherein, in a restore operation, the object-based data storage service is the source and the virtual device is the target.

### Claim 9 (depends on 5)

The system of claim 5, wherein the object-based data storage service includes an on-demand data storage service or an archival data storage service.

### Claim 10 (depends on 5)

The system of claim 5, wherein the instructions further cause the system to:
receive messages from the virtual device, wherein the messages include the status update related to the portion of the backup written to the virtual device; and
create a transaction log to store the received messages.

### Claim 11 (depends on 5)

The system of claim 5, wherein the instructions further cause the system to:
retrieve, at a data buffer, the portion of the backup written to the virtual device; and
forward the portion of the backup, from the data buffer, to the object-based data storage service, in response to the web service application programming interface request being transmitted.

### Claim 12 (depends on 5)

The system of claim 5, wherein the virtual device enables database management system restore operations from the object-based data storage service to the database management system via the virtual device.

### Claim 13

A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
transmit a first request, at a backup manager of one or more computing devices of the computer system, to a virtual device application programming interface to create a virtual device to which a structured query language (SQL) server can write;
transmit a second request, to a database management system of the SQL server, to write a backup of a database managed by the database management system to the virtual device;
buffer a portion of the backup written to the virtual device for the backup of the database in a volatile memory corresponding to the virtual device, wherein the portion of the backup is compressed prior to the portion of the backup being written to the virtual device;
as a result of a determination that a size of the portion of the backup buffered in the volatile memory has not been reached, loop by the backup manager such that additional data is added to the portion of the backup;
transmit at the backup manager, as a result of a determination that the size of the portion of the backup buffered in the volatile memory has reached a threshold size, a web service application programming interface request as a third request to an object-based data storage service to transfer the portion of the backup from the volatile memory to the object-based data storage service to be stored in a data object in the object-based data storage service;
and receive a status update related to the portion of the backup written to the virtual device.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the database management system is a database server.

### Claim 15 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the instructions further cause the computer system to store the portion of the backup in a buffer of the virtual device, wherein the buffer includes the volatile memory.

### Claim 16 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein, in a backup operation, the virtual device is a source and the object-based data storage service is a target, and, wherein, in a restore operation, the object-based data storage service is the source and the virtual device is the target.

### Claim 17 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the object-based data storage service includes an on-demand data storage service or an archival data storage service.

### Claim 18 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, further comprising instructions that, if executed by the one or more processors, cause the computer system to:
receive messages from the virtual device, wherein the messages include the status update related to the portion of the backup written to the virtual device; and
update a transaction log based at least in part on the received messages.

### Claim 19 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein further comprising instructions that, if executed by the one or more processors, cause the computer system to:
retrieve, at a data buffer, the portion of the backup written to the virtual device; and
forward the portion of the backup, from the data buffer, to the object-based data storage service, in response to the third request.

### Claim 20 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, wherein the virtual device enables database management system restore operations from the object-based data storage service to the database management system via the virtual device.
