# US 2019/0173974 A1 · Proxy-based cache content distribution and affinity

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

- Number: US 2019/0173974 A1
- Document ID: US20190173974A1
- Status: Published application
- Kind: A1
- Application number: 15/474,581
- Filed: 2017-03-30
- Published: 2019-06-06
- Earliest claimed: 2011-02-07
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Won Suk Yoo; Nick Holt; Daniel Vasquez Lopez; Aniello Scotto Di Marco
- Web page: https://patentgrep.com/patent/US20190173974A1

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 45/44: Distributed routing
- H04L 45/58: Association of routers
- H04L 67/1021: based on client or server locations
- H04L 67/288: Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
- H04L 67/2885: Hierarchically arranged intermediate devices, e.g. for hierarchical caching
- H04L 67/63: Routing a service request depending on the request content or context
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A distributed caching hierarchy that includes multiple edge routing servers, at least some of which receiving content requests from client computing systems via a load balancer. When receiving a content request, an edge routing server identifies which of the edge caching servers the requested content would be in if the requested content were to be cached within the edge caching servers, and distributes the content request to the identified edge caching server in a deterministic and predictable manner to increase the likelihood of increasing a cache-hit ratio.

## Claims

### Claim 1

(canceled)

### Claim 2

A distribution network for retrieving cached content comprising:
a load balancer that receives requests from one or more client computing systems and that routes said content requests to one or more edge caching servers, and wherein each edge caching server to which a content request is routed comprises:
an edge caching unit having at least one hardware processor and memory for caching content obtained from one or more origin servers; and
an edge routing unit which receives content requests from the load balancer, the edge routing unit comprising at least one hardware processor and memory containing computer-executable instructions which, when implemented, cause the edge routing unit to route the received content requests to one or more of the plurality of edge caching servers where the content of the received content requests is likely to be cached by performing a computer-implemented method that comprises:
identifying which of the plurality of edge caching servers content for one or more of the received content requests would be in if the content for the one or more received content requests were to be cached within the plurality of edge caching servers; and
routing the one or more of the received content requests to the identified edge caching server.

### Claim 3 (depends on 2)

The distribution network in accordance with claim 2, wherein the identified edge caching server determines whether the edge caching unit of the identified edge caching server has the one or more of the received content requests routed to the identified edge caching server.

### Claim 4 (depends on 3)

The distribution network in accordance with claim 3, wherein the edge caching unit of the identified edge caching server initiates return of content for the one or more received content requests to one of the client computing systems.

### Claim 5 (depends on 2)

The distribution network in accordance with claim 2, wherein the identified edge caching server determines that the edge caching unit of the identified edge caching server does not have the requested content, and wherein an edge routing unit of the identified edge caching server then identifies a further edge caching server where the content for the one or more received content requests is likely to be stored, and then forwards the one or more received content requests to the further edge caching server.

### Claim 6 (depends on 2)

The distribution network in accordance with claim 2,
wherein the edge caching unit of the identified edge caching server determines that the edge caching unit of the identified edge caching server does not have content for the received content requests, and wherein the edge routing unit of the identified edge caching server probabilistically identifies a different tier of edge caching servers at which the received content requests would likely be cached, and the received content requests are then routed to one of the edge servers in the identified different tier of edge caching servers.

### Claim 7 (depends on 2)

The distribution network of claim 2, wherein the load balancer routes the content requests based at least in part on a health status associated with each of the edge routing units.

### Claim 8 (depends on 2)

The distribution network of claim 2, wherein each edge routing unit is configured to refrain from caching content.

### Claim 9 (depends on 2)

The distribution network of claim 2, wherein each of the edge caching units caches mutually exclusive sets of cached content from one another.

### Claim 10

A computer-implemented method for retrieving cached content from a hierarchy of edge caching servers, the computer-implemented method being performed by one or more processors executing computer executable instructions for the computer-implemented method, and the computer-implemented method comprising:
caching content at a plurality of edge caching servers, wherein cached contents are stored at one or more edge caching units of the edge caching servers;
receiving at a load balancer one or more content requests from one or more client computing systems;
without being aware of where any content corresponding to the received content requests may reside in the plurality of edge caching servers, routing from the load balancer said content requests to one or more edge caching servers, and wherein each edge caching server to which a content request is routed comprises an edge routing unit configured to route the received content requests to one or more of the plurality of edge caching servers where the content of the received content requests is likely to be cached, and wherein the routing is performed by:
identifying which of the plurality of edge caching servers content for one or more of the received content requests would be in if the content for the one or more received content requests were to be cached within the plurality of edge caching servers; and
routing the one or more of the received content requests to the identified edge caching server.

### Claim 11 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein the identified edge caching server determines whether the edge caching unit of the identified edge caching server has the one or more of the received content requests routed to the identified edge caching server.

### Claim 12 (depends on 11)

The computer-implemented method in accordance with claim 11, wherein the edge caching unit of the identified edge caching server initiates return of content for the one or more received content requests to one of the client computing systems.

### Claim 13 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein the identified edge caching server determines that the edge caching unit of the identified edge caching server does not have the requested content, and wherein an edge routing unit of the identified edge caching server then identifies a further edge caching server where the content for the one or more received content requests is likely to be stored, and then forwards the one or more received content requests to the further edge caching server.

### Claim 14 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein the edge caching unit of the identified edge caching server determines that the edge caching unit of the identified edge caching server does not have content for the received content requests, and wherein the edge routing unit of the identified edge caching server probabilistically identifies a different tier of edge caching servers at which the received content requests would likely be cached, and the received content requests are then routed to one of the edge servers in the identified different tier of edge caching servers.

### Claim 15 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein the load balancer routes the content requests based at least in part on a health status associated with each of the edge routing units.

### Claim 16 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein each edge routing unit is configured to refrain from caching content.

### Claim 17 (depends on 10)

The computer-implemented method in accordance with claim 10, wherein each of the edge caching units caches mutually exclusive sets of cached content from one another.

### Claim 18

One or more hardware storage devices containing computer-executable instructions which, when executed by one or more processors, cause the one or more processors to perform a computer-implemented method for retrieving cached content from a hierarchy of edge caching servers, and wherein the computer-implemented method comprises:
caching content at a plurality of edge caching servers, wherein cached contents are stored at one or more edge caching units of the edge caching servers;
receiving at a load balancer one or more content requests from one or more client computing systems;
without being aware of where any content corresponding to the received content requests may reside in the plurality of edge caching servers, routing from the load balancer said content requests to one or more edge caching servers, and wherein each edge caching server to which a content request is routed comprises an edge routing unit configured to route the received content requests to one or more of the plurality of edge caching servers where the content of the received content requests is likely to be cached, and wherein the routing is performed by:
identifying which of the plurality of edge caching servers content for one or more of the received content requests would be in if the content for the one or more received content requests were to be cached within the plurality of edge caching servers; and
routing the one or more of the received content requests to the identified edge caching server.

### Claim 19 (depends on 18)

The one or more hardware storage devices in accordance with claim 18, wherein the identified edge caching server determines whether the edge caching unit of the identified edge caching server has the one or more of the received content requests routed to the identified edge caching server, and wherein the edge caching unit of the identified edge caching server initiates return of content for the one or more received content requests to one of the client computing systems.

### Claim 20 (depends on 18)

The one or more hardware storage devices in accordance with claim 18, wherein the identified edge caching server determines that the edge caching unit of the identified edge caching server does not have the requested content, and wherein an edge routing unit of the identified edge caching server then identifies a further edge caching server where the content for the one or more received content requests is likely to be stored, and then forwards the one or more received content requests to the further edge caching server.

### Claim 21 (depends on 18)

The one or more hardware storage devices in accordance with claim 18, wherein the load balancer routes the content requests based at least in part on a health status associated with each of the edge routing units.
