Data storage application programming interface
First Claim
Patent Images
1. A computer-implemented method for an archival data storage system, comprising:
- under the control of one or more computer systems of an archival data storage system;
receiving a retrieval request to retrieve a data object from persistent storage, where at least a portion of the data object is encoded based at least in part on a data encoding scheme to generate a set of encoded data components stored in individual data volume components of a set of data volume components, the retrieval request generating a data object identifier associated with the data object;
initiating a retrieval job to obtain the set of encoded data components from the set of data volume components in response to the retrieval request;
providing, to a computer system associated with the retrieval request, a retrieval job identifier associated with the retrieval job, where the retrieval job identifier comprises information that enables, when included in a status request, the computer system to provide status information associated with the retrieval job and, when included in a download request, to provide the data object;
erasure decoding the set of encoded data components to form a set of decoded data components;
combining the set of decoded data components to obtain the data object;
performing a data integrity check on the data object using payload integrity validation information encoded in the data object identifier;
receiving the download request encoding the retrieval job identifier; and
providing the data object for download in response to the download request.
1 Assignment
0 Petitions
Accused Products
Abstract
An application programming interface for a data storage service provides a convenient mechanism for clients of the data storage service to access its various capabilities. An API call may be made to initiate a job and in response a job identifier may be provided. A separate API call specifying the job identifier may be made and a response providing information related to the job may result. Various API calls may be used to store data, retrieve data, obtain an inventory of stored data, and to obtain other information relating to stored data.
-
Citations
21 Claims
-
1. A computer-implemented method for an archival data storage system, comprising:
under the control of one or more computer systems of an archival data storage system; receiving a retrieval request to retrieve a data object from persistent storage, where at least a portion of the data object is encoded based at least in part on a data encoding scheme to generate a set of encoded data components stored in individual data volume components of a set of data volume components, the retrieval request generating a data object identifier associated with the data object; initiating a retrieval job to obtain the set of encoded data components from the set of data volume components in response to the retrieval request; providing, to a computer system associated with the retrieval request, a retrieval job identifier associated with the retrieval job, where the retrieval job identifier comprises information that enables, when included in a status request, the computer system to provide status information associated with the retrieval job and, when included in a download request, to provide the data object; erasure decoding the set of encoded data components to form a set of decoded data components; combining the set of decoded data components to obtain the data object; performing a data integrity check on the data object using payload integrity validation information encoded in the data object identifier; receiving the download request encoding the retrieval job identifier; and providing the data object for download in response to the download request. - View Dependent Claims (2, 3, 4, 5)
-
6. A system comprising:
-
one or more processors; and memory with instructions that, as a result of being executed by the one or more processors, cause the system to; receive a first request including a first identifier associated with a data object maintained by a storage system, where at least a portion of the data object is encoded based at least in part on a data encoding scheme to generate a set of encoded data components, wherein an encoded data component of the set of encoded data components is stored in a data volume component of a set of data volume components; initiate a job to retrieve the set of encoded data components from the set of data volume components; receive a second request including a second identifier, where the second identifier is associated with the job and, when included in the second request, causes the system to provide information associated with the job; provide information associated with the job in response to the second request; erasure decode the set of encoded data components to form a set of decoded data components; combine the set of decoded data components to obtain the data object; perform a data integrity check on the data object using payload integrity validation information encoded in the first identifier; receive a third request including the second identifier, where the second identifier is further to, when included in the third request, cause the system to provide the data object; and provide the data object in response to the third request. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium storing thereon instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to:
-
receive a first electronic message comprising a first identifier corresponding to data stored by a storage system, where at least a portion of the data is encoded based at least in part on a data encoding scheme to generate a set of encoded data components stored in individual data volume components of a set of data volume components; initiate a job in connection with the set of encoded data components, where a second identifier is associated with the job and useable to retrieve information associated with the job and the data stored by the storage system; erasure decode the set of encoded data components to form a set of decoded data components; combine the set of decoded data components to obtain the data; perform a data integrity check on the data using payload integrity validation information encoded in the first identifier; receive a second electronic message comprising the second identifier; as a result of receipt of the second electronic message, determine the data stored by the storage system is associated with the job; and provide the data stored by the storage system. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification