Patent ID: 8819260

Claim:
A method for retrieving fragments, comprising: requesting by an assembling device from a first set of servers erasure-coded fragments usable to decode a first nonempty set of erasure-coded segments; the first set of servers configured to have an aggregated bandwidth significantly greater than incoming bandwidth of the assembling device, configured to store enough of the erasure-coded fragments to have a redundancy factor greater than one, and each of the servers in the first set configured to store at least one erasure-coded fragment but less the minimum data required to reconstruct the first nonempty set of erasure-coded segments; controlling the requested fragment rate, by the assembling device, using a fragment pull protocol; on-the-fly and while requesting the fragments, selecting randomly or pseudo randomly at least one server from a second set of servers storing fragments usable to reconstruct the first nonempty set of erasure-coded segments; and shortly thereafter requesting on-the-fly, by the assembling device from the at least one randomly selected server, additional fragments instead of fragments that failed to be retrieved.