Load-balancing an asymmetrical distributed erasure-coded system
First Claim
1. A distributed system comprising:
- a plurality of CDN servers and a larger number of assembling devices;
some of the CDN servers operative to have different fragment-delivery bandwidth capabilities than the other CDN servers;
each of the servers configured to store at least one erasure-coded fragment but less than the minimum data required to reconstruct erasure-coded segments of streaming contents; and
each of the assembling devices configured to obtain erasure-coded fragments usable to reconstruct the segments from a subgroup of the servers comprising between two and less than the plurality of servers;
wherein the system configured to approach the combined aggregated fragment delivery bandwidth capabilities of the servers by assigning serves to the subgroups based on the unutilized fragment delivery bandwidths of the servers, and essentially regardless of the number of fragments stored on each server per segment stored on the server.
4 Assignments
0 Petitions
Accused Products
Abstract
Load-balancing an asymmetrical distributed erasure-coded system including fractional-storage CDN servers, storing, at a high storage gain, erasure-coded fragments encoded with a redundancy factor greater than one from segments, and a plurality of assembling devices, each obtaining fragments from a subgroup of the servers. The subgroups are selected from the servers still capable of increasing their fragment delivery throughput. Wherein not all of the servers have the same fragment delivery bandwidth capability, and the storage gain of each segment on each server is usually not strictly proportional to the bandwidth capability of the server, and the aggregated throughput used by the servers to deliver fragments may approach the aggregated bandwidth capabilities of the servers.
79 Citations
20 Claims
-
1. A distributed system comprising:
-
a plurality of CDN servers and a larger number of assembling devices; some of the CDN servers operative to have different fragment-delivery bandwidth capabilities than the other CDN servers; each of the servers configured to store at least one erasure-coded fragment but less than the minimum data required to reconstruct erasure-coded segments of streaming contents; and each of the assembling devices configured to obtain erasure-coded fragments usable to reconstruct the segments from a subgroup of the servers comprising between two and less than the plurality of servers; wherein the system configured to approach the combined aggregated fragment delivery bandwidth capabilities of the servers by assigning serves to the subgroups based on the unutilized fragment delivery bandwidths of the servers, and essentially regardless of the number of fragments stored on each server per segment stored on the server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A distributed system comprising:
-
a plurality of CDN servers and a larger number of assembling devices; some of the CDN servers operative to have different fragment-delivery bandwidth capabilities than the other CDN servers; the CDN servers configured to store erasure-coded fragments associated with segments; each of the servers configured to store at least one erasure coded fragment but less than the minimum data required to reconstruct the segments; and a plurality of assembling devices, each configured to obtain at least a majority of fragments required to reconstruct the segments from a subgroup of the servers comprising between two and less than the plurality of servers; wherein the system configured to deliver fragments at a bandwidth approaching the combined fragment delivery bandwidth capabilities of the servers, by selecting the servers of the subgroups based on a random or pseudo random selection algorithm weighted according to the unutilized bandwidth of the servers and essentially regardless of the number of fragments stored on each server per segment stored on the server. - View Dependent Claims (14)
-
-
15. A method comprising:
-
distributing erasure-coded fragments associated with segments among servers not having the same fragment delivery bandwidth capabilities; after distributing the fragments, each of the servers receives and stores less than the minimum amount of fragments needed to reconstruct the segments, and the amount of fragments received and stored by each of the servers is essentially not a function of the fragment delivery bandwidth capability of the server; selecting, for assembling devices, subgroups of servers having enough unutilized bandwidth to provide fragments; and approaching the combined fragment delivery bandwidth capabilities of the servers by pulling, by the assembling devices, erasure-coded fragments usable to decode segments, each fragment pull request associated with a specific segment, wherein each assembling device is retrieving the fragments from each server essentially independently of the bandwidth capability of the server. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification