# US 2014/0195686 A1 · Optimized Consistent Request Distribution for Balanced Load Distribution in a Content Delivery Network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195686 A1
- Document ID: US20140195686A1
- Status: Published application
- Kind: A1
- Application number: 13/737,145
- Filed: 2013-01-09
- Published: 2014-07-10
- Earliest claimed: 2013-01-09
- Assignees: Edgecast Networks, Inc.
- Applicants: Edgecast Networks, Inc.
- Inventors: Donnevan Scott Yeager; Timothy W. Hartrick; Robert J. Peters
- Web page: https://patentgrep.com/patent/US20140195686A1

## CPC

- H04L 67/1014: based on the content of a request
- H04L 61/2528: {Translation at a proxy}
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/289: Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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.

## Claims

### Claim 1

A load distribution server for distributing content requests amongst a set of servers, the load distribution server performing a computer-implemented method comprising:
obtaining a list of identifiers comprising an identifier for each server in the set of servers;
producing a first 64-bit hash for each identifier in the list of identifiers, wherein producing the first 64-bit hash for a particular identifier in the list of identifiers comprises initializing a first 64-bit variable and for each character in the particular identifier, bitshifting a previous value of the first 64-bit variable by a first seed value and adding a value of the character to the first 64-bit variable;
receiving a request comprising a URL that identifies content being requested;
producing a second 64-bit hash of the URL, wherein producing the second 64-bit hash comprises initializing a second 64-bit variable and for each character in the URL, bitshifting a previous value of the second 64-bit value by a second seed value and adding a value of the character to the second 64-bit variable;
combining the second 64-bit hash with each first 64-bit hash;
selecting a server from the set of servers to process the request based on a result of combining the second 64-bit hash with each first 64-bit hash; and
distributing the request to the selected server.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising advertising an IP address to receive any requests designated for the set of servers.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the list of identifiers is a first list of identifiers, the computer-implemented method further comprising obtaining a second list of identifiers that identify differentiated content from undifferentiated content.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3 further comprising analyzing the request using the second list of identifiers and identifying the request as one for differentiated content or undifferentiated content.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4 further comprising adjusting the first 64-bit hash for each particular server of the set of servers by a specific load factor value that is assigned to that particular server when said identifying identifies the request as one for differentiated content, and wherein combining the second 64-bit result with each first 64-bit result comprises combining the second 64-bit result with each first 64-bit result as adjusted by a load factor value.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 further comprising aggregating a log from each server of the set of servers, each log recording a number of times different content was requested from that server.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6 further comprising processing each log from the set of servers to identify a subset of hot content, the subset of hot content representing content that is requested more than a specified threshold in a particular period of time.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7 further comprising processing the URL of the request to determine if the request is one for content identified in the subset of hot content.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8 further comprising modifying a result of combining the second 64-bit hash with each first 64-bit hash by a load factor when the request is for content identified in the subset of hot content.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9 further comprising not modifying the result of combining the second 64-bit hash with each first 64-bit hash when the request is not for content identified in the subset of hot content.

### Claim 11 (depends on 9)

The computer-implemented method of claim 9, wherein the load factor prioritizes selection of a specific server from the set of servers to process the subset of hot content.

### Claim 12

A load distribution server for distributing content requests amongst a set of servers, the load distribution server performing a computer-implemented method comprising:
configuring an identifier listing identifying differentiated content;
configuring a consistent hash function computing a first hash based on a URL identifying requested content and a set of second hashes based on an identifier identifying each server in the set of servers;
receiving a request comprising a URL identifying content that is requested;
analyzing the request to determine whether the request is for differentiated content or undifferentiated content based on whether the URL matches an entry in the identifier listing;
selecting a server from the set of servers to process the request by hashing the URL using the consistent hash when the incoming request is for undifferentiated content; and
selecting a server from the set of servers to process the request by hashing the URL using the consistent hash and by adjusting at least one resulting value with a set of load factor values when the incoming request is for undifferentiated content; and
passing the request to a selected server.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12 further comprising aggregating a log from each server of the set of servers, the log tracking loads imposed on the server based different content requests processed by the server.

### Claim 14 (depends on 13)

The computer-implemented method of claim 13, wherein configuring the identifier listing comprises identifying the differentiated content that is distinguishable from other undifferentiated content by processing each log to identify the differentiated content that imposes different load requirements on the set of servers than the undifferentiated content.

### Claim 15 (depends on 12)

The computer-implemented method of claim 12, wherein computing the first hash comprises, for each character of the URL, (i) bit shifting a 64-bit result of the first hash and (ii) summing a value of the character to the 64-bit result.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein computing the second set of hashes comprises, for each character of an identifier identifying a particular server of the set of servers, (i) bit shifting a 64-bit result of the second hash and (ii) summing a value of the character to the 64-bit result.

### Claim 17

For a content delivery network point of presence (PoP) comprising a first tier distribution element and a plurality of second tier caching elements, a computer-implemented method performed by the first tier distribution element to distribute requests across the plurality of second tier caching elements, the computer-implemented method comprising:
configuring an identifier listing, the identifier listing identifying requests for differentiated content;
receiving an incoming request comprising a URL identifying content that is requested;
analyzing the request to determine whether the request is for differentiated content or undifferentiated content based on whether the URL matches an entry in the identifier listing;
invoking a first consistent distribution scheme that distributes the request to a first caching element of the plurality of second tier caching elements when the request is for differentiated content, the first consistent distribution scheme providing an even distribution for requests of differentiated content across the plurality of second tier caching elements; and
invoking a second consistent distribution scheme that distributes the request to a second caching element of the plurality of second tier caching elements when the request is for undifferentiated content, wherein the second consistent distribution scheme provides an even distribution for requests of undifferentiated content across the plurality of second tier caching elements.

### Claim 18 (depends on 17)

The computer-implemented method of claim 17, wherein the first consistent distribution scheme distributes requests for differentiated content across a first subset of the plurality of caching elements that are optimized for differentiated content delivery.

### Claim 19 (depends on 18)

The computer-implemented method of claim 18, wherein the second consistent distribution scheme distributes requests for undifferentiated content across a second subset of the plurality of caching elements that are optimized for undifferentiated content delivery, wherein the second subset of caching elements comprise caching elements not in the first subset of caching elements.

### Claim 20 (depends on 17)

The computer-implemented method of claim 17 further comprising aggregating a log from each caching element of the plurality of caching elements.

### Claim 21 (depends on 20)

The computer-implemented method of claim 20 further comprising processing each log to dynamically determine different content that is identified as differentiated content.

### Claim 22 (depends on 21)

The computer-implemented method of claim 21 further comprising dynamically modifying the first consistent distribution scheme based on content that is dynamically identified as differentiated content.
