ALTERNATIVE STORAGE LOCATION PROTOCOL FOR A DISTRIBUTED STORAGE NETWORK
A method begins by a processing module of a dispersed storage network (DSN) receiving a write request for a data object, encoding a data segment of the data object to produce a write threshold number of encoded data slices and determining whether a write threshold number of storage units is available for storing the encoded data slices. In response to determining that a write threshold number of storage units is available, the method continues by selecting a write threshold number of storage units from the storage units available for storing the encoded data slices. The method continues by generating a vault source name for the data segment and associating the vault source name of the data segment with a data identifier and finishes by issuing write slice requests to the storage units, where each write slice request includes the vault source name and an associated encoded data slice of the encoded data slices.
1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:
receiving a write request for a data object;
encoding a data segment of the data object using a dispersed storage error coding function to produce a plurality of encoded data slices, wherein a data object is segmented to produce a plurality of data segments;
determining whether a write threshold number of storage units is available for storing the plurality of encoded data slices;
in response to determining that a write threshold number of storage units is available for storing the plurality of encoded data slices, identifying a write threshold number of storage units from the storage units available for storing the plurality of encoded data slices for storing at least a write threshold number of encoded data slices;
generating a vault source name for the data segment;
associating the vault source name of the data segment of the plurality of data segments with a data identifier; and
issuing write slice requests to the identified storage units, wherein each write slice request includes the vault source name and an associated encoded data slice of the write threshold number of encoded data slices.
2 . The method of claim 1 , further comprising:
in response to determining that a write threshold number of storage units is not available for storing the plurality of encoded data slices, identifying less than a write threshold number of storage units for storing at least a write threshold number of encoded data slices.
3 . The method of claim 1 , further comprising:
in response to determining that a write threshold number of storage units is not available for storing the plurality of encoded data slices selecting a write threshold minus one number of available storage units for storing at least a write threshold number of encoded data slices.
4 . The method of claim 1 , wherein the determining whether a write threshold number of storage units is available for storing the plurality of encoded data slices is based on at least one of an availability indicator, a write slice response, a query, a query response, and a predetermination.
5 . The method of claim 1 , wherein the generating a vault source name for the data segment is based on at least one of a vault identifier, a data identifier of the data object, and an object identifier associated with the data identifier.
6 . The method of claim 1 , wherein the associating the vault source name of the data segment of the plurality of data segments with a data identifier includes updating a DSN directory to associate a source name portion of a vault source name with the data ID.
7 . The method of claim 1 , wherein each write slice request further includes a pillar index number associated with a corresponding pillar index number of an information dispersal algorithm (IDA) width number of encoded data slices of the plurality of encoded data slices.
8 . The method of claim 1 , wherein the vault source name is identical for each write slice request.
9 . The method of claim 1 , wherein each write slice request further includes a slice name associated with each encoded data slice of the plurality of encoded data slices, wherein the slice name includes the vault source name.
10 . A computer readable memory device comprises:
at least one memory section that stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:
receive a write request for a data object;
encode a data segment of the data object using a dispersed storage error coding function to produce a plurality of encoded data slices, wherein a data object is segmented to produce a plurality of data segments;
determine whether a write threshold number of storage units is available for storing the write threshold number of encoded data slices;
in response to determination that a write threshold number of storage units is available for storing the plurality of encoded data slices, identify a write threshold number of storage units from the storage units available for storing the plurality of encoded data slices for storing at least a write threshold number of encoded data slices;
generate a vault source name for the data segment;
associate the vault source name of the data segment of the plurality of data segments with a data identifier; and
issue write slice requests to the identified storage units, wherein each write slice request includes the vault source name and an associated encoded data slice of the write threshold number of encoded data slices.
11 . The computer readable memory device of claim 10 , wherein the at least one memory section stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:
in response to a determination that a write threshold number of storage units is not available for storing the plurality of encoded data slices, identify less than a write threshold number of storage units for storing at least a write threshold number of encoded data slices.
12 . The computer readable memory device of claim 10 , wherein the at least one memory section stores operational instructions that, when executed by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), causes the one or more computing devices to:
in response to a determination that a write threshold number of storage units is not available for storing the plurality of encoded data slices, select a write threshold minus one number of available storage units for storing at least a write threshold number of encoded data slices.
13 . The computer readable memory device of claim 10 , wherein the determination whether a write threshold number of storage units is available for storing the plurality of encoded data slices is based on at least one of an availability indicator, a write slice response, a query, a query response, and a predetermination.
14 . The computer readable memory device of claim 10 , wherein the vault source name for the data segment is generated based on at least one of a vault identifier, a data identifier of the data object, and an object identifier associated with the data identifier.
15 . The computer readable memory device of claim 10 , wherein the vault source name of the data segment of the plurality of data segments is associated with a data identifier by updating a DSN directory to associate a source name portion of a vault source name with the data ID.
16 . The computer readable memory device of claim 10 , wherein each write slice request further includes a pillar index number associated with a corresponding pillar index number of an information dispersal algorithm (IDA) width number of encoded data slices of the plurality of encoded data slices.
17 . The computer readable memory device of claim 10 , wherein each write slice request further includes a pillar index number associated with a corresponding pillar index number of an information dispersal algorithm (IDA) width number of encoded data slices of the plurality of encoded data slices.
18 . The computer readable memory device of claim 10 , wherein the vault source name is identical for each write slice request.
19 . The computer readable memory device of claim 10 , wherein each write slice request further includes a slice name associated with each encoded data slice of the plurality of encoded data slices, wherein the slice name includes the vault source name.
20 . A computing device comprises:
an interface; and
a processing module, when operable within the computing device, causes the computing device to:
receive a write request for a data object;
encode a data segment of the data object using a dispersed storage error coding function to produce a plurality of encoded data slices, wherein a data object is segmented to produce a plurality of data segments;
determine whether a write threshold number of storage units is available for storing the write threshold number of encoded data slices;
in response to determination that a write threshold number of storage units is available for storing the plurality of encoded data slices, identify a write threshold number of storage units from the storage units available for storing the plurality of encoded data slices for storing at least a write threshold number of encoded data slices;
generate a vault source name for the data segment;
associate the vault source name of the data segment of the plurality of data segments with a data identifier; and
issue write slice requests to the identified storage units, wherein each write slice request includes the vault source name and an associated encoded data slice of the write threshold number of encoded data slices.