# US 11,310,334 B1 · Automatic smart propagation of caching directives

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

- Number: US 11,310,334 B1
- Document ID: US11310334B1
- Status: Granted
- Kind: B1
- Application number: 17/159,806
- Filed: 2021-01-27
- Granted: 2022-04-19
- Earliest claimed: 2021-01-27
- Assignees: Bby Solutions, Inc.
- Applicants: Bby Solutions, Inc.
- Inventors: David Adolphson; Praveen Kotla
- Web page: https://patentgrep.com/patent/US11310334B1

## CPC

- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and techniques for automatic smart propagation of caching directives are described herein. A request may be received for an object of a webpage. A cache state may be determined for a cache control header retrieved for the object. A time to live value may be calculated for the object based on the cache state and a header time to live value included in the cache control header. A cache directive that includes the time to live value may be stored for the object in a cache. The object may be updated in the cache upon receipt of a subsequent request based on the cache directive.

## Claims

### Claim 1

A system for automatic cache propagation comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
receive a request for an object of a webpage;
determine a cache state for a cache control header retrieved for the object;
calculate a time to live value for the object based on the cache state and a header time to live value included in the cache control header;
store a cache directive that includes the time to live value for the object in a cache; and
update the object in the cache upon receipt of a subsequent request based on the cache directive.

### Claim 2 (depends on 1)

The system of claim 1, the memory further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
store metadata for the object in the cache that includes an expiration time for the object; and
return a maximum age value calculated from the metadata for the object in response to receipt of the subsequent request.

### Claim 3 (depends on 2)

The system of claim 2, wherein the object is updated based on a determination that a time of the subsequent request exceeds the maximum age value.

### Claim 4 (depends on 2)

The system of claim 2, wherein the maximum age value is calculated by rounding a lowest maximum age value from a set of maximum age values for the object.

### Claim 5 (depends on 1)

The system of claim 1, wherein the cache state indicates a status of the object in the cache between a time the object is stored in the cache and a time the object in the cache is expired.

### Claim 6 (depends on 1)

The system of claim 1, the memory further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
generate a minimum time to live value and a maximum time to live value for the object, wherein the cache state is determined at least in part using the minimum time to live value and the maximum time to live value.

### Claim 7 (depends on 1)

The system of claim 1, wherein the time to live value includes a fresh time to live portion and a stale time to live portion and the memory further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
retrieve the object from the cache when a time of the subsequent request falls within the fresh time to live portion; and
validate the object when the time of the subsequent request falls within the stale time to live portion.

### Claim 8

At least one non-transitory machine-readable medium including instructions for automatic cache propagation that, when executed by at least one processor, cause the at least one processor to perform operations to:
receive a request for an object of a webpage;
determine a cache state for a cache control header retrieved for the object;
calculate a time to live value for the object based on the cache state and a header time to live value included in the cache control header;
store a cache directive that includes the time to live value for the object in a cache; and
update the object in the cache upon receipt of a subsequent request based on the cache directive.

### Claim 9 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
store metadata for the object in the cache that includes an expiration time for the object; and
return a maximum age value calculated from the metadata for the object in response to receipt of the subsequent request.

### Claim 10 (depends on 9)

The at least one non-transitory machine-readable medium of claim 9, wherein the object is updated based on a determination that a time of the subsequent request exceeds the maximum age value.

### Claim 11 (depends on 9)

The at least one non-transitory machine-readable medium of claim 9, wherein the maximum age value is calculated by rounding a lowest maximum age value from a set of maximum age values for the object.

### Claim 12 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, wherein the cache state indicates a status of the object in the cache between a time the object is stored in the cache and a time the object in the cache is expired.

### Claim 13 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
generate a minimum time to live value and a maximum time to live value for the object, wherein the cache state is determined at least in part using the minimum time to live value and the maximum time to live value.

### Claim 14 (depends on 8)

The at least one non-transitory machine-readable medium of claim 8, wherein the time to live value includes a fresh time to live portion and a stale time to live portion and further comprising instructions that, when executed by the at least one processor, cause the at least one processor to perform operations to:
retrieve the object from the cache when a time of the subsequent request falls within the fresh time to live portion; and
validate the object when the time of the subsequent request falls within the stale time to live portion.

### Claim 15

A method for automatic cache propagation comprising:
receiving a request for an object of a webpage;
determining a cache state for a cache control header retrieved for the object;
calculating a time to live value for the object based on the cache state and a header time to live value included in the cache control header;
storing a cache directive including the time to live value for the object in a cache; and
updating the object in the cache upon receipt of a subsequent request based on the cache directive.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
storing metadata for the object in the cache including an expiration time for the object; and
returning a maximum age value calculated from the metadata for the object in response to receipt of the subsequent request.

### Claim 17 (depends on 16)

The method of claim 16, wherein the object is updated based on a determination that a time of the subsequent request exceeds the maximum age value.

### Claim 18 (depends on 16)

The method of claim 16, wherein the maximum age value is calculated by rounding a lowest maximum age value from a set of maximum age values for the object.

### Claim 19 (depends on 15)

The method of claim 15, wherein the cache state indicates a status of the object in the cache between a time the object is stored in the cache and a time the object in the cache is expired.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
generating a minimum time to live value and a maximum time to live value for the object, wherein the cache state is determined at least in part using the minimum time to live value and the maximum time to live value.

### Claim 21 (depends on 15)

The method of claim 15, wherein the time to live value includes a fresh time to live portion and a stale time to live portion and further comprising:
retrieving the object from the cache when a time of the subsequent request falls within the fresh time to live portion; and
validating the object when the time of the subsequent request falls within the stale time to live portion.
