Restore of secondary data using thread pooling
First Claim
1. A system for restoring data from secondary storage to primary storage, the system comprising:
- a secondary storage controller computer comprising computer hardware and in communication with one or more secondary storage devices in a secondary storage subsystem, the secondary storage controller computer configured to;
maintain a look-ahead thread pool having a number of look-ahead restore threads executing on one or more processors of the secondary storage controller computer;
receive a restore request to restore a secondary copy of primary data from the one or more secondary storage devices in the secondary storage subsystem to one or more primary storage devices in a primary storage subsystem;
select at least a first look-ahead restore thread in the look-ahead thread pool to use to process the restore request;
retrieve the secondary copy from the one or more secondary storage devices, by causing the first look-ahead thread in the look-ahead thread pool to (i) process a data structure that includes a number of data blocks arranged in a first order within the secondary copy, and (ii) generate a second order for reading the number of data blocks that is different from the first order;
read the number of data blocks from the one or more secondary storage devices according to the second order;
forward the retrieved secondary copy to the primary storage subsystem for storage on the one or more primary storage devices; and
adjust, based on one or more performance metrics associated with the first look-ahead restore thread of the look-ahead thread pool, the number of look-ahead restore threads in the look-ahead thread pool.
2 Assignments
0 Petitions
Accused Products
Abstract
A system according to certain aspects may include a secondary storage controller computer configured to: in response to a first instruction to obtain a first secondary copy of a first data set from a secondary storage device(s), the first instruction associated with a first restore operation: instantiate a first restore thread on a processor of the secondary storage controller computer; using the first restore thread, retrieve the first secondary copy from the secondary storage device(s); and forward the retrieved first secondary copy to a primary storage subsystem for storage; and in response to a second instruction to obtain a second secondary copy of a second data set from the secondary storage device(s), the second instruction associated with a second restore operation: using the first restore thread, retrieve the second secondary copy from the secondary storage device(s); and forward the retrieved second secondary copy to the primary storage subsystem for storage.
86 Citations
18 Claims
-
1. A system for restoring data from secondary storage to primary storage, the system comprising:
a secondary storage controller computer comprising computer hardware and in communication with one or more secondary storage devices in a secondary storage subsystem, the secondary storage controller computer configured to; maintain a look-ahead thread pool having a number of look-ahead restore threads executing on one or more processors of the secondary storage controller computer; receive a restore request to restore a secondary copy of primary data from the one or more secondary storage devices in the secondary storage subsystem to one or more primary storage devices in a primary storage subsystem; select at least a first look-ahead restore thread in the look-ahead thread pool to use to process the restore request; retrieve the secondary copy from the one or more secondary storage devices, by causing the first look-ahead thread in the look-ahead thread pool to (i) process a data structure that includes a number of data blocks arranged in a first order within the secondary copy, and (ii) generate a second order for reading the number of data blocks that is different from the first order; read the number of data blocks from the one or more secondary storage devices according to the second order; forward the retrieved secondary copy to the primary storage subsystem for storage on the one or more primary storage devices; and adjust, based on one or more performance metrics associated with the first look-ahead restore thread of the look-ahead thread pool, the number of look-ahead restore threads in the look-ahead thread pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method for restoring data from secondary storage to primary storage, the method comprising:
with a secondary storage controller computer comprising one or more processors and residing in a secondary storage subsystem, maintaining a look-ahead thread pool having a number of look-ahead restore threads executing on the one or more processors of the secondary storage controller computer; receiving a restore request to restore a secondary copy of primary data from one or more secondary storage devices in the secondary storage subsystem to one or more primary storage devices in a primary storage subsystem; selecting at least a first look-ahead restore thread in the look-ahead thread pool to be used to process the restore request; retrieving the secondary copy from the one or more secondary storage devices, by causing the first look-ahead thread in the look-ahead thread pool to (i) process a data structure that includes a number of data blocks arranged in a first order within the secondary copy, and (ii) generate a second order for reading the number of data blocks that is different from the first order; reading the number of data blocks from the one or more secondary storage devices according to the second order; forwarding the retrieved secondary copy to the primary storage subsystem for storage on the one or more primary storage devices; and adjusting, based on one or more performance metrics associated with the first look-ahead restore thread of the look-ahead thread pool, the number of look-ahead restore threads in the look-ahead thread pool. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
Specification