IP Library Granted Patent US 10,609,173
Granted Patent B2
US 10,609,173 · App. 16/385,537 · Granted Mar 31, 2020

Probability based caching and eviction

Inventors: Amir Reza Khakpour (Santa Monica, CA); Harkeerat Singh Bedi (Los Angeles, CA)
Assignee: Verizon Digital Media Services Inc.
H04L67/2842G06F12/123H04L67/2852G06F12/0888
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,609,173
App. No.
16/385,537
Granted
Mar 31, 2020
Kind
B2
Abstract

Some embodiments set forth probability based caching, whereby a probability value determines in part whether content identified by an incoming request should be cached or not. Some embodiments further set forth probability based eviction, whereby a probability value determines in part whether cached content should be evicted from the cache. Selection of the content for possible eviction can be based on recency and/or frequency of the content being requested. The probability values can be configured manually or automatically. Automatic configuration involves using a function to compute the probability values. In such scenarios, the probability values can be computed as a function of any of fairness, cost, content size, and content type as some examples.

Claims (59)

1. A method comprising:

configuring a first probability value for first content or a first content provider that originates the first content, and a different second probability value for second content or a second content provider that originates the second content;

receiving a request at a content caching server with a cache, wherein the request is for content that is not stored to the cache;

retrieving the content from an external source;

obtaining a probability value of the content or a content provider that originates the content, the probability value specifying a likelihood for entering the content to the cache wherein obtaining the probability value comprises:

selecting the first probability value in response to the request comprising a Uniform Resource Locator (“URL”) that identifies the first content or the first content provider;

selecting the second probability value in response to the request comprising a URL that identifies the second content or the second content provider; and

performing one of at least a first outcome or a second outcome based on the probability value, wherein performing the first outcome comprises serving the content in response to said request and entering the content to the cache, and wherein performing the second outcome comprises serving the content in response to said request without entering the content to the cache.

2. The method of claim 1 further comprising:

generating a random value in a range comprising the probability value;

selecting the first outcome to perform in response to the probability value being greater than the random value; and

selecting the second outcome to perform in response to the probability value being less than the random value.

3. The method of claim 1 further comprising:

adjusting the probability value based on an amount of the cache that is used to store content of the content provider relative to content of other content providers.

4. The method of claim 1 further comprising:

adjusting the probability value based on a number of bytes served by the content caching server in response to requests for content of the content provider relative to the number of bytes served by the content caching server in response to requests for content of other content providers.

5. The method of claim 1 further comprising:

adjusting the probability value by a first value based on size of the content being less than a threshold size; and

adjusting the probability value by a different second value based on the size of the content being greater than the threshold size.

6. The method of claim 1 further comprising:

adjusting cache priority of the content by increasing the probability value to a third probability value in response to the cache priority of the content being greater than cache priority of other content served by the content caching server, and by decreasing the probability value to a fourth probability value in response to the cache priority of the content being less than the cache priority of the other content served by the content caching server;

wherein the third probability value is greater than the fourth probability value.

7. The method of claim 1 further comprising:

adjusting the probability value by increasing the probability value to a third probability value in response to the content being of a first type of content with a higher likelihood of being cached, and by decreasing the probability value to a fourth probability value in response to the content being of a different second type of content with a lower likelihood of being cached;

wherein the third probability value is greater than the fourth probability value.

8. The method of claim 1 further comprising:

adjusting the probability value by increasing the probability value to a third probability value in response to a greater fee that is paid by the content provider to increase the likelihood of the content provider content being cached, and by decreasing the probability value to a fourth probability value in response to a lower fee that is paid by the content provider;

wherein the third probability value is greater than the fourth probability value.

9. A device comprising:

a cache;

a non-transitory computer-readable medium storing a set of processor-executable instructions; and

one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:

configure a first probability value for first content or a first content provider that originates the first content, and a different second probability value for second content or a second content provider that originates the second content;

receive a request for content that is not stored to the cache;

retrieve the content from an external source;

obtain a probability value of the content or a content provider that originates the content, the probability value specifying a likelihood for entering the content to the cache, wherein the processor-executable instructions to obtain the probability value further include processor-executable instructions to:

select the first probability value in response to the request comprising a Uniform Resource Locator (“URL”) that identifies the first content or the first content provider;

select the second probability value in response to the request comprising a URL that identifies the second content or the second content provider; and

perform one of at least a first outcome or a second outcome based on the probability value, wherein performing the first outcome comprises serving the content in response to said request and entering the content to the cache, and wherein performing the second outcome comprises serving the content in response to said request without entering the content to the cache.

10. The device of claim 9 , wherein the processor-executable instructions further include processor-executable instructions to:

generate a random value in a range comprising the probability value;

select the first outcome to perform in response to the probability value being greater than the random value; and

select the second outcome to perform in response to the probability value being less than the random value.

11. The device of claim 9 , wherein the processor-executable instructions further include processor-executable instructions to:

adjust the probability value based on an amount of the cache that is used to store content of the content provider relative to content of other content providers.

12. The device of claim 9 , wherein the processor-executable instructions further include processor-executable instructions to:

adjust the probability value based on a number of bytes served by the content caching server in response to requests for content of the content provider relative to the number of bytes served by the content caching server in response to requests for content of other content providers.

13. A method comprising:

receiving a request at a content caching server with a cache, wherein the request is for content that is not stored to the cache;

retrieving the content from an external source;

obtaining a probability value of the content or a content provider that originates the content, the probability value specifying a likelihood for entering the content to the cache;

adjusting the probability value based on one of (i) an amount of the cache that is used to store content of the content provider relative to content of other content providers, or (ii) a number of bytes served by the content caching server in response to requests for content of the content provider relative to the number of bytes served by the content caching server in response to requests for content of other content providers; and

performing one of at least a first outcome or a second outcome based on the probability value resulting from said adjusting, wherein performing the first outcome comprises serving the content in response to said request and entering the content to the cache, and wherein performing the second outcome comprises serving the content in response to said request without entering the content to the cache.

14. A method comprising:

receiving a request at a content caching server with a cache, wherein the request is for content that is not stored to the cache;

retrieving the content from an external source;

obtaining a probability value of the content or a content provider that originates the content, the probability value specifying a likelihood for entering the content to the cache; and

adjusting the probability value based on cache priority or fee payment, wherein adjusting the probability value based on the cache priority comprises increasing the probability value from a first value to a second value in response to cache priority of the content being greater than cache priority of other content served by the content caching server, and decreasing the probability value from the first value to a third value in response to the cache priority of the content being less than the cache priority of the other content served by the content caching server, and wherein adjusting the probability value based on the fees comprises increasing the probability value from the first value to the second value in response to a greater fee that is paid by the content provider to increase the likelihood of the content provider content being cached, and decreasing the probability value from the first value to the third value in response to a lower fee that is paid by the content provider; and

performing one of at least a first outcome or a second outcome based on the probability value resulting from said adjusting, wherein performing the first outcome comprises serving the content in response to said request and entering the content to the cache, and wherein performing the second outcome comprises serving the content in response to said request without entering the content to the cache.

Assignments (11)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →
CHANGE OF NAME Recorded Mar 15, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 059367/0990 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2019
From: KHAKPOUR, AMIR REZA; BEDI, HARKEERAT SINGH
To: EDGECAST NETWORKS, INC.
Reel/Frame 048896/0674 →
CHANGE OF NAME Recorded Apr 16, 2019
From: EDGECAST NETWORKS, INC.
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 048918/0684 →