Abstract:
A method begins by a processing module of a dispersed storage network (DSN) receiving, from a requesting device, a request to retrieve a unique copy of a data file, where the data file is divided into a plurality of data segments, where a data segment is dispersed storage error encoded to produce a set of encoded data slices, and where the plurality of sets of encoded data slices is stored in a set of storage units of the DSN. The method continues with the processing module determining a retrieval combination code from the request and interpreting the retrieval combination code to identify a sub-set of storage units. The method continues with the processing module sending read requests to the sub-set of storage units and when the decode threshold number of encoded data slices is received, decoding the decode threshold number of encoded data slices to recover the data segment.
Abstract:
When an access metric regarding an encoded data object exceeds an access threshold, a method begins by a processing module of a dispersed storage network (DSN) retrieving encoded data slices of a first plurality of sets of encoded data slices and recovering the data object utilizing first dispersed storage error encoding parameters. The method continues with the processing module re-encoding the recovered data object using second dispersed storage error encoding parameters to produce a re-encoded data object, where the re-encoded data object includes a second plurality of sets of encoded data slices. The method continues with the processing module outputting the second plurality of sets of encoded data slices to storage units of the DSN for storage therein and sending a message to retrieving devices of the DSN, where the message indicates use of the second plurality of sets of encoded data slices for the data object.
Abstract:
A method begins by generating list range requests. A list range request includes a payload section and a protocol header section. The payload section includes a start slice name field regarding a start slice name of a slice name range; an end slice name field regarding an end slice name of the slice name range; and a maximum response count field regarding a maximum slice name response count. The protocol header includes a payload length field that represents a length of the payload section and an operation code field to indicate the list range request operation. The list range request includes a request to provide a list of slices names corresponding to stored encoded data slices associated with slice names within the slice name range. The method continues by sending the range requests to storage units of the DSN.
Abstract:
A method begins by storage units of a dispersed storage network (DSN) receiving a retrieval request for a data object, where each storage unit stores a unique group of encoded data slices of the data object and a local set of encoded recovery data slices. The method continues with some storage units sending the unique group of encoded data slices to a requesting computing device and with one storage unit sending an encoded recovery data slice to the requesting computing device. The method continues with the requesting computing device identifying an errant unique group encoded data slice, correcting the errant encoded data slice based on received data slices to produce an updated unique group of encoded data slices, and dispersed storage error decoding the updated unique group of encoded data slices and the unique groups of encoded data slices from other storage units to recover the data object.
Abstract:
A method begins by a dispersed storage (DS) processing module selecting a data segment and verifying integrity values of encoded data slices generated by encoding the data segment. When integrity values of a decode threshold number of encoded data slices are affirmatively verified, the method continues with the DS processing module verifying an integrity value of the data segment. When the integrity value of the data segment is affirmatively verified, the method continues with the DS processing module generating a new set of encoded data slices. The method continues with the DS processing module verifying concurrency of the set of encoded data slices with the new set of encoded data slices and for each encoded data slice having a negative concurrency verification, flagging the encoded data slice as being potentially compromised.
Abstract:
A method begins by a dispersed storage (DS) processing module selecting a data segment and verifying integrity values of encoded data slices generated by encoding the data segment. When integrity values of a decode threshold number of encoded data slices are affirmatively verified, the method continues with the DS processing module verifying an integrity value of the data segment. When the integrity value of the data segment is affirmatively verified, the method continues with the DS processing module generating a new set of encoded data slices. The method continues with the DS processing module verifying concurrency of the set of encoded data slices with the new set of encoded data slices and for each encoded data slice having a negative concurrency verification, flagging the encoded data slice as being potentially compromised.
Abstract:
A method begins by generating list range requests. A list range request includes a payload section and a protocol header section. The payload section includes a start slice name field regarding a start slice name of a slice name range; an end slice name field regarding an end slice name of the slice name range; and a maximum response count field regarding a maximum slice name response count. The protocol header includes a payload length field that represents a length of the payload section and an operation code field to indicate the list range request operation. The list range request includes a request to provide a list of slices names corresponding to stored encoded data slices associated with slice names within the slice name range. The method continues by sending the range requests to storage units of the DSN.
Abstract:
A method begins by a dispersed storage (DS) processing module receiving data for storage and generating a dispersed storage network (DSN) source name for the data. The method continues with the DS processing module determining whether substantially identical data to the data has been previously stored in memory of the DSN. When the substantially identical data has been previously stored in the memory of the DSN, the method continues with the DS processing module generating an object linking file that links the data to the substantially identical data, dispersed storage error encoding the object linking file to produce a set of encoded link file slices, and outputting the set of encoded link file slices for storage in the memory of the DSN.
Abstract:
A method begins by generating write requests, wherein a write request includes a payload and a protocol header. The payload includes one or more slice payload sections and a transaction number field. The protocol header includes an operation code field that indicates a write operation. The method continues, when responses to the write requests are favorable, by generating write commit requests, wherein a write commit request includes a commit payload and a commit protocol header. The commit payload includes the transaction number and the commit protocol header includes the operation code field that indicates write commit operation. The method continues, when responses to the write requests are unfavorable, by generating write rollback requests, wherein a rollback request includes a rollback payload and a rollback protocol header. The rollback payload includes the transaction number and the rollback protocol header includes the operation code field that indicates write rollback operation.
Abstract:
A method for transferring encoded data slices from a first storage unit to a second storage unit begins by a processing module ascertaining a first mathematical process used to determine that the encoded data slices are to be stored in the first storage unit, where the first mathematical process includes a first mathematical function sequence and a first set of coefficients. The method continues with the processing module determining a second mathematical process, which indicates that the encoded data slices are to be stored in the second storage unit, where the second mathematical process corresponds to an adjustment of at least one of the first mathematical function sequence and the first set of coefficients. The method continues with the processing module transferring, based on a transfer command, the encoded data slices from the first storage unit to the second storage unit utilizing the second mathematical process.