VOLUME COHORTS IN OBJECT-REDUNDANT STORAGE SYSTEMS
First Claim
1. A system, comprising:
- a plurality of storage nodes;
one or more processors; and
a memory that stores program instructions executable by at least one of the one or more processors to implement an object-redundant storage system configured to;
establish a cohort spanning N of the plurality of storage nodes;
receive data objects to be stored to the storage system;
for each data object;
generate M object-redundant data elements from the data object according to an object-redundant technique, where M is less than N;
select M storage nodes from among the N storage nodes in the cohort according to a selection technique; and
store the M data elements to the selected M storage nodes, wherein one of the M data elements is stored on each of the M storage nodes;
wherein said generating, said selecting, and said storing distributes the data elements generated for the received data objects across the N storage nodes in the cohort so that a given two of the N storage nodes contain different sets of data elements.
1 Assignment
0 Petitions
Accused Products
Abstract
Cohorts may be created on storage nodes in an object-redundant storage system that uses replication and/or a redundant encoding technique. In a cohort with N nodes, M data elements (replicas or shards) of an object are stored to M of the nodes that are randomly (or otherwise) selected from the N nodes. Metadata for locating other data elements for an object in the cohort may be stored with one or more of the data elements in the cohort. To retrieve an object from a cohort, a subset of the nodes may be queried; the subset may be randomly or otherwise selected. If enough data elements are retrieved for the object from the queried nodes, the object is provided to the requester. Otherwise, additional data elements may be retrieved according to the metadata returned with a data element or by querying additional nodes.
61 Citations
22 Claims
-
1. A system, comprising:
-
a plurality of storage nodes; one or more processors; and a memory that stores program instructions executable by at least one of the one or more processors to implement an object-redundant storage system configured to; establish a cohort spanning N of the plurality of storage nodes; receive data objects to be stored to the storage system; for each data object; generate M object-redundant data elements from the data object according to an object-redundant technique, where M is less than N; select M storage nodes from among the N storage nodes in the cohort according to a selection technique; and store the M data elements to the selected M storage nodes, wherein one of the M data elements is stored on each of the M storage nodes; wherein said generating, said selecting, and said storing distributes the data elements generated for the received data objects across the N storage nodes in the cohort so that a given two of the N storage nodes contain different sets of data elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
receiving, by a storage service implemented on one or more computing devices, data objects to be stored to an object-redundant storage system, wherein the object-redundant storage system comprises a cohort spanning N storage nodes; for each received data object; generating M object-redundant data elements from the data object according to an object-redundant technique, where M is less than N; selecting M storage nodes from among the N storage nodes in the cohort; storing the M data elements to the selected M storage nodes, wherein one of the M data elements is stored on each of the M storage nodes; and storing metadata indicating one or more locations in the cohort at which one or more of the M data elements are stored. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-accessible storage medium storing program instructions executable on one or more computers to implement an object-redundant storage system configured to:
-
receive data objects to be redundantly stored to a set of N storage nodes; for each received data object; generate M object-redundant data elements from the data object according to an object-redundant technique, where M is less than N; select M storage nodes from among the N storage nodes; store the M data elements to the selected M storage nodes, wherein one of the M data elements is stored on each of the M storage nodes; and store, with at least one of the M data elements, metadata indicating, for each of the M data elements, a location at which the respective data element is stored. - View Dependent Claims (19, 20, 21, 22)
-
Specification