×

Robust reception of data utilizing encoded data slices

  • US 9,772,904 B2
  • Filed: 02/24/2017
  • Issued: 09/26/2017
  • Est. Priority Date: 10/30/2009
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for robust reception of data by one or more processing modules including processing hardware, the method comprises:

  • as encoded data slices of a random order of encoded data slices are received;

    determining, via the processing hardware, whether an encoded data slice error rate has been reached, wherein each encoded data slice of the random order of encoded data slices has a unique slice name such that the random order of encoded data slices has a corresponding plurality of slice names, and wherein an encoded data slice error rate corresponds to a mathematical function of a number of data segments per data partition, a transmit number, a decode threshold number, and a total number of encoded data slices per set of encoded data slices;

    when the encoded data slice error rate has not been reached;

    interpreting, via the processing hardware, a slice index, a segment indicator, and a collection indicator of the corresponding plurality of slice names to determine the random order and to de-randomize the random order of encoded data slices into a plurality of sets of transmit encoded data slices, wherein the plurality of sets of transmit encoded data slices corresponds to a plurality of sets of encoded data slices, wherein the plurality of sets of encoded data slices is a dispersed storage error encoded version of a collection of data segments of a data portion of a plurality of data portions of the data, wherein one of the plurality of sets of transmit encoded data slices includes the transmit number of encoded data slices of a total number of encoded data slices of a corresponding one of the plurality of sets of encoded data slices; and

    on a set by set basis and in accordance with a dispersed storage error encoding function;

    determining, via the processing hardware, whether the decode threshold number of encoded data slices of a set of transmit encoded data slices of the plurality of sets of transmit encoded data slices have been received;

    when the decode threshold number of encoded data slices have not yet been received, determining, via the processing hardware, whether a sufficient number of encoded data slices of the set of transmit encoded data slices are still to be received based on the determined random order and the de-randomizing of the random order of encoded data slices wherein the determining whether the sufficient number of encoded data slices is still to be received comprises;



    identifying encoded data slices of the set of transmit encoded data slices that have been successfully received;



    determining how many more encoded data slices are to be received based on the transmit number and a current order position in the receiving of the random order of encoded data slices; and



    when a sum of a number of encoded data slices that have been successfully received and a number of the more encoded data slices to be received is equal to or greater than the decode threshold number, indicating that the sufficient number of encoded data slices are still to be received;

    when the sufficient number of encoded data slices are still to be received, waiting, via the processing hardware, until the decode threshold number of encoded data slices are received; and

    when the decode threshold number of encoded data slices are received, decoding, via the processing hardware, the decode threshold number of encoded data slices to recapture a corresponding data segment of the collection of data segments.

View all claims
  • 6 Assignments
Timeline View
Assignment View
    ×
    ×