IP Library Patent Application 13945664
Patent Application
App. No. 13/945,664

Publishing-Point Management for Content Delivery Network

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 None
App. No.
13/945,664
Abstract

A system and method for delivering content objects over the Internet to an end user system with a content delivery network (CDN) is disclosed. The system and method allow for dynamically serving content objects by loading and/or reconfiguring publishing points upon receipt of an end user request. When a content object is requested by an end user media player, the request is assigned to an edge server within a particular POP of the CDN. An optional peer-discovery algorithm is used to determine a content source for the requested content object within the CDN. The peer-discovery algorithm first determines whether the publishing point associated with the requested content object is loaded into the edge server. Alternatively, the peer-discovery algorithm queries other edge servers within or remote from the particular POP to determine whether the request for content object is mapped by other edge servers to a content source using their respective publishing points. Once the content source for the requested content object is determined, the edge server reconfigures its publishing point toward the content source. Ultimately, the content object is streamed to the end user media player. Management of the publishing points avoids performance degradations on the edge server in some embodiments.

Claims (76)

1 . (canceled)

2 . A content delivery network (CDN) for dynamically serving content objects over the Internet to an end user system, the CDN comprising:

a content object request function that receives requests for streaming content objects to the end user system;

a plurality of points of presence (POPs), wherein:

the plurality of POPs are geographically distributed;

at least one POP of the plurality of POPs comprises a plurality of servers including one or more edge servers;

an edge server selection function assigns received requests to an edge server that is one of the edge servers in the at least one POP, and

a plurality of publishing points map requests for content to corresponding storage locations for the content such that the at least one POP streams the content objects from storage locations mapped by the publication points to the end user system; and

an automatic purging function that removes a second subset of the plurality of publishing points from the edge server according to an automated algorithm, the automated algorithm comprising automatically determining publishing points for inclusion in the second subset of publishing points when the content objects corresponding to the publishing points are less popular.

3 . The CDN for dynamically serving the content objects over the Internet to the end user system as recited in claim 2 , further comprising

an edge server provisioning function that adds a first subset of the plurality of publishing points to the edge server; and

wherein the automated algorithm further comprises:

automatically determining a third subset of the plurality of publishing points that are designated as sticky; and

deleting any publishing points that are members of both the second and third subsets from the second subset, before the second subset is removed from the edge server, whereby members of the third subset are not removed from the edge server.

4 . The CDN for dynamically serving the content objects over the Internet to the end user system as recited in claim 2 , further comprising a peer discovery function that:

correlates each request for a content object to a publishing point of the plurality of publishing points that is associated with the content object;

determines whether the publishing point is loaded into the edge server;

determines whether the request is mapped to a storage location for the requested content object by other servers within the at least one POP if the publishing point is not loaded into the edge server,

queries a remote location away from the at least one POP to determine a storage location for the requested content object if the publishing point is not loaded into the edge server and other servers within the POP, and

maps the publishing point of the edge server to the storage location for the requested content object.

5 . The CDN for dynamically serving the content objects over the Internet to the end user system as recited in claim 2 , wherein the edge-server provisioning function adds the first subset of the plurality of publishing points to the edge server by:

determining that a publishing point associated with the requested streaming content object is not stored at the assigned edge server; and

creating a publishing point that maps the assigned edge server to a storage location of the requested streaming content object.

6 . The CDN for dynamically serving the content objects over the Internet to the end user system as recited in claim 2 , wherein the automated algorithm further comprises:

determining a fourth subset of publishing points that are currently coupled to the end user system; and

deleting any publishing points that are members of both the second and fourth subsets from the second subset, before the second subset is removed from the edge server, whereby members of the fourth subset are not removed from the edge server.

7 . The CDN for dynamically serving the content objects over the Internet to the end user system as recited in claim 2 , wherein automatically determining publishing points for inclusion in the second subset of publishing points comprises:

activating an inactivity timer associated with each publishing point when the end user system disconnects from the content object associated with the publishing point; and

selecting publishing points having the longest time values in their associated inactivity timers, for inclusion in the second subset of publishing points.

8 . The CDN for dynamically serving the content object over the Internet to the end user system as recited in claim 2 , wherein one or more of the content objects comprise a stream.

9 . The CDN for dynamically serving the content object over the Internet to the end user system as recited in claim 2 , wherein one or more of the content objects comprise a live stream.

10 . A method for dynamically serving a content object over the Internet to an end user system with a content delivery network (CDN), the method comprising:

receiving a request to stream the content object to the end user system, wherein:

the CDN comprises a plurality of points of presence (POPs) that are geographically distributed, and

each of the plurality of POPs comprises a plurality of servers, including an edge server;

assigning the request to the edge server in a POP of the plurality of POPs;

correlating the request to a publishing point associated with the content object, wherein the publishing point is part of a plurality of publishing points, wherein each publishing point maps a request for content to a storage location for the content;

determining whether the publishing point is loaded into the edge server, and if the publishing point is not loaded into the edge server;

adding the publishing point to the edge server, and

mapping the publishing point of the edge server to the storage location;

streaming the content object from the edge server to the end user system in response to the request, utilizing the storage location mapped by the publishing point; and

automatically removing a first subset of the plurality of publishing points according to an automated algorithm, wherein the algorithm comprises:

automatically determining publishing points for inclusion in the first subset of publishing points when the content objects corresponding to the publishing points are less popular.

11 . The method for dynamically serving a content object over the Internet to the end user system with the CDN as recited in claim 10 , further comprising:

automatically determining a second subset of publishing points of the plurality of publishing points that are designated as sticky; and

deleting any publishing points that are members of both the first and second subsets, from the first subset, before the first subset is removed from the edge server, whereby members of the second subset are not removed from the edge server.

12 . The method for dynamically serving a content object over the Internet to the end user system with the CDN as recited in claim 10 , further comprising:

determining whether the request is mapped to the storage location for the requested content object by other servers within the POP if the publishing point is not loaded into the edge server; and

querying a remote location away from the POP to determine the storage location for the requested content object if the publishing point is not loaded into at least one edge server of the POP.

13 . The method for dynamically serving a content object over the internet to the end user system with the CDN as recited in claim 12 , wherein the remote location comprises an origin server.

14 . The method for dynamically serving a content object over the internet to the end user system with the CDN as recited in claim 12 , further comprising determining a neighboring POP from the plurality of POPs, wherein the remote location is the neighboring POP.

15 . The method for dynamically serving a content object over the Internet to an end user system with a CDN as recited in claim 10 , wherein the algorithm further comprises:

determining a third subset of publishing points that are currently coupled to the end user system; and

deleting any publishing points that are members of both the second and third subsets from the second subset, before the second subset is removed from the edge server, whereby members of the third subset are not removed from the edge server.

16 . The method for dynamically serving a content object over the Internet to an end user system with a CDN as recited in claim 10 , wherein the algorithm further comprises:

activating an inactivity timer associated with each publishing point when the end user system disconnects from the content object associated with the publishing point; and

selecting publishing points having the longest time values in their associated inactivity timers, for inclusion in the first subset of publishing points.

17 . The method for dynamically serving a content object over the Internet to an end user system with a CDN as recited in claim 10 , wherein the automatically removing is repeated after a predetermined time period that is a week, a day, a portion of a day, an hour, or a minute.

18 . The method for dynamically serving a content object over the Internet to the end user system with the CDN as recited in claim 10 , wherein the content object comprises a stream.

19 . The method for dynamically serving a content object over the Internet to the end user system with the CDN as recited in claim 10 , wherein the content object comprises a live stream.

20 . A method for dynamically serving a content object from a content delivery network (CDN) over the Internet to an end user system, the method comprising:

receiving a request to stream the content object to the end user system, wherein:

the CDN comprises a plurality of points of presence (POPs) that are geographically distributed,

each of the plurality of POPs comprises a plurality of servers, including an edge server, and

content is at least partially cached within a content database of the CDN;

assigning the request to the edge server in a POP of the plurality of POPs;

correlating the request to a publishing point associated with the content object, wherein the publishing point is part of a plurality of publishing points, wherein each publishing point maps a request for content to a storage location for the content;

determining whether the publishing point is loaded into the edge server, and if the publishing point is not loaded into the edge server;

automatically adding the publishing point to the edge server;

mapping the publishing point of the edge server to the storage location for the content object;

streaming the content object from the edge server to the end user system in response to the request, utilizing the storage location mapped by the publishing point;

determining a set of content objects that are currently cached within the content database; and

automatically removing a subset of the plurality of publishing points such that publishing points that remain in the CDN correspond with content objects that are currently cached within the content database.

21 . The method for dynamically serving the content object over the Internet to the end user system as recited in claim 20 , the method further comprising:

automatically adding publishing points corresponding with content objects that have been cached within the content database, wherein

after the steps of automatically removing and automatically adding, the plurality of publishing points that exist in the CDN is reconciled with the content objects that are currently cached within the content database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2014
From: CADWELL, ERIC; CORLEY, JON B.; KOKAL, MOHAN I.; MONSON, TAMARA
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 033316/0361 →