US12177284B2ActiveUtilityA1

Content delivery network (CDN) selection using performance metric

50
Assignee: HULU LLCPriority: Jul 25, 2022Filed: Aug 24, 2022Granted: Dec 24, 2024
Est. expiryJul 25, 2042(~16 yrs left)· nominal 20-yr term from priority
H04L 65/1089H04L 65/80H04L 65/612
50
PatentIndex Score
0
Cited by
106
References
20
Claims

Abstract

In some embodiments, a method receives a request for an instance of media content in a current session. A state is retrieved for content delivery networks that is determined for a session in a set of sessions. The state includes a first set of values for a performance metric, and the first set of values is associated with the content delivery networks. The method determines a second set of values for the performance metric for the current session. The second set of values is associated with the content delivery networks. A content delivery network is selected for the request in the current session based on treating the current session as a session in the set of sessions. The session for the current session is after the session for the state in the set of sessions.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 receiving, by a computing device, a request for an instance of media content in a current session; 
 retrieving, by the computing device, a state for a plurality of content delivery networks that is determined for a session in a set of sessions, wherein:
 the state is determined based on selecting between respective content delivery networks in the plurality of content delivery networks over the set of sessions based on an allocation to distribute processing of requests between content delivery networks, 
 the state includes a first set of values for a performance metric, and 
 the first set of values is associated with the plurality of content delivery networks; 
 
 determining, by the computing device, a second set of values for the performance metric for the current session, wherein the second set of values is associated with the plurality of content delivery networks; and 
 selecting, by the computing device, a content delivery network in the plurality of content delivery networks for the request in the current session based on treating the current session as a session in the set of sessions, and the session for the current session is after the session for the state in the set of sessions, and wherein the selecting is based on optimizing the first set of values from the state and the second set of values from the current session. 
 
     
     
       2. The method of  claim 1 , wherein selecting the content delivery network comprises:
 determining a third set of values for the performance metric for the plurality of content delivery networks using the first set of values and the second set of values for respective content delivery networks; and 
 using the third set of values to select the content delivery network in the plurality of content delivery networks for the request in the current session. 
 
     
     
       3. The method of  claim 2 , wherein determining the third set of values comprises:
 combining a respective first value in the first set of values for a respective content delivery network with a respective second value in the second set of values for the respective content delivery network to generate a respective third value in the third set of values, wherein each content delivery network is associated with a respective third value. 
 
     
     
       4. The method of  claim 3 , wherein selecting the content delivery network comprises:
 comparing the respective third values for respective content delivery networks to each other, wherein the content delivery network is selected based on the comparing. 
 
     
     
       5. The method of  claim 4 , wherein selecting the content delivery network comprises:
 selecting the content delivery network with an optimal respective third value in the third set of values. 
 
     
     
       6. The method of  claim 1 , wherein a first value in the first set of values represents an optimal value for an overall performance metric for the session associated with the state and sessions before the session associated with the state in the set of sessions. 
     
     
       7. The method of  claim 1 , wherein selecting the content delivery network comprises:
 using the current session as a last session in the set of sessions, wherein the session associated with the state is adjacent to the last session. 
 
     
     
       8. The method of  claim 7 , wherein:
 a first value in the first set of values represents an optimal value for an overall performance metric for a content delivery network based on the session associated with the state and sessions before the session associated with the state in the set of sessions, and 
 the allocation is met for selecting respective content delivery networks in the plurality of content delivery networks over the session associated with the state and the sessions before the session associated with the state. 
 
     
     
       9. The method of  claim 1 , further comprising:
 causing the selected content delivery network to deliver the instance of media content to a client that requested the instance of media content. 
 
     
     
       10. The method of  claim 1 , further comprising:
 determining an optimal performance for the set of sessions based on the performance metric for the set of sessions; and 
 storing the state based on the optimal performance for the session associated with the state. 
 
     
     
       11. The method of  claim 10 , wherein the optimal performance for selecting between respective content delivery networks in the plurality of content delivery networks over the set of sessions is based on the allocation. 
     
     
       12. The method of  claim 11 , wherein the allocation specifies a restriction on a number of times a respective content delivery network should be selected to process a request in the set of sessions. 
     
     
       13. The method of  claim 10 , wherein determining the optimal performance comprises:
 determining a plurality of states for different allocations until the allocation is reached, wherein a state in the plurality of states represents an optimal value for the performance metric at a respective allocation. 
 
     
     
       14. The method of  claim 13 , wherein the optimal value is an optimized overall value of the performance metric for the respective allocation. 
     
     
       15. The method of  claim 1 , further comprising:
 storing a plurality of states for use in processing multiple requests for instances of media content, wherein states in the plurality of states are based on different sets of sessions. 
 
     
     
       16. The method of  claim 15 , wherein different states in the plurality of states are used to select a content delivery network for different requests for instances of media content. 
     
     
       17. The method of  claim 15 , wherein states in the plurality of states form a loop in which states are iteratively used to process requests for instances of media content. 
     
     
       18. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for:
 receiving a request for an instance of media content in a current session; 
 retrieving a state for a plurality of content delivery networks that is determined for a session in a set of sessions, wherein:
 the state is determined based on selecting between respective content delivery networks in the plurality of content delivery networks over the set of sessions based on an allocation to distribute processing of requests between content delivery networks, 
 the state includes a first set of values for a performance metric, and 
 the first set of values is associated with the plurality of content delivery networks; 
 
 determining a second set of values for the performance metric for the current session, wherein the second set of values is associated with the plurality of content delivery networks; and 
 selecting a content delivery network in the plurality of content delivery networks for the request in the current session based on treating the current session as a session in the set of sessions, and the session for the current session is after the session for the state in the set of sessions, and wherein the selecting is based on optimizing the first set of values from the state and the second set of values from the current session. 
 
     
     
       19. The non-transitory computer-readable storage medium of  claim 18 , wherein selecting the content delivery network comprises:
 using the current session as a last session in the set of sessions, wherein the session associated with the state is adjacent to the last session. 
 
     
     
       20. An apparatus comprising:
 one or more computer processors; and 
 a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for: 
 receiving a request for an instance of media content in a current session; 
 retrieving a state for a plurality of content delivery networks that is determined for a session in a set of sessions, wherein:
 the state is determined based on selecting between respective content delivery networks in the plurality of content delivery networks over the set of sessions based on an allocation to distribute processing of requests between content delivery networks, 
 the state includes a first set of values for a performance metric, and 
 the first set of values is associated with the plurality of content delivery networks; 
 
 determining a second set of values for the performance metric for the current session, wherein the second set of values is associated with the plurality of content delivery networks; and 
 selecting a content delivery network in the plurality of content delivery networks for the request in the current session based on treating the current session as a session in the set of sessions, and the session for the current session is after the session for the state in the set of sessions, and wherein the selecting is based on optimizing the first set of values from the state and the second set of values from the current session.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.