IP Library Granted Patent US 8,370,449
Granted Patent B2
US 8,370,449 · App. 13/525,671 · Granted Feb 5, 2013

Content delivery network cache grouping

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 8,370,449
App. No.
13/525,671
Granted
Feb 5, 2013
Kind
B2
Abstract

Content delivery networks (CDNs) deliver content objects for others is disclosed. End user computers are directed to an edge server for delivery of a requested content object by a universal resource indicator (URI). When an edge server does not have a copy of the content object from the URI, information is successively passed to ancestor servers within a hierarchy until the content object is found. There can be different hierarchies designated for different URIs or times at which requests are received. Once the content object is located in the hierarchical chain, the content object is passed back down the chain to the edge server for delivery.

Claims (55)

1. A method to cache content objects in a content delivery network (CDN) according to an arrangement of using different parent caches for URI requests received at different times, the method comprising:

receiving a universal resource indicator (URI) at a cache of an edge server in a first point of presence (POP) at a first time, wherein the URI specifies a content object;

determining that the cache does not hold the content object;

analyzing the URI to determine a first hierarchical tree of caches, the first hierarchical tree of caches having a plurality of levels of caches to successively receive content-object requests upon cache misses at previous levels, the first hierarchical tree of caches comprising a first parent cache;

requesting the first content object from the first parent cache in a second POP;

receiving the URI at the cache of the edge server in the first POP at a second time after the first time;

determining that the cache still does not hold the content object;

analyzing the URI to determine a second hierarchical tree of caches, the second hierarchical tree of caches having a plurality of levels of caches to successively receive content-object requests upon cache misses at previous levels, the second hierarchical tree of caches comprising a second parent cache different from the first parent cache; and

requesting the content object from the second parent cache.

2. The method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times as recited in claim 1 , wherein the first URI is from a first request for the first content object, further comprising:

analyzing the first request to determine if the cache has received the first request from a loop,

determining a third parent cache different from the first parent cache, and

requesting the first content object from the third parent cache should the loop be determined.

3. The method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times as recited in claim 1 , further comprising:

analyzing the first time at which the URI was received with respect to a predetermined time schedule; and

choosing the first hierarchy from a plurality of hierarchies based upon the analysis of the first time.

4. The method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times as recited in claim 3 , wherein the predetermined time schedule comprises a periodic time schedule.

5. The method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times as recited in claim 1 , further comprising:

determining that the first parent cache does not hold the content object;

determining a first grandparent cache from the URI, the first grandparent cache being in the first hierarchical tree of caches; and

requesting the content object from the first grandparent cache.

6. A non-transitory machine-readable medium having machine-executable instructions configured to perform the machine-implementable method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times of claim 1 .

7. A machine adapted to perform the machine-implementable method to cache content objects in the CDN according to the arrangement of using different parent caches for URI requests received at different times of claim 1 .

8. A CDN for caching content objects according to a selectable arrangement of separate caches, the CDN comprising:

a plurality of POPs;

a plurality of edge servers distributed among the plurality of POPs, wherein the plurality of edge servers comprise a plurality of caches; and

a cache parent determining function that receives a URI specifying a content object, at each of a plurality of times, for delivery to end user computers, wherein:

the URI include information that allows selecting from a plurality of hierarchical trees of caches, each hierarchical tree having a plurality of levels of caches to successively receive content object requests upon a cache miss at a previous level, and

a selection of a hierarchical tree of caches depends on a time at which the URI is received.

9. The CDN for caching content objects according to the selectable arrangement of separate caches as recited in claim 8 , wherein a parent cache is identified based on a hierarchical tree of the plurality of hierarchical trees, the parent cache being one level above a cache most recently assigned the content object.

10. The CDN for caching content objects according to the selectable arrangement of separate caches as recited in claim 8 , wherein the plurality of POPs are located in a plurality of different geographic locations.

11. The CDN for caching content objects according to the selectable arrangement of separate caches as recited in claim 8 , wherein the selection of the hierarchical tree of caches depends on a time, within a period, at which the URI is received.

12. The CDN for caching content objects according to the selectable arrangement of separate caches as recited in claim 8 , wherein the URI is a portion of a URI.

13. The CDN for caching content objects according to the selectable arrangement of separate caches as recited in claim 8 , wherein content objects can each be specified as sticky or ephemeral in the plurality of caches to optionally host or cache content objects.

14. A method for caching content objects according to a selectable arrangement of separate caches of a CDN, the method comprising:

receiving a URI at a cache of an edge server at a first time, wherein the URI specifies a content object;

determining that the cache does not hold the content object;

analyzing the URI and the first time to determine a first hierarchical tree of caches, the first hierarchical tree of caches having a plurality of levels of caches to successively receive content-object requests upon cache misses at previous levels, the first hierarchical tree of caches comprising a first parent cache;

requesting the content object from the first parent cache;

receiving the URI at the cache of the edge server at a second time after the first time;

determining that the cache still does not hold the content object;

analyzing the URI and the second time to determine a second hierarchical tree of caches, the second hierarchical tree of caches having a plurality of levels of caches to successively receive content-object requests upon cache misses at previous levels, the second hierarchical tree of caches comprising a second parent cache different from the first parent cache; and

requesting the content object from the second parent cache.

15. The method for caching content objects according to the selectable arrangement of separate caches as recited in claim 14 , wherein the first and second hierarchical trees of caches are determined based on a current health of at least some POPs within the CDN.

16. The method for caching content objects according to the selectable arrangement of separate caches as recited in claim 14 , wherein the first and second hierarchical trees of caches are determined based on when the first and second times fell within a period.

17. The method for caching content objects according to the selectable arrangement of separate caches as recited in claim 14 , further comprising:

determining that the first parent cache does not hold the content object;

determining a first grandparent cache from the URI, the first grandparent cache being in the first hierarchical tree of caches; and

requesting the first content object from the first grandparent cache.

18. The method for caching content objects according to the selectable arrangement of separate caches as recited in claim 17 , further comprising:

determining that the second parent cache does not hold the content object;

determining a second grandparent cache from the URI, the second grandparent cache being in the second hierarchical tree of caches; and

requesting the content object from the second grandparent cache.

19. A non-transitory machine-readable medium having machine-executable instructions configured to perform the machine-implementable method for caching content objects according to the selectable arrangement of separate caches of claim 14 .

20. A machine adapted to perform the machine-implementable method for caching content objects according to the selectable arrangement of separate caches of claim 14 .

Assignments (8)
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 →
CHANGE OF NAME Recorded Sep 9, 2024
From: LIMELIGHT NETWORKS, INC.
To: EDGIO, INC.
Reel/Frame 068898/0281 →
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 →