Optimized consistent request distribution for balanced load distribution in a content delivery network
First Claim
1. A method comprising:
- receiving a plurality of requests over the Internet at a load distribution server allocating the plurality of requests across a plurality of distribution servers, the plurality of requests comprising a first set of requests directed to a first content type and a second set of requests directed to at least a different second content type, the load distribution server comprising a processor and memory storing an identifier identifying each server of the plurality of distribution servers, the processor;
producing a hash result for each server of the plurality of distribution servers, wherein said producing comprises hashing the identifier identifying each server of the plurality of distribution servers;
selecting a first load factor value for the first set of requests based on the first content type of the first set of requests, and a different second load factor value for the second set of requests based on the second content type of the second set of requests;
distributing the first set of requests across a first set of the plurality of distribution servers by adjusting the hash result produced for each server of the first set of distribution servers with the first load factor value and by selecting a server from the first set of distribution servers to receive each request from the first set of requests based on the hash result of each server of the first set of distribution servers as adjusted by the first load factor value, the first load factor value increasing selection precedence of any server of the first set of distribution servers over a different second set of the plurality of distribution servers; and
distributing the second set of requests across the second set of distribution servers by adjusting the hash result produced for the second set of distribution servers with the second load factor value and by selecting a server from the second set of distribution servers to receive each request from the second set of requests based on the hash result of each server of the second set of distribution servers as adjusted by the second load factor value, the second load factor value increasing selection precedence of any server of the second set of distribution servers over the first set of distribution servers.
6 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a proprietary 64-bit consistent distribution scheme that preserves the efficiencies of CARP while providing a significantly more balanced distribution of requests that is on par with schemes reliant on computationally expensive cryptographic hashes. The scheme performs hashing of requested URLs and identifiers of available servers over a 64-bit space while optimizing the hashing to remove computationally expensive operations. Some embodiments provide a variant of the scheme to provide a differentiated distribution on the basis of one or more differentiating factors. A first variant utilizes load factor values to adjust the resulting hashes and to produce a first distribution of differentiated content that varies from a second distribution of undifferentiated content. A second variant identifies requests for differentiated content from requests for undifferentiated content and utilizes a first scheme to distribute the differentiated content and a second altered scheme to distribute the undifferentiated content.
11 Citations
18 Claims
-
1. A method comprising:
receiving a plurality of requests over the Internet at a load distribution server allocating the plurality of requests across a plurality of distribution servers, the plurality of requests comprising a first set of requests directed to a first content type and a second set of requests directed to at least a different second content type, the load distribution server comprising a processor and memory storing an identifier identifying each server of the plurality of distribution servers, the processor; producing a hash result for each server of the plurality of distribution servers, wherein said producing comprises hashing the identifier identifying each server of the plurality of distribution servers; selecting a first load factor value for the first set of requests based on the first content type of the first set of requests, and a different second load factor value for the second set of requests based on the second content type of the second set of requests; distributing the first set of requests across a first set of the plurality of distribution servers by adjusting the hash result produced for each server of the first set of distribution servers with the first load factor value and by selecting a server from the first set of distribution servers to receive each request from the first set of requests based on the hash result of each server of the first set of distribution servers as adjusted by the first load factor value, the first load factor value increasing selection precedence of any server of the first set of distribution servers over a different second set of the plurality of distribution servers; and distributing the second set of requests across the second set of distribution servers by adjusting the hash result produced for the second set of distribution servers with the second load factor value and by selecting a server from the second set of distribution servers to receive each request from the second set of requests based on the hash result of each server of the second set of distribution servers as adjusted by the second load factor value, the second load factor value increasing selection precedence of any server of the second set of distribution servers over the first set of distribution servers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A computer-implemented method comprising:
receiving a plurality of requests over the Internet at a first tier server controlling distribution of the plurality of requests across a set of second tier servers, the first tier server comprising a processor and memory storing a threshold for differentiating hot content from regular content, the processor leveraging the memory in; monitoring request rates for different content requested in the plurality of requests; distributing a first set of the plurality of requests from the first tier server across the set of second tier servers according to a first consistent distribution scheme, the first set of requests comprising an intermixing of requests requesting at least first content, second content, and third content, and wherein said distributing according to the first consistent distribution scheme comprises sending requests for the first content to a first server of the set of second tier servers, requests for the second content to a second server of the set of second tier servers, and requests for the third content to a third server of the set of second tier servers; classifying the first content as hot content in response to a request rate of the first content exceeding the threshold, and the second content and the third content as regular content in response to request rates of the second content and the third content not exceeding the threshold; and distributing a second set of the plurality of requests directed to the first content from the first tier server across the first server and the second server according to a second consistent distribution scheme, and a third set of the plurality of requests directed to the second content or the third content from the first tier server to at least the third server according to a third consistent distribution scheme, wherein the second distribution scheme is based on results of the first distribution scheme adjusted by a first load factor value that prioritizes selection of the first server and the second server and deprioritizes selection of the third server, and wherein the third distribution scheme is based on the results of the first distribution scheme adjusted by a second load factor value that prioritizes selection of at least the third server and deprioritizes selection of the first server and the second server. - View Dependent Claims (11, 12, 13, 14, 15)
-
16. A method comprising:
-
distributing a first set of requests from a load distribution server across a plurality of servers; identifying a first content type from a plurality of content types requested in the first set of requests creating an unbalanced load across the plurality of servers; receiving over the Internet at the load distribution server, a second set of requests directed to the first content type and a third set of requests directed to other content types from the plurality of content types; and dynamically differentiating a first set of the plurality of servers for distribution of the first content type and a different second set of the plurality of servers for distribution of the other content types, wherein dynamically differentiating comprises; (i) producing a hash result for each server of the plurality of servers by hashing an identifier identifying each server of the plurality of servers, (ii) adjusting, in response to a request from the second set of requests directed to the first content type, the hash result produced for each server of the first set of servers based on a first value associated with the first content type, wherein the hash result produced for each server remains unchanged in response to a request from the third set of requests directed to other content types, (iii) distributing the second set of requests across the first set of servers based on the hash results adjusted with the first value, and (iv) distributing the third set of requests across the second set of servers based on the hash results without said adjusting. - View Dependent Claims (17, 18)
-
Specification