IP Library Granted Patent US 8,874,775
Granted Patent B2
US 8,874,775 · App. 12/579,817 · Granted Oct 28, 2014

Balancing a distributed system by replacing overloaded servers

Inventors: Gal Zuckerman (Petah-Tikva, IL); Gil Thieberger (Kiryat Tivon, IL)
Assignee: Aster Risk Management LLC
H04L67/1008G06F17/30781H04L67/1091G06F17/30206H04L67/1097H04L67/1023H04L67/1021H04L67/1012H03M13/3761H03M13/37H04L67/1002H04L67/101
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,874,775
App. No.
12/579,817
Granted
Oct 28, 2014
Kind
B2
Abstract

Load-balancing a distributed system by replacing overloaded servers, including the steps of retrieving, by an assembling device using a fragment pull protocol, erasure-coded fragments associated with segments, from a set of fractional-storage servers. Occasionally, while retrieving the fragments, identifying at least one server from the set that is loaded to a degree requiring replacement, and replacing, using the fragment pull protocol, the identified server with a substitute server that is not loaded to the degree requiring replacement. Wherein the substitute server and the remaining servers of the set are capable of delivering enough erasure-coded fragments in the course of reconstructing the segments.

Claims (39)

1. A method for load-balancing fractional-storage CDN servers and assembling devices, comprising:

pulling essentially concurrently, by an assembling device using a fragment pull protocol, erasure-coded fragments associated with segments of streaming content, from a set of fractional-storage CDN servers;

each fragment pull protocol associated with a specific segment;

each fractional-storage CDN server configured to store erasure-coded fragments but less than a minimum amount of erasure-coded fragments needed to decode the stored erasure-coded fragments;

a total outgoing bandwidth of the set of fractional-storage CDN servers divided by a number of the set of fractional-storage CDN servers is at least 100 times a total outgoing bandwidth of assembling devices divided by a number of the assembling devices;

although each fractional-storage CDN server has a high outgoing bandwidth, the set of fractional-storage CDN servers from which the assembling device is pulling the erasure-coded fragments comprises multiple fractional-storage CDN servers;

occasionally, while pulling the erasure-coded fragments, identifying at least one fractional-storage CDN server from the set of fractional-storage CDN servers, but less than an entire set of fractional-storage CDN servers, which is loaded to a degree requiring replacement; and

while continuing to pull from other fractional-storage CDN servers in the set of fractional-storage CDN servers, replacing, by the assembling device using the fragment pull protocol, the identified at least one fractional-storage CDN server with at least one substitute fractional-storage CDN server that is not loaded to the degree requiring replacement and that is already serving multiple other assembling devices with fragments.

2. The method of claim 1 , wherein the identifying the at least one fractional-storage CDN server from the set of fractional-storage CDN servers that is loaded to the degree requiring replacement is based on receiving an indication that the at least one fractional-storage CDN server is loaded to the degree requiring replacement.

3. The method of claim 2 , further comprising sending the indication, by the at least one fractional-storage CDN server that is loaded to the degree requiring replacement, in response to a fragment request or a load query.

4. The method of claim 1 , further comprising measuring a latency between the assembling device and the at least one fractional-storage CDN servers in the set of fractional-storage CDN servers, and identifying the at least one fractional-storage CDN server that is loaded to the degree requiring replacement based on the measured latency.

5. The method of claim 1 , further comprising measuring a variance in a latency in responding to fragment requests, and identifying the at least one fractional-storage CDN server that is loaded to the degree requiring replacement based on a latency variance.

6. The method of claim 1 , further comprising

obtaining, from time to time, indications about fractional-storage CDN servers, not in the set, which are not loaded to the degree requiring replacement; and

selecting the at least one substitute fractional-storage CDN server using the obtained indications.

7. The method of claim 6 , wherein the at least one substitute fractional-storage CDN server is one of a least loaded fractional-storage CDN server, and the erasure-coded fragments support source-selection diversity.

8. The method of claim 1 , wherein the identified at least one fractional-storage CDN server does not have enough unutilized bandwidth to allow further fragment requests.

9. The method of claim 1 , wherein the identified at least one fractional-storage CDN server does not have enough processing resources available to support a fragment request.

10. The method of claim 1 , wherein erasure-coding is rateless-coding having a redundancy factor above four.

11. A method for load balancing fractional-storage CDN servers, comprising:

retrieving essentially concurrently, by at least one assembling device using a fragment pull protocol, erasure-coded fragments from a first set comprising a plurality of fractional-storage CDN servers;

each fragment pull protocol associated with a specific segment;

each fractional-storage CDN server configured to store erasure-coded fragments but less than a minimum amount of erasure-coded fragments needed to decode the stored erasure-coded fragments;

a total outgoing bandwidth of the plurality of fractional-storage CDN servers divided by a number of the plurality of fractional-storage CDN servers is at least 100 times a total outgoing bandwidth of the assembling devices divided by a number of the assembling devices;

identifying a second set of fractional-storage CDN servers that are able to increase their current fragment delivery throughput beyond a throughput already used for delivering erasure-coded fragments to other assembling devices;

identifying, while retrieving the erasure-coded fragments, at least one fractional-storage CDN server from the first set that is loaded beyond a certain threshold; and

replacing, by an assembling device, the at least one fractional-storage CDN server from the first set that is loaded beyond the certain threshold with a fractional-storage CDN server selected from the second set according to an algorithm.

12. The method of claim 11 , wherein the algorithm comprises random or pseudo random selection of the replacement at least one fractional-storage CDN server, and the erasure-coded fragments support source-selection diversity.

13. The method of claim 11 , wherein the algorithm comprises selecting a least loaded fractional-storage CDN server as the replacement fractional-storage CDN server.

14. The method of claim 11 , wherein the algorithm comprises selecting a lowest latency fractional-storage CDN servers in relation to the assembling device as the replacement at least one fractional-storage CDN server.

15. The method of claim 14 , further comprising obtaining data regarding a router hop-count between the assembling device and the first set comprising the plurality of fractional-storage CDN servers, and deriving latencies from the router hop-count data.

16. The method of claim 11 , further comprising measuring latencies by the assembling device, and selecting a fractional-storage CDN server having a lowest latency variance in relation to the assembling device as the replacement at least one fractional-storage CDN server.

17. The method of claim 11 , wherein the fractional-storage CDN servers of the second set of fractional-storage CDN servers are able to increase their current fragment delivery throughput by using currently unutilized bandwidth.

18. The method of claim 11 , wherein the fractional-storage CDN servers of the second set are able to increase their current fragment delivery throughput by using currently unutilized computational resources.

19. A system comprising: at least 100 fractional-storage CDN servers, comprising processing units and memory units, connected to a public Internet via a physical connection, and at least 100 times more assembling devices;

each fractional-storage CDN server configured to store erasure-coded fragments associated with substantially sequential segments of streaming contents but less than 20% of a minimum amount of erasure-coded fragments needed to decode the stored erasure-coded fragments, and is further configured to respond essentially concurrently with fragments to fragment pull protocol requests issued by the at least 100 times more assembling devices comprising processing units and memory units;

a total outgoing bandwidth of the at least 100 fractional-storage CDN servers divided by a number of the at least 100 fractional-storage CDN servers is at least 100 times a total outgoing bandwidth of the at least 100 times more assembling devices divided by a number of the at least 100 times more assembling devices;

wherein the system is configured to achieve load-balancing by directing the fragment pull protocol requests towards less loaded fractional-storage CDN servers, wherein an increased throughput on each fractional-storage CDN server as a reaction to directed fragment pull protocol requests from a single assembling device is smaller than a throughput at which the at least 100 fractional-storage CDN server already serves multiple assembling devices with erasure-coded fragments, resulting in system stability during multiple replacement events.

20. The system of claim 19 , wherein the system enables each assembling device to select least loaded fractional-storage CDN servers by itself.

Assignments (4)
MERGER Recorded Jan 20, 2016
From: ASTER RISK MANAGEMENT LLC
To: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY
Reel/Frame 037535/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2012
From: PATENTVC LTD.
To: IDESSENCE AG
Reel/Frame 028170/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2012
From: IDESSENCE AG
To: ASTER RISK MANAGEMENT LLC
Reel/Frame 028174/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2012
From: ZUCKERMAN, GAL; THIEBERGER, GIL
To: PATENTVC LTD.
Reel/Frame 027763/0456 →
Continuity (3)
Provisional Application 61105683 · Oct 15, 2008
Provisional Application 61251437 · Oct 14, 2009
Related Publication 20100095004A1 · Apr 15, 2010