# US 10,769,029 B2 · Accessing records of a backup file in a network storage

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

- Number: US 10,769,029 B2
- Document ID: US10769029B2
- Status: Granted
- Kind: B2
- Application number: 15/356,147
- Filed: 2016-11-18
- Published: 2018-05-24
- Granted: 2020-09-08
- Earliest claimed: 2016-11-18
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ernesto E. Figueroa; Robert S. Gensler, Jr.; Jeffrey R. Suarez
- Web page: https://patentgrep.com/patent/US10769029B2

## CPC

- G06F 11/1464: {for networked environments}
- G06F 11/1466: {to make the backup process non-disruptive}
- G06F 11/1469: {Backup restoration techniques}
- G06F 2201/825: the problem or solution involving locking
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Provided are a computer program product, system, and method for accessing records of a backup file in a network storage. A backup file comprises a sequential file of metadata records and data set records is processed. The metadata records include metadata on data of data sets in the data set records. Backup objects store the metadata and the data set records in the backup file. A determination is made of at least one container in the network storage to store the backup objects. Backup object information indicates for each of the backup objects, an order of the metadata or data set record, stored in the backup object, in the backup file, and a container of the at least one container in which the backup object is stored. Multiple of the backup objects are concurrently transmitted to the network storage to concurrently write to the at least one container.

## Claims

### Claim 1

A computer program product for maintaining a backup file in in a network storage over a network, wherein the computer program product comprises a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:
processing a backup file comprising a sequential file of metadata records and data set records, wherein the metadata records include metadata on data of data sets in the data set records;
generating backup objects to store the metadata and the data set records in the backup file;
determining containers in the network storage to store the backup objects offered by at least one storage service;
generating backup object information indicating, for each backup object of the backup objects, an order of the data set records in the backup file, stored in the backup object, and a container name of a container in the network storage offered by one of the at least on storage service to store the backup object;
determining, from the backup object information for the backup objects, containers for the backup objects; and
concurrently transmitting multiple of the backup objects to the network storage over the network to concurrently write to the containers determined from the backup object information for the backup objects being transmitted.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the backup objects are concurrently transmitted in the order indicated in the backup object information for the backup objects.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein one backup object is generated for each separate metadata record and at least one backup object is created for each logical grouping of data in data sets.

### Claim 4 (depends on 3)

The computer program product of claim 3, wherein the generating the backup object for one of the metadata records further comprises:
determining whether a metadata record is comprised of a plurality of sub-metadata records; and
generating a backup object for each of the sub-metadata records to be stored in a container.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein the metadata records for which backup objects are generated include characterizations of the data sets in the backup file including at least two of header records, list of data sets record, at least one volume record for each volume of the data sets in the backup file, at least one data set record for data in the at least one volume.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the operations further comprise:
sending multiple read requests to concurrently read a plurality of the backup objects in the containers in the network storage;
in response to receiving the read backup objects, determining, from the backup object information for the read backup objects, the order of the metadata and data set records in the received backup objects in the backup file; and
generating a reassembled backup file comprising the metadata and data set records in the received backup objects in the determined order.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein the operations further comprise:
generating for each of the backup objects a lock prefix;
requesting a read lock for the lock prefix for a backup object to read, wherein the read lock for the lock prefix is granted if there is no write lock for the lock prefix in a lock queue; and
adding the read lock for the lock prefix to the lock queue in response to receiving the read lock for the lock prefix, wherein a read request for the backup object is transmitted to the network storage in response to receiving the read lock for the lock prefix of the backup object.

### Claim 8 (depends on 1)

The computer program product of claim 1, wherein the operations further comprise:
generating for each of the backup objects a lock prefix;
requesting a write lock for the lock prefix of a backup object to write to the network storage; and
adding a write lock for the lock prefix for the backup object to write to a lock queue, wherein the backup object is written in response to granting the write lock for the lock prefix of the backup object, wherein the write lock for the lock prefix in the lock queue prevents read or write requests directed to the backup object while the write lock for the lock prefix is in the lock queue.

### Claim 9 (depends on 1)

The computer program product of claim 1, wherein the backup objects for the metadata records comprise inventory objects having information on attributes of data sets in at least one of the backup objects.

### Claim 10 (depends on 1)

The computer program product of claim 1, wherein the operations further comprise:
receiving a restore request to restore a subset of the data sets in the backup file transmitted to the network storage;
determining the backup objects having the subset of the data sets and the metadata records for the subset of the data sets;
sending multiple read requests to concurrently read a plurality of the determined backup objects in the containers in the network storage; and
restoring data sets at a client system from the read backup objects.

### Claim 11

A system for maintaining a backup file in a network storage over a network, comprising:
processor; and
a computer readable storage medium having computer readable program instructions executed by the processor to perform operations, the operations comprising:
processing a backup file comprising a sequential file of metadata records and data set records, wherein the metadata records include metadata on data of data sets in the data set records;
generating backup objects to store the metadata and the data set records in the backup file;
determining containers in the network storage to store the backup objects offered by at least one storage service;
generating backup object information indicating, for each backup object of the backup objects, an order of data set records in the backup file, stored in the backup object, and a container name of a container in the network storage offered by one of the at least on storage service to store the backup object;
determining, from the backup object information for the backup objects, containers for the backup objects; and
concurrently transmitting multiple of the backup objects to the network storage over the network to concurrently write to the containers determined from the backup object information for the backup objects being transmitted.

### Claim 12 (depends on 11)

The system of claim 11, wherein one backup object is generated for each separate metadata record and at least one backup object is created for each logical grouping of data in data sets.

### Claim 13 (depends on 11)

The system of claim 11, wherein the operations further comprise:
sending multiple read requests to concurrently read a plurality of the backup objects in the containers in the network storage;
in response to receiving the read backup objects, determining, from the backup object information for the read backup objects, the order of the metadata and data set records in the received backup objects in the backup file; and
generating a reassembled backup file comprising the metadata and data set records in the received backup objects in the determined order.

### Claim 14 (depends on 13)

The system of claim 13, wherein the operations further comprise:
generating for each of the backup objects a lock prefix;
requesting a read lock for the lock prefix for a backup object to read, wherein the read lock for the lock prefix is granted if there is no write lock for the lock prefix in a lock queue; and
adding the read lock for the lock prefix to the lock queue in response to receiving the read lock for the lock prefix, wherein a read request for the backup object is transmitted to the network storage in response to receiving the read lock for the lock prefix of the backup object.

### Claim 15 (depends on 11)

The system of claim 11, wherein the operations further comprise:
generating for each of the backup objects a lock prefix;
requesting a write lock for the lock prefix of a backup object to write to the network storage; and
adding a write lock for the lock prefix for the backup object to write to a lock queue, wherein the backup object is written in response to granting the write lock for the lock prefix of the backup object, wherein the write lock for the lock prefix in the lock queue prevents read or write requests directed to the backup object while the write lock for the lock prefix is in the lock queue.

### Claim 16 (depends on 11)

The system of claim 11, wherein the operations further comprise:
receiving a restore request to restore a subset of the data sets in the backup file transmitted to the network storage;
determining the backup objects having the subset of the data sets and the metadata records for the subset of the data sets;
sending multiple read requests to concurrently read a plurality of the determined backup objects in the at least one of the containers in the network storage; and
restoring data sets at a client system from the read backup objects.

### Claim 17

A method for maintaining a backup file in a network storage over a network, comprising:
processing a backup file comprising a sequential file of metadata records and data set records, wherein the metadata records include metadata on data of data sets in the data set records;
generating backup objects to store the metadata and the data set records in the backup file;
determining containers in the network storage to store the backup objects offered by at least one storage service;
generating backup object information indicating, for each backup object of the backup objects, an order of the data set records in the backup file, stored in the backup object, and a container name of a container in the network storage offered by one of the at least on storage service to store the backup object is stored;
determining, from the backup object information for the backup objects, containers for the backup objects; and
concurrently transmitting multiple of the backup objects to the network storage over the network to concurrently write to the containers determined from the backup object information for the backup objects being transmitted.

### Claim 18 (depends on 17)

The method of claim 17, wherein one backup object is generated for each separate metadata record and at least one backup object is created for each logical grouping of data in data sets.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
sending multiple read requests to concurrently read a plurality of the backup objects in the containers in the network storage;
in response to receiving the read backup objects, determining, from the backup object information for the read backup objects, the order of the metadata and data set records in the received backup objects in the backup file; and
generating a reassembled backup file comprising the metadata and data set records in the received backup objects in the determined order.

### Claim 20 (depends on 19)

The method of claim 19, further comprising:
generating for each of the backup objects a lock prefix;
requesting a read lock for the lock prefix for a backup object to read, wherein the read lock for the lock prefix is granted if there is no write lock for the lock prefix in a lock queue; and
adding the read lock for the lock prefix to the lock queue in response to receiving the read lock for the lock prefix, wherein a read request for the backup object is transmitted to the network storage in response to receiving the read lock for the lock prefix of the backup object.

### Claim 21 (depends on 17)

The method of claim 17, further comprising:
generating for each of the backup objects a lock prefix;
requesting a write lock for the lock prefix of a backup object to write to the network storage; and
adding a write lock for the lock prefix for the backup object to write to a lock queue, wherein the backup object is written in response to granting the write lock for the lock prefix of the backup object, wherein the write lock for the lock prefix in the lock queue prevents read or write requests directed to the backup object while the write lock for the lock prefix is in the lock queue.

### Claim 22 (depends on 17)

The method of claim 17, further comprising:
receiving a restore request to restore a subset of the data sets in the backup file transmitted to the network storage;
determining the backup objects having the subset of the data sets and the metadata records for the subset of the data sets;
sending multiple read to concurrently read a plurality of the determined backup objects in the containers in the network storage; and
restoring data sets at a client system from the read backup objects.
