# US 11,445,045 B1 · Systems and methods for preventing the caching of rarely requested objects

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

- Number: US 11,445,045 B1
- Document ID: US11445045B1
- Status: Granted
- Kind: B1
- Application number: 17/645,325
- Filed: 2021-12-21
- Granted: 2022-09-13
- Earliest claimed: 2021-12-21
- Assignees: Akamai Technologies, Inc.
- Applicants: Akamai Technologies, Inc.
- Inventors: Dmitry Sotnikov; Brian Mancuso; Shai Kedem; Omri Guttman; Michael Hakimi
- Web page: https://patentgrep.com/patent/US11445045B1

## CPC

- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04L 61/58: Caching of addresses or names
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 61/4511: using domain name system [DNS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Improved technology for managing the caching of objects that are rarely requested by clients. A cache system can be configured to assess a class of objects (such as objects associated with a particular domain) for cacheability, based on traffic observations. If the maximum possible cache offloading for the class of objects falls below a threshold level, which indicates a high proportion of non-cacheable or “single-hitter” content, then cache admission logic is configured to admit objects only after multiple clients requests during a time period (usually the object's time in cache, or eviction age). Otherwise, the cache admission logic may operate to admit objects to the cache after the first client request, assuming the object meets cacheability criteria. The technological improvements disclosed herein can be used to improve cache utilization, for example by preventing single-hitter objects from pushing out multi-hit objects (the objects that get hits after being added to cache).

## Claims

### Claim 1

A method, comprising:
providing cache admission logic at a proxy server, the cache admission logic including a first mode, in which an object is admitted to a cache of the proxy server in response to a single client request for the object, and a second mode, in which the object is admitted to the cache only after a plurality of client requests for the object;
determining a maximum offload potential for a first and a second class of objects;
upon a determination that the maximum offload potential of the first class of objects is above a threshold value, applying the first mode of the cache admission logic in response to a client request for any of the first class of objects; and,
upon a determination that the maximum offload potential of the second class of objects is below the threshold value, applying the second mode of the cache admission logic in response to a client request for any of the second class of objects.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first class of objects is associated with a first domain name, and the second class of objects is associated with a second domain name.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first class of objects is associated with a first URL path, and the second class of objects is associated with a second URL path.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first class of objects is associated with a first tenant, and the second class of objects is associated with a second tenant, the proxy server being part of a distributed set of proxy servers forming a multi-tenant platform.

### Claim 5 (depends on 1)

The method of claim 1, wherein the second mode comprises assessing whether an object has been requested more than once during a time period related to a cache eviction age.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second mode comprises assessing whether an object has been requested more than once during a time period related to a capacity of a Bloom filter.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second mode comprises searching at least one Bloom filter for objects in the second class of objects.

### Claim 8 (depends on 7)

The method of claim 7, wherein the at least one Bloom filter comprises at least two Bloom filters, and the at least two Bloom filters are sized in relation to a size of the cache.

### Claim 9

A system, comprising:
a first set of one or more computers operable to determine a maximum offload potential for a first and a second class of objects;
a second set of one or more computers operable to:
provide cache admission logic at a proxy server, the cache admission logic including a first mode, in which an object is admitted to a cache of the proxy server in response to a single client request for the object, and a second mode, in which the object is admitted to the cache only after a plurality of client requests for the object;
upon a determination that the maximum offload potential of the first class of objects is above a threshold value, apply the first mode of the cache admission logic in response to a client request for any of the first class of objects; and,
upon a determination that the maximum offload potential of the second class of objects is below the threshold value, apply the second mode of the cache admission logic in response to a client request for any of the second class of objects;
wherein each of the first set of one or more computers and the second set of one or more computers has circuitry forming at least one processor and memory holding computer program instructions for execution on the at least one processor to operate as specified above.

### Claim 10 (depends on 9)

The system of claim 9, wherein the first class of objects is associated with a first domain name, and the second class of objects is associated with a second domain name.

### Claim 11 (depends on 9)

The system of claim 9, wherein the first class of objects is associated with a first URL path, and the second class of objects is associated with a second URL path.

### Claim 12 (depends on 9)

The system of claim 9, wherein the first class of objects is associated with a first tenant, and the second class of objects is associated with a second tenant, the proxy server being part of a distributed set of proxy servers forming a multi-tenant platform.

### Claim 13 (depends on 9)

The system of claim 9, wherein the second mode comprises assessing whether an object has been requested more than once during a time period related to a cache eviction age.

### Claim 14 (depends on 9)

The system of claim 9, wherein the second mode comprises assessing whether an object has been requested more than once during a time period related to a capacity of a Bloom filter.

### Claim 15 (depends on 9)

The system of claim 9, wherein the second comprises searching at least one Bloom filter for objects in the second class of objects.

### Claim 16 (depends on 15)

The system of claim 15, wherein the at least one Bloom filter comprises at least two Bloom filters, and the at least two Bloom filters are sized in relation to a size of the cache.

### Claim 17

A non-transitory computer readable medium holding program instructions for execution on at least one processor, the program instructions comprising instructions to:
provide cache admission logic at a proxy server, the cache admission logic including a first mode, in which an object is admitted to a cache of the proxy server in response to a single client request for the object, and a second mode, in which the object is admitted to the cache only after a plurality of client requests for the object;
determine a maximum offload potential for a first and a second class of objects;
upon a determination that the maximum offload potential of the first class of objects is above a threshold value, apply the first mode of the cache admission logic in response to a client request for any of the first class of objects; and,
upon a determination that the maximum offload potential of the second class of objects is below the threshold value, apply the second mode of the cache admission logic in response to a client request for any of the second class of objects.
