HYBRID CENTRALIZED AND AUTONOMOUS DISPERSED STORAGE SYSTEM STORAGE METHOD
A dispersed data storage method for execution by a dispersed storage (DS) unit. In various embodiments, the method begins when the DS unit receives a plurality of encoded data slices and associated metadata. The metadata is interpreted to determine storage instructions regarding the encoded data slices. When the storage instructions indicate, for example, a daisy chain storage dispersal approach, the DS unit locally stores first encoded data slices (e.g., the first encoded data slices of a set of encoded data slices) and forwards other encoded data slices to at least one other DS unit. In other exemplary embodiments, sequential and/or one-to-many dispersal approaches may be utilized. Further, the DS may employ a variety of criteria to solicit other DS units for storage of encoded data slices.
1 . A method for execution by a dispersed storage (DS) unit, the method comprises:
receiving a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;
receiving metadata associated with the plurality of sets of encoded data slices;
interpreting the metadata to determine storage instructions regarding the plurality of sets of encoded data slices; and
when the storage instructions indicate daisy chain storage:
locally storing first encoded data slices of each set of encoded data slices; and
forwarding other encoded data slices of the sets of encoded data slices to at least one other DS unit.
2 . The method of claim 1 further comprises:
when the storage instructions indicate the daisy chain storage:
updating the metadata to produce updated metadata;
locally storing the updated metadata; and
forwarding the updated metadata to the at least one other DS unit.
3 . The method of claim 2 , wherein updating the metadata to produce updated metadata includes adding identification information relating to the DS unit.
4 . The method of claim 1 further comprises:
when the storage instructions indicate the daisy chain storage:
updating the metadata to produce updated metadata;
determining whether the DS unit is an end DS unit; and
when the DS unit is the end DS unit, forwarding the updated metadata to a DS processing module.
5 . The method of claim 1 further comprises:
when the storage instructions indicate one-to-many storage:
transmitting pillar numbered encoded data slices of the plurality of sets of encoded data slices to corresponding ones of a plurality of DS units, wherein the plurality of DS units includes the at least one other DS unit.
6 . The method of claim 1 further comprises:
receiving a retrieval message from an initiator;
retrieving locally stored metadata in response to the retrieval message;
retrieving stored encoded data slices in accordance with the locally stored metadata;
sending the stored encoded data slices to the initiator; and
forwarding the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.
7 . A method for execution by a dispersed storage (DS) unit, the method comprises:
receiving a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;
receiving metadata associated with the plurality of sets of encoded data slices;
interpreting the metadata to determine storage instructions regarding the plurality of sets of encoded data slices;
determining whether to store locally at least a portion of the plurality of sets of encoded data slices;
upon a favorable determination to store locally at least a portion of the plurality of sets of encoded data slices, locally storing first encoded data slices of each set of encoded data slices; and
soliciting at least one other DS unit for storage of at least a portion of the plurality of sets of encoded data slices.
8 . The method of claim 7 , wherein determining whether to store locally at least a portion of the plurality of sets of encoded data slices is based on one or more of:
the metadata;
status of the DS unit;
memory availability of the DS unit;
historic performance information relating to the DS unit; and
a DS unit solicitation response history indicator.
9 . The method of claim 7 , wherein soliciting at least one other DS unit for storage of at least a portion of the plurality of sets of encoded data slices includes:
determining at least one target DS unit;
sending a solicitation message to the at least one target DS unit; and
receiving a favorable response from the at least one target DS unit.
10 . The method of claim 9 , wherein the solicitation message includes at least one storage requirement regarding storage of the at least a portion of the plurality of sets of encoded data slices.
11 . The method of claim 9 , wherein determining at least one target DS unit is based on one or more of:
the metadata;
a DS unit list;
a routing table entry;
a random selection;
geographical location relative to the DS unit; and
geographical location relative to a user device.
12 . The method of claim 9 further comprises:
upon receiving a favorable response from the at least one target DS unit:
forwarding at least a first portion of the plurality of sets of encoded data slices to the at least one target DS unit;
updating the metadata to produce updated metadata;
locally storing the updated metadata; and
forwarding the updated metadata to the at least one target DS unit.
13 . The method of claim 12 , wherein updating the metadata to produce updated metadata includes adding identification information relating to the DS unit.
14 . The method of claim 12 further comprises:
receiving a favorable response from a second target DS unit; and
forwarding at least a second portion of the plurality of sets of encoded data slices to the second target DS unit.
15 . The method of claim 7 further comprises:
receiving a retrieval message from an initiator;
retrieving locally stored metadata in response to the retrieval message;
retrieving stored encoded data slices in accordance with the locally stored metadata;
sending the stored encoded data slices to the initiator; and
forwarding the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.
16 . A dispersed storage (DS) unit comprises:
an interface;
a memory; and
a processing module operable to:
receive, via the interface, a plurality of sets of encoded data slices, wherein a read threshold number of encoded data slices of a set of the plurality of sets of encoded data slices is required to recover a data segment of data and wherein an individual encoded data slice of the set of encoded data slices yields substantially no information regarding the data segment;
receive, via the interface, metadata associated with the plurality of sets of encoded data slices;
interpret the metadata to determine storage instructions regarding the plurality of encoded data slices; and
when the storage instructions indicate daisy chain storage:
locally store, in the memory, first encoded data slices of each set of encoded data slices; and
forward, via the interface, other encoded data slices of the sets of encoded data slices to at least one other DS unit.
17 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:
when the storage instructions indicate the daisy chain storage:
update the metadata to produce updated metadata;
locally store, in the memory, the updated metadata; and
forward, via the interface, the updated metadata to the at least one other DS unit.
18 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:
when the storage instructions indicate the daisy chain storage:
update the metadata to produce updated metadata;
determine whether the DS unit is an end DS unit; and
forward, via the interface, the updated metadata to a DS processing module, when the DS unit is the end DS unit.
19 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:
when the storage instructions indicate one-to-many storage:
transmit, via the interface, pillar numbered encoded data slices of the plurality of sets of encoded data slices to corresponding ones of a plurality of DS units, wherein the plurality of DS units includes the at least one other DS unit.
20 . The dispersed storage unit of claim 16 , wherein the processing module further functions to:
receive, via the interface, a retrieval message from an initiator;
retrieve, from the memory, locally stored metadata in response to the retrieval message;
retrieve, from the memory, stored encoded data slices in accordance with the locally stored metadata;
send, via the interface, the stored encoded data slices to the initiator; and
forward, via the interface, the retrieval message to the at least one other DS unit in accordance with the locally stored metadata.