Content delivery network (CDN) selection using performance metric
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-modifiedWhat 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.