# US 2019/0356735 A1 · Load balancing across origin servers

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

- Number: US 2019/0356735 A1
- Document ID: US20190356735A1
- Status: Published application
- Kind: A1
- Application number: 16/530,184
- Filed: 2019-08-02
- Published: 2019-11-21
- Earliest claimed: 2016-04-28
- Assignees: Fastly, Inc.
- Applicants: Fastly, Inc.
- Inventors: Tyler B. McMullen
- Web page: https://patentgrep.com/patent/US20190356735A1

## CPC

- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Disclosed herein are enhancements for operating a content delivery network to load balance origin requests to origin servers. In one implementation, a method of operating a content delivery network comprising a plurality of cache nodes that cache content between end user devices and origin servers includes, in a first cache node of the plurality of cache nodes, obtaining distribution information indicative of how each cache node in the plurality of cache nodes has distributed content requests to the origin servers. The method further provides, in the first cache node maintaining a load balancing profile for the plurality of origin servers based on the distribution information, and distributing a content request to an origin server in the plurality of origin servers based at least in part on the load balancing profile for the plurality of origin servers.

## Claims

### Claim 1

A method of operating an edge network to load balance requests across origin servers, the method comprising:
in a server in the edge network, receiving information from one or more other servers in the edge network indicative of a distribution, by the one or more other servers, of past requests for content to each of the origin servers;
in the server, updating a load balancing profile for the origin servers to reflect the distribution of requests by the one or more other servers;
in the server, receiving new requests for content; and
for one or more of the new requests for content, selecting to which origin server, of the origin servers, to send a given request for content based at least on the load balancing profile for the origin servers.

### Claim 2 (depends on 1)

The method of claim 1 wherein the information comprises a quantity of requests sent to each one of the origin servers by each of the one or more other servers.

### Claim 3 (depends on 1)

The method of claim 1 further comprising updating the load balancing profile for the origin servers to reflect a distribution of requests by the server to the origin servers.

### Claim 4 (depends on 3)

The method of claim 3 further comprising the server reporting, to the one or more other servers, the distribution of requests by the server to the origin servers.

### Claim 5 (depends on 1)

The method of claim 1 further comprising caching the content at the server and responding to future requests with the cached version of the content.

### Claim 6 (depends on 1)

The method of claim 1 wherein the requests for content originate from end user devices and route to the edge network.

### Claim 7

A computing apparatus comprising:
one or more computer readable storage media;
one or more processors operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media for load balancing requests across origin servers that, when executed by the one or more processors, direct the computing apparatus to at least:
receive information from one or more servers in the edge network indicative of a distribution, by the one or more servers, of past requests for content to each of the origin servers;
update a load balancing profile for the origin servers to reflect the distribution of requests by the one or more servers;
receive new requests for content; and
for one or more of the new requests for content, select to which origin server, of the origin servers, to send a given request for content based at least on the load balancing profile for the origin servers.

### Claim 8 (depends on 7)

The computing apparatus of claim 7 wherein the information comprises a quantity of requests sent to each one of the origin servers by each of the one or more servers.

### Claim 9 (depends on 7)

The computing apparatus of claim 7 wherein the program instructions further direct the computing apparatus to update the load balancing profile for the origin servers to reflect a distribution of requests by the computing apparatus to the origin servers.

### Claim 10 (depends on 9)

The computing apparatus of claim 9 wherein the program instructions further direct the computing apparatus to report, to the one or more other servers, the distribution of requests by the computing apparatus to the origin servers.

### Claim 11 (depends on 8)

The computing apparatus of claim 8 wherein the program instructions further direct the computing apparatus to cache the content at the server and respond to future requests with the cached version of the content.

### Claim 12 (depends on 7)

The computing apparatus of claim 7 wherein the new requests for content originate from end user devices and route to the computing apparatus.

### Claim 13

A system comprising:
a means for tracking a distribution of content requests sent by a plurality of cache nodes in a content delivery network to a plurality of origin servers;
a means for receiving a request from an end user device for content that is not yet cached by the cache node;
a means for selecting an origin server in the plurality of origin servers to retrieve the requested content based at least in part on the distribution of content requests; and
a means for sending a content request to the selected origin server.

### Claim 14 (depends on 13)

The system of claim 13 wherein the distribution of content requests comprises quantities of the content requests distributed to each origin server in the plurality of origin servers.

### Claim 15 (depends on 14)

The system of claim 14 wherein the means for tracking the distribution of content requests sent by the plurality of cache nodes to the plurality of origin servers comprises:
a means for receiving first distribution information as a plurality of reports from other cache nodes in the plurality of cache nodes; and
a means for identifying second distribution information for the cache node.

### Claim 16 (depends on 15)

The system of claim 15 further comprising a means for identifying a timestamp for when each report in the plurality of reports is received by the cache node.

### Claim 17 (depends on 16)

The system of claim 16 wherein the means for selecting the origin server in the plurality of origin servers to retrieve the requested content based at least in part on the distribution of content requests comprises a means for selecting the origin server in the plurality of origin servers to retrieve the requested content based on the distribution of content requests and the timestamps.
