# US 2014/0195646 A1 · Site-based server selection

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

- Number: US 2014/0195646 A1
- Document ID: US20140195646A1
- Status: Published application
- Kind: A1
- Application number: 13/735,827
- Filed: 2013-01-07
- Published: 2014-07-10
- Earliest claimed: 2013-01-07
- Assignees: Netflix, Inc.
- Inventors: Mark Watson; Wei Wei
- Web page: https://patentgrep.com/patent/US20140195646A1

## CPC

- H04L 65/764: {at the destination (reformatting of additional data in video clients H04N21/4355)}
- H04L 65/613: for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637)
- H04L 65/80: Responding to QoS
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In an embodiment, a method comprises receiving a first data streamed from a first server computer at a first site; collecting a first throughput data for the first site based, at least in part, on a first throughput of the first data streamed from the first server computer; receiving a second data streamed from a second server computer at a second site; collecting a second throughput data for the second site based, at least in part, on a second throughput of the second data streamed from the second server computer; switching from the second server computer at the second site, to a third server computer at the first site, based, at least in part, on a comparison between the first throughput data and the second throughput data; wherein the method is performed by one or more special-purpose computing devices.

## Claims

### Claim 1

A method comprising:
receiving first data that is streamed from a first server computer at a first site having a plurality of server computers;
collecting first throughput data for the first site based, at least in part, on a first throughput of the first data that is streamed from the first server computer;
receiving second data that is streamed from a second server computer at a second site;
collecting second throughput data for the second site based, at least in part, on a second throughput of the second data that is streamed from the second server computer;
switching from the second server computer at the second site to a third server computer at the first site, based, at least in part, on a comparison between the first throughput data and the second throughput data;
wherein the method is performed by one or more special-purpose computing devices.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first throughput data is collected during a first session, wherein the second throughput data is collected during a second session.

### Claim 3 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real time;
computing a second throughput estimate based on the second throughput data in real time.

### Claim 4 (depends on 3)

The method of claim 3 comprising:
switching from the third server computer to a fourth server computer at a third site;
collecting a third throughput data for the third site;
computing a third estimate based on the third throughput data in real-time;
wherein throughput data for the third site has not been collected for more than a threshold amount of time.

### Claim 5 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein switching from the second server computer at the second site to the third server computer at the first site is based on the first throughput estimate and the second throughput estimate.

### Claim 6 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator.

### Claim 7 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator;
wherein the second throughput data is not evolving.

### Claim 8 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator;
wherein the second throughput data is evolving.

### Claim 9 (depends on 1)

The method of claim 1 comprising:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
determining that a higher bitrate is available on the second server computer at the second site;
determining that the second throughput estimate is less than a required throughput in order to play the higher bitrate in real-time.

### Claim 10 (depends on 1)

The method of claim 1 comprising:
receiving level data;
associating the first site to a first level based, at least in part, on the level data;
associating the second site to the first level based, at least in part, on the level data;
associating a third site to a second level based, at least in part, on the level data;
switching from the third server computer at the first site, to a fourth server computer at the third site, if the first site and the second site are no longer available, wherein the first site and the second site are no longer available to receive a third data streamed from any server computer at the first site or the second site.

### Claim 11

One or more non-transitory computer-readable media storing one or more sequences of instructions which, when executed by one or more computing devices, cause:
receiving first data that is streamed from a first server computer at a first site having a plurality of server computers;
collecting first throughput data for the first site based, at least in part, on a first throughput of the first data that is streamed from the first server computer;
receiving second data that is streamed from a second server computer at a second site;
collecting second throughput data for the second site based, at least in part, on a second throughput of the second data that is streamed from the second server computer;
switching from the second server computer at the second site to a third server computer at the first site, based, at least in part, on a comparison between the first throughput data and the second throughput data.

### Claim 12 (depends on 11)

The one or more non-transitory computer-readable media of claim 11, further comprising sequences of instructions which when executed cause collecting the first throughput data during a first session, further comprising sequences of instructions which when executed cause collecting the second throughput data during a second session.

### Claim 13 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time.

### Claim 14 (depends on 13)

The one or more non-transitory computer-readable media of claim 13 further comprising:
switching from the third server computer to a fourth server computer at a third site;
collecting a third throughput data for the third site;
computing a third estimate based on the third throughput data in real-time;
wherein throughput data for the third site has not been collected for more than a threshold amount of time.

### Claim 15 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein switching from the second server computer at the second site to the third server computer at the first site is based on the first throughput estimate and the second throughput estimate.

### Claim 16 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator.

### Claim 17 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator;
wherein the second throughput data is not evolving.

### Claim 18 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
wherein the first throughput estimate and the second throughput estimate are based, at least in part, on a kernel density estimator;
wherein the second throughput data is evolving.

### Claim 19 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
computing a first throughput estimate based on the first throughput data in real-time;
computing a second throughput estimate based on the second throughput data in real-time;
determining that a higher bitrate is available on the second server computer at the second site;
determining that the second throughput estimate is less than a required throughput in order to play the higher bitrate in real-time.

### Claim 20 (depends on 11)

The one or more non-transitory computer-readable media of claim 11 further comprising sequences of instructions which when executed cause:
receiving a level data;
associating the first site to a first level based, at least in part, on the level data;
associating the second site to the first level based, at least in part, on the level data;
associating a third site to a second level based, at least in part, on the level data;
switching from the third server computer at the first site, to a fourth server computer at the third site, if the first site and the second site are no longer available, wherein the first site and the second site are no longer available to receive a third data streamed from any server computer at the first site or the second site.
