US2014109103A1PendingUtilityA1

Distributing transcoding tasks across a dynamic set of resources using a queue responsive to restriction-inclusive queries

Assignee: LIMELIGHT NETWORKS INCPriority: Oct 15, 2012Filed: Jul 18, 2013Published: Apr 17, 2014
Est. expiryOct 15, 2032(~6.2 yrs left)· nominal 20-yr term from priority
G06F 9/505G06F 9/5027G06F 2209/5021
48
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method and system for performing processing tasks is disclosed. At a resource, a detection is made as to when the resource is available to perform a processing task. Usage of the resource for performing processing tasks associated with each client of a set of clients is monitored. A restriction limiting which processing task is to be assigned to the resource is identified. The restriction identifies a hierarchy amongst at least two clients of the set of clients. The hierarchy is based on the monitored usage. A query identifying the restriction is generated. The query is transmitted to a remote queue in communication with a plurality of independent resources. The plurality of independent resources includes the resource. A response is received from the queue. The response identifies a processing task.

Claims

exact text as granted — not AI-modified
1 . (canceled) 
     
     
         2 . A content delivery network (CDN) for assigning processing tasks, the CDN comprising:
 a first resource at a first geographical location, the first resource including a queue manager that:
 detects when the first resource is available to perform a processing task, 
 monitors usage of the first resource for performing processing tasks associated with each of a first client, a second client and a third client over a time period, 
 identifies one of the first, second and third clients that has the highest usage of the first resource for performing the processing tasks over the time period as a prioritized client, the others of the first, second and third clients being unprioritized clients, 
 identifies a restriction that specifies a type of processing task or a geographical locale for performance of the processing task, the restriction specifying that assignments for processing tasks associated with the prioritized client are to take precedence over assignments for comparable processing tasks associated with the unprioritized clients, 
 generates a query identifying the restriction, and 
 transmits the query to a queue; 
   a second resource at a second geographical location;   a third resource at a third geographical location; and   the queue, wherein the queue:
 is loaded into memory, 
 includes a set of queue items, each queue item identifying a processing task and being associated with one of the first, second and third clients, 
 upon receipt of the query, selects a queue item from the set of queue items based on the restriction, 
 assigns the selected queue item to one of the first, second and third resources, and 
 transmits a response to the queue manager, the response identifying a processing task of the selected queue item. 
   
     
     
         3 . The CDN for assigning processing tasks as recited in  claim 2 , wherein the monitored usage comprises an amount of processing time. 
     
     
         4 . The CDN for assigning processing tasks as recited in  claim 2 , wherein the monitored usage comprises a number of queue items. 
     
     
         5 . The CDN for assigning processing tasks as recited in  claim 2 , wherein the queue manager identifies a second restriction, the second restriction being based on a policy set by the first client,
 wherein the query identifies the second restriction, and   wherein the queue selects the queue item further based on the second restriction.   
     
     
         6 . The CDN for assigning processing tasks as recited in  claim 2 , wherein the restriction further specifies that processing tasks associated with the first client are to be assigned over processing tasks associated with the second client and over processing tasks associated with the third client. 
     
     
         7 . The CDN for assigning processing tasks as recited in  claim 2 , wherein the first resource further includes a receiver that:
 receives a request from the first client,   determines a task identifier based on the request, and   transmits instructions to the queue to add a queue item, the instructions including the task identifier.   
     
     
         8 . The CDN for assigning processing tasks as recited in  claim 7 , wherein the receiver further identifies a constraint based on a client policy, and wherein the determination of the task identifier depends on the constraint. 
     
     
         9 . A computing resource for performing processing tasks selected from queue items contained in a queue, the resource and the queue forming part of a content delivery network (CDN) having a plurality of points of presence geographically distributed, the resource comprising:
 an availability detector that detects when the resource is available to perform a processing task;   a local-performance monitor that monitors usage of the resource for performing processing tasks associated with each client of a set of clients;   a restriction engine that, for a selected processing task corresponding to a queue item, identifies a restriction that specifies a type of processing task that may be assigned to the resource or a geographical locale for performance of the processing task;   a query generator that generates a query identifying the restriction; and   a queue communicator that:
 transmits the query to the queue in communication with a plurality of independent resources, the plurality of independent resources including the resource, 
 receives a response from the queue, the response identifying a processing task, the processing task having been selected from the queue items based on the restriction, and 
 stores the response from the queue in a memory, wherein:
 memory and the resource are located within a first point of presence of the plurality of points of presence, the response identifies a processing task based on the restriction, and 
 the selected queue item is assigned, by the queue, to the resource. 
 
   
     
     
         10 . The computing resource for performing processing tasks as recited in  claim 9 , wherein the restriction is based on a global policy that applies to each of the plurality of resources. 
     
     
         11 . The computing resource for performing processing tasks as recited in  claim 9 , further comprising a client-policy engine that receives a communication from a client and generates a client policy based on the communication, wherein the restriction engine further identifies a second restriction limiting which processing task is to be assigned to the resource or the geographical locale for performance of the processing task, the second restriction depending on the client policy. 
     
     
         12 . The computing resource for performing processing tasks as recited in  claim 11 , wherein the resource is assigned to the client. 
     
     
         13 . The computing resource for performing processing tasks as recited in  claim 9 , further comprising an item status manager that monitors a status of performance of the processing task, and wherein the queue communicator transmits a communication to the queue, the communication being indicative of the status. 
     
     
         14 . The computing resource for performing processing tasks as recited in  claim 9 , further comprising a receiver that:
 receives a request from a client,   determines a task identifier based on the request, and   transmits instructions to the queue to add the request to the queue, the instructions including the task identifier.   
     
     
         15 . A method for performing processing tasks within a content delivery network (CDN), comprising:
 detecting, at a resource located at a first geographic location, when the resource is available to perform a processing task;   monitoring usage of the resource for performing processing tasks associated with each client of a set of clients;   that specifies a type of processing task to be assigned to the resource or a geographical locale for performance of the processing task;   generating a query identifying the restriction;   transmitting the query to a remote queue in communication with a plurality of independent resources, the plurality of independent resources including the resource; and   receiving a response from the queue, wherein:
 the response identifies a processing task based on the restriction, and 
 the selected queue item is assigned, by the queue, to the resource. 
   
     
     
         16 . The method for performing processing tasks as recited in  claim 15 , wherein the resource is assigned to a client. 
     
     
         17 . The method for performing processing tasks as recited in  claim 15 , further comprising:
 receiving a request for a processing task from one client of the set of clients,   determining a task identifier based on the request, and   transmitting instructions to the queue to add a queue item, the instructions including the task identifier.   
     
     
         18 . The method for performing processing tasks as recited in  claim 17 , wherein the task identifier indicates a constraint regarding which resources of the plurality of resources can perform the processing task. 
     
     
         19 . The method for performing processing tasks as recited in  claim 15 , wherein the restriction is based on a global policy that applies to each of the plurality of resources. 
     
     
         20 . The method for performing processing tasks as recited in  claim 15 , the restriction being a first restriction, and further comprising:
 receiving a communication from a client;   generating a client policy based on the communication; and   identifying a second restriction limiting which processing task is to be assigned to the resource, the second restriction depending on the client policy, wherein   generating the query includes identifying both the first restriction and the second restriction; and   the response identifies the processing task based both on the first restriction and the second restriction.

Join the waitlist — get patent alerts

Track US2014109103A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.