Responsibility-based request processing
First Claim
1. A computer-implemented method, operable in a in a content delivery (CD) network comprising multiple service endpoints, said service endpoints running on a plurality of devices, wherein said multiple service endpoints form multiple sub-clusters, wherein two or more of said sub-clusters form a super-cluster, and wherein the content delivery network (CDN) delivers content on behalf of one or more subscribers to the CDN, the method operable on a device comprising hardware including memory and at least one processor, the method comprising:
- (A) defining a group from an arbitrary set of nodes comprising CD service instances across the machines of said multiple sub-clusters, wherein said group comprises a peer group, and wherein the nodes in each sub-cluster share a corresponding internal network address space, and wherein each sub-cluster is addressable by a single external address, and wherein each node in the group has a set of capabilities and a corresponding capacity for each capability the node'"'"'s set of capabilities, and wherein each node in the group assumes one or more discrete responsibilities involved in processing of a request across the group, wherein said discrete responsibilities are taken from the list comprising;
non-responsible, cache-responsible, and fill-responsible, and wherein defining of the group is according to a peering policy at least based on capabilities and capacities of nodes in the group, wherein said peering policy maps different request types to different responsibility chains, and wherein, for at least one particular responsibility of said discrete responsibilities, multiple nodes in said group are capable of assuming said particular responsibility, and wherein the capacity of each particular node in the group represents said particular node'"'"'s relative capacity to fulfill said one or more discrete responsibilities compared to other nodes with the same one or more discrete responsibilities;
(B) in response to a request made at a node the group, said request being associated with content of a subscriber to the CDN,(B)(1) dynamically determining a CD service type of the request, said determining being based on whether said content is rejectable, redirectable, or servable; and
(B)(2) based on the CD service type of the request, selecting one or more nodes in said group to be responsible for processing said request; and
(C) automatically redefining the group defined in (A) based on a change in capability or capacity of one or more nodes in the group, wherein the group as redefined in (C) is distinct from the group as defined in (A).
1 Assignment
0 Petitions
Accused Products
Abstract
A method is operable in a network comprising multiple service endpoints, the service endpoints running on a plurality of devices, wherein the multiple service endpoints form one or more sub-clusters. The method includes defining a group from an arbitrary set of nodes comprising service instances across the machines of the one or more sub-clusters, wherein each node in the group assumes one or more discrete responsibilities involved in processing of a request across the group. In response to a request made at a node the group, the service type of the request is dynamically determined; and, based on the type of the request, one or more nodes in the group are selected to be responsible for processing the request.
301 Citations
21 Claims
-
1. A computer-implemented method, operable in a in a content delivery (CD) network comprising multiple service endpoints, said service endpoints running on a plurality of devices, wherein said multiple service endpoints form multiple sub-clusters, wherein two or more of said sub-clusters form a super-cluster, and wherein the content delivery network (CDN) delivers content on behalf of one or more subscribers to the CDN, the method operable on a device comprising hardware including memory and at least one processor, the method comprising:
-
(A) defining a group from an arbitrary set of nodes comprising CD service instances across the machines of said multiple sub-clusters, wherein said group comprises a peer group, and wherein the nodes in each sub-cluster share a corresponding internal network address space, and wherein each sub-cluster is addressable by a single external address, and wherein each node in the group has a set of capabilities and a corresponding capacity for each capability the node'"'"'s set of capabilities, and wherein each node in the group assumes one or more discrete responsibilities involved in processing of a request across the group, wherein said discrete responsibilities are taken from the list comprising;
non-responsible, cache-responsible, and fill-responsible, and wherein defining of the group is according to a peering policy at least based on capabilities and capacities of nodes in the group, wherein said peering policy maps different request types to different responsibility chains, and wherein, for at least one particular responsibility of said discrete responsibilities, multiple nodes in said group are capable of assuming said particular responsibility, and wherein the capacity of each particular node in the group represents said particular node'"'"'s relative capacity to fulfill said one or more discrete responsibilities compared to other nodes with the same one or more discrete responsibilities;(B) in response to a request made at a node the group, said request being associated with content of a subscriber to the CDN, (B)(1) dynamically determining a CD service type of the request, said determining being based on whether said content is rejectable, redirectable, or servable; and (B)(2) based on the CD service type of the request, selecting one or more nodes in said group to be responsible for processing said request; and (C) automatically redefining the group defined in (A) based on a change in capability or capacity of one or more nodes in the group, wherein the group as redefined in (C) is distinct from the group as defined in (A). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system, operable in a content delivery (CD) network comprising multiple CD service endpoints, said CD service endpoints running on a plurality of devices, wherein said multiple CD service endpoints form multiple sub-clusters, wherein two or more of said sub-clusters form a super-cluster, and wherein the content delivery network (CDN) delivers content on behalf of one or more subscribers to the CDN, the system comprising:
-
(a) hardware including memory and at least one processor, and (b) a service running on said hardware, wherein said service is configured to; (A) define a group from an arbitrary set of nodes comprising CD service instances across the machines of said multiple sub-clusters, wherein said group comprises a peer group, and wherein the nodes in each sub-cluster share a corresponding internal network address space, and wherein each sub-cluster is addressable by a single external address, and wherein two or more of said sub-clusters form a super-cluster, and wherein each node in the group has a set of capabilities and a corresponding capacity for each capability the node'"'"'s set of capabilities, and wherein each node in the group assumes one or more discrete responsibilities involved in processing of a request across the group, wherein said discrete responsibilities are taken from the list comprising;
non-responsible, cache-responsible, and wherein the defining of the group is according to a peering policy at least based on capabilities and capacities of nodes in the group, wherein said peering policy maps different request types to different responsibility chains, and wherein, for at least one particular responsibility of said discrete responsibilities, multiple nodes in said group are capable of assuming said particular responsibility, and in said group are capable of assuming said particular responsibility, and wherein the capacity of each particular node in the group represents said particular node'"'"'s relative capacity to fulfill said one or more discrete responsibilities compared to other nodes with the same one or more discrete responsibilities;(B) in response to a request made at a node the group, said request being associated with content of a subscriber to the CDN, (B)(1) dynamically determine a CD service type of the request, said determining being based on whether said content is rejectable, redirectable, or servable; and (B)(2) based on the service type of the request, select one or more nodes in said group to be responsible for processing said request; and (C) automatically repeat the defining of the group in (A) based on a change in capability or capacity of one or more nodes in the group, wherein the group as redefined in (C) is distinct from the group as defined in (A). - View Dependent Claims (14, 15, 16)
-
-
17. An article of manufacture, comprising non-transitory computer-readable media having computer readable instructions stored thereon, the computer readable instructions including instructions for implementing a computer-implemented method, said method operable on a device comprising hardware including memory and at least one processor and running a service on said hardware, said method operable in a content delivery (CD) network comprising multiple CD service endpoints, said CD service endpoints running on a plurality of devices, wherein said multiple CD service endpoints form multiple sub-clusters, wherein two or more of said sub-clusters form a super-cluster, and wherein the content delivery network (CDN) delivers content on behalf of one or more subscribers to the CDN, said method comprising:
-
(A) defining a group from an arbitrary set of nodes comprising CD service instances across the machines of said multiple sub-clusters, wherein said group comprises a peer group, and wherein the nodes in each sub-cluster share a corresponding internal network address space, and wherein each sub-cluster is addressable by a single external address, and wherein two or more of said sub-clusters form a super-cluster, and wherein each node in the group has a set of capabilities and a corresponding capacity for each capability the node'"'"'s set of capabilities, and wherein each node in the group assumes one or more discrete responsibilities involved in processing of a request across the group, wherein said discrete responsibilities are taken from the list comprising;
non-responsible, cache-responsible, and fill-responsible, and wherein the defining of the group is according to a peering policy at least based on capabilities and capacities of nodes in the group, wherein said peering policy maps different request types to different responsibility chains, and wherein, for at least one particular responsibility of said discrete responsibilities, multiple nodes in said group are capable of assuming said particular responsibility, and wherein the capacity of each particular node in the group represents said particular node'"'"'s relative capacity to fulfill said one or more discrete responsibilities compared to other nodes with the same one or more discrete responsibilities;
relative capacity to fulfill said one or more discrete responsibilities compared to other nodes with the same one or more discrete responsibilities;(B) in response to a request made at a node the group, said request being associated with content of a subscriber to the CDN, (B)(1) dynamically determining a service type of the request, said determining being based on whether said content is rejectable, redirectable, or servable; and (B)(2) based on the service type of the request, selecting one or more nodes in said group to be responsible for processing said request; and (C) automatically redefining the group in (A) in response to a change in capability or capacity of one or more nodes in the group, wherein the group as defined in (C) is distinct from the group as defined in (A). - View Dependent Claims (18, 19, 20, 21)
-
Specification