EFFICIENT, SECURE, STORAGE OF MEANINGFUL CONTENT AS PART OF A DSN MEMORY
A method for execution by a dispersed storage network (DSN), the method begins by determining to form a storage device set from locally stored data and partitioning the locally stored data to produce a plurality of data blocks and obtaining error coding information and generating a zero-information gain (ZIG) partial slice based on the error coding information and outputting a corresponding ZIG partial slice to a redundancy error information storing device. The method continues by receiving a decode threshold number of corresponding ZIG partial slices from a decode threshold number of data storage devices, decoding the decode threshold number of corresponding ZIG partial slices to produce the error coding information block and storing the error coding information block and, for subsequent error recovery of a missing data block, obtaining a decode threshold number of corresponding data blocks and error information blocks to reproduce the missing data block
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:
determining to form a storage device set from locally stored data;
partitioning the locally stored data to produce a plurality of data blocks;
obtaining error coding information;
generating a zero-information gain (ZIG) partial slice based on the error coding information;
outputting a corresponding ZIG partial slice to a redundancy error information storing device;
receiving a decode threshold number of corresponding ZIG partial slices from a decode threshold number of data storage devices;
decoding the decode threshold number of corresponding ZIG partial slices to produce the error coding information block; and
storing the error coding information block.
2 . The method of claim 1 , wherein the storage device set includes a decode threshold number of data storage devices and a pillar width minus the decode threshold number of the redundancy error information storing devices.
3 . The method of claim 1 , wherein the determining is based on one or more of: receiving a request, identifying an unmet storage reliability requirement, initiating a query to other storage devices, or receiving responses from the other storage devices.
4 . The method of claim 1 , wherein the partitioning includes partitioning each data block to be a common data block length and partitioning a common number of data blocks as utilized by the decode threshold number of data storage devices.
5 . The method of claim 1 , wherein the partitioning includes any of: obtaining a source name associated with a common set of data blocks of the decode threshold number of data storage devices, associating the source name with a data block of a common set of data blocks, or updating one or more of a directory and a dispersed hierarchical index to associate one or more data names associated with the locally store data with the source name.
6 . The method of claim 1 , wherein the obtaining includes at least one of receiving and generating based on one or more of the storage device set and storage requirements.
7 . The method of claim 1 , wherein the receiving includes receiving in an unsolicited fashion and initiating a request for one or more of the corresponding ZIG partial slices.
8 . The method of claim 1 , wherein the decoding includes at least one of: performing a deterministic mathematical function or performing an exclusiveOR function.
9 . The method of claim 1 further including, for subsequent error recovery of a missing data block, obtaining a decode threshold number of corresponding data blocks and error information blocks from the storage device set to reproduce the missing data block.
10 . A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:
an interface;
a local memory; and
a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:
determine to form a storage device set from locally stored data;
partition the locally stored data to produce a plurality of data blocks;
obtain error coding information;
generate a zero-information gain (ZIG) partial slice based on the error coding information;
output a corresponding ZIG partial slice to a redundancy error information storing device;
receive a decode threshold number of corresponding ZIG partial slices from a decode threshold number of data storage devices;
decode the decode threshold number of corresponding ZIG partial slices to produce the error coding information block; and
store the error coding information block.
11 . The computing device of claim 10 , wherein the storage device set includes a decode threshold number of data storage devices and a pillar width minus the decode threshold number of the redundancy error information storing devices.
12 . The computing device of claim 10 , wherein the determining is based on one or more of: receiving a request, identifying an unmet storage reliability requirement, initiating a query to other storage devices, or receiving responses from the other storage devices.
13 . The computing device of claim 10 , wherein the partitioning includes partitioning each data block to be a common data block length and partitioning a common number of data blocks as utilized by the decode threshold number of data storage devices.
14 . The computing device of claim 10 , wherein the partitioning includes any of: obtaining a source name associated with a common set of data blocks of the decode threshold number of data storage devices, associating the source name with a data block of a common set of data blocks, or updating one or more of a directory and a dispersed hierarchical index to associate one or more data names associated with the locally store data with the source name.
15 . The computing device of claim 10 , wherein the obtaining includes at least one of receiving and generating based on one or more of the storage device set and storage requirements.
16 . The computing device of claim 10 , wherein the receiving includes receiving in an unsolicited fashion and initiating a request for one or more of the corresponding ZIG partial slices.
17 . The computing device of claim 10 , wherein the decoding includes at least one of:
performing a deterministic mathematical function or performing an exclusiveOR function.
18 . The computing device of claim 10 , wherein the processing module is further configured for subsequent error recovery of a missing data block by obtaining a decode threshold number of corresponding data blocks and error information blocks from the storage device set to reproduce the missing data block.
19 . 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:
determining to form a storage device set from locally stored data;
partitioning the locally stored data to produce a plurality of data blocks;
obtaining error coding information;
generating a zero-information gain (ZIG) partial slice based on the error coding information;
outputting a corresponding ZIG partial slice to a redundancy error information storing device; and
receiving a decode threshold number of corresponding ZIG partial slices from a decode threshold number of data storage devices;
decoding the decode threshold number of corresponding ZIG partial slices to produce the error coding information block; and
storing the error coding information block; and
for subsequent error recovery of a missing data block, obtain a decode threshold number of corresponding data blocks and error information blocks from the storage device set to reproduce the missing data block.
20 . The method of claim 19 , wherein the storage device set includes a decode threshold number of data storage devices and a pillar width minus the decode threshold number of the redundancy error information storing devices.