Range retrievals from archived data objects according to a predefined hash tree schema
First Claim
1. An archive data storage system, comprising:
- one or more computer processors configured to implement;
an archive data storage back end, configured to store one or more archived data objects, wherein each of the archived data objects is organized according to a plurality of data chunks, wherein each data chunk corresponds to a range of data stored within the archived data object;
an archive data storage front end, configured to;
receive a retrieval request for a range of one or more data chunks of an archived data object, wherein the range of the one or more data chunks is less than the entire archived data object;
in response to receiving the retrieval request;
determine that, when a root node of a hash tree for the requested range is equivalent to a predefined hash tree schema for the entire archived data object, the range of the one or more data chunks is tree-hash aligned;
initiate a retrieval job to obtain the one or more data chunks of the archived data object from the archive data storage system back end; and
stage the obtained one or more data chunks in the archive data storage front end for download;
upon completion of the retrieval job to obtain the one or more data chunks of the archived data object from the archive data storage back end, send a retrieval job completion notification to a client;
receive a download request from the client for at least some of the range of the one or more data chunks; and
in response to receiving the download request;
determine whether a root node of a hash tree for the requested download of the at least some of the range of the one or more data chunks is equivalent to a node of the predefined hash tree schema for the entire archived data object in order to determine whether the root node of the hash tree for the requested download is tree-hash aligned; and
send to the client one or more data chunks matching the at least some of the range and, when the root node of the hash tree for the requested download being tree-hash aligned, a hash value of a root node of a tree hash calculated according to the predefined hash tree schema for the at least some of the range of the one or more data chunks.
1 Assignment
0 Petitions
Accused Products
Abstract
Ranges of data stored within archived data may be retrieved according to a predefined hash tree schema. A retrieval request for a range of one or more data chunks of an archived data object stored in archival data store may be retrieved. In response, the requested range of the archived data object may be determined to be tree-hash aligned. In response to determining that the requested range is tree-hash aligned, a retrieval job may be initiated to obtain the range of one or more data chunks and to stage the one or more data chunks for download. A download request may for one or more of the obtained and staged data chunks, and if determined to be tree-hash aligned, a tree hash root node may be sent to the requesting client in addition to the requested data.
74 Citations
17 Claims
-
1. An archive data storage system, comprising:
one or more computer processors configured to implement; an archive data storage back end, configured to store one or more archived data objects, wherein each of the archived data objects is organized according to a plurality of data chunks, wherein each data chunk corresponds to a range of data stored within the archived data object; an archive data storage front end, configured to; receive a retrieval request for a range of one or more data chunks of an archived data object, wherein the range of the one or more data chunks is less than the entire archived data object; in response to receiving the retrieval request; determine that, when a root node of a hash tree for the requested range is equivalent to a predefined hash tree schema for the entire archived data object, the range of the one or more data chunks is tree-hash aligned; initiate a retrieval job to obtain the one or more data chunks of the archived data object from the archive data storage system back end; and stage the obtained one or more data chunks in the archive data storage front end for download; upon completion of the retrieval job to obtain the one or more data chunks of the archived data object from the archive data storage back end, send a retrieval job completion notification to a client; receive a download request from the client for at least some of the range of the one or more data chunks; and in response to receiving the download request; determine whether a root node of a hash tree for the requested download of the at least some of the range of the one or more data chunks is equivalent to a node of the predefined hash tree schema for the entire archived data object in order to determine whether the root node of the hash tree for the requested download is tree-hash aligned; and send to the client one or more data chunks matching the at least some of the range and, when the root node of the hash tree for the requested download being tree-hash aligned, a hash value of a root node of a tree hash calculated according to the predefined hash tree schema for the at least some of the range of the one or more data chunks. - View Dependent Claims (2)
-
3. A method, comprising:
performing, by multiple computing devices; receiving a retrieval request, from a client, for a range of one or more data chunks of an archived data object stored in an archival data store, wherein the archived data object is organized as a plurality of data chunks including the one or more data chunks, each data chunk of the plurality of data chunks corresponds to a range of data stored within the archived data object, and the range of one or more data chunks is less than the entire archived data object; in response to receiving the retrieval request; determining that the requested range of the archived data object is tree-hash aligned with the archived data object based, at least in part, on a node of a hash tree for the requested range being equivalent to a node of a predefined hash tree schema for the archived data object; and initiating a retrieval job to obtain one or more data chunks of the archived data object matching the requested range from the archival data store; receiving a download request from the client for at least some of the range of the one or more data chunks; and in response to the receiving the download request; determining whether a root node of a hash tree for the requested download of the at least some of the range of the one or more data chunks is equivalent to a node of the predefined hash tree schema for the entire archived data object in order to determine whether the root node of the hash tree for the requested download is tree-hash aligned; and sending to the client one or more data chunks matching the at least some of the range and, when the root node of the hash tree for the requested download being tree-hash aligned, a hash value of a root node of a tree hash calculated according to the predefined hash tree schema for the at least some of the range of the one or more data chunks. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
12. A non-transitory, computer-readable storage medium, storing program instructions that when executed by multiple computing devices implements:
-
receiving a retrieval request, from a client, for a range of one or more data chunks of an archived data object stored in an archival data store, wherein the archived data object is organized as a plurality of data chunks including the one or more data chunks, each data chunk of the plurality of data chunks corresponds to a range of data stored within the archived data object, and the range of the one or more data chunks is less than the entire archived data object; in response to receiving the retrieval request; determining that the range of the one or more data chunks of the archived data object is tree-hash aligned with the entire archived data object based, at least in part, on a node of a hash tree for the requested range being equivalent to a node of a predefined hash tree schema for the archived data object; initiating a retrieval job to obtain one or more data chunks of the archived data object matching the requested range from the archival data store and staging the obtained one or more data chunks for download; sending a retrieval job identifier to the client that identifies the retrieval job initiated to obtain the requested range of the one or more data chunks of the archived data object; and upon completion of the retrieval job to obtain the one or more data chunks of the archived data object, sending notification to the client that the retrieval job is complete; receiving a download request from the client for at least some of the range of the one or more data chunks; and in response to said receiving the download request; determining whether a root node of a hash tree for the requested download of the at least some of the range of the one or more data chunks is equivalent to a node of the predefined hash tree schema for the entire archived data object in order to determine whether the root node of the hash tree for the requested download is tree-hash aligned; and sending to the client one or more data chunks matching the at least some of the range and, when the root node of the hash tree for the requested download being tree-hash aligned, a hash value of a root node of a tree hash calculated according to the predefined hash tree schema for the at least some of the range of the one or more data chunks. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification