System and method for digital media server load balancing
First Claim
1. A method for selecting a server from a plurality of servers to service a third request for an asset, comprising:
- generating, at an adaptable cache of a first server, a list of pairs of requests for the asset and determining a pair of requests having the shortest interval between start times, wherein the pair of requests comprise a first request and a second request;
responsive to the first request, streaming the asset from a storage system of the first server and storing the asset on the adaptable cache of the first server as it is being streamed from the storage system of the first server;
responsive to the second request streaming the asset from the adaptable cache of the first server;
updating a first state table on the first server with information about the asset stored on the adaptable cache of the first server;
communicating the information about the asset stored on the adaptable cache of the first server to each server in the plurality of servers;
updating state tables of each of the other servers in the plurality of servers with the information about the asset stored on the adaptable cache of the first server;
designating a director from the plurality of servers to receive the third request, wherein any of the plurality of servers can be designated as the director;
determining that the asset is not stored on an adaptable cache of the director by accessing a director'"'"'s state table stored on the director, wherein the director'"'"'s state table includes parametric information for each server in the plurality of servers, and wherein the parametric information comprises adaptable cache contents information for each server in the plurality of servers; and
under the direction of the director,determining a set of servers from among said plurality of servers that have the asset stored in their respective adaptable caches by examining the state table on the director;
determining a load factor for each of the set of servers; and
selecting a second server from among the set of servers based on the load factor.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for load balancing a plurality of servers is disclosed. In a preferred embodiment, a plurality of servers in a video-on-demand or other multi-server system are divided into one or more load-balancing groups. Each server preferably maintains state information concerning other servers in its load-balancing group including information concerning content maintained and served by each server in the group. Changes in a server'"'"'s content status or other state information are preferably proactively delivered to other servers in the group. When a content request is received by any server in a load-balancing group, it evaluates the request in accordance with a specified algorithm to determine whether it should deliver the requested content itself or redirect the request to another server in its group. In a preferred embodiment, this determination is a function of information in the server'"'"'s state table.
-
Citations
36 Claims
-
1. A method for selecting a server from a plurality of servers to service a third request for an asset, comprising:
-
generating, at an adaptable cache of a first server, a list of pairs of requests for the asset and determining a pair of requests having the shortest interval between start times, wherein the pair of requests comprise a first request and a second request; responsive to the first request, streaming the asset from a storage system of the first server and storing the asset on the adaptable cache of the first server as it is being streamed from the storage system of the first server; responsive to the second request streaming the asset from the adaptable cache of the first server; updating a first state table on the first server with information about the asset stored on the adaptable cache of the first server; communicating the information about the asset stored on the adaptable cache of the first server to each server in the plurality of servers; updating state tables of each of the other servers in the plurality of servers with the information about the asset stored on the adaptable cache of the first server; designating a director from the plurality of servers to receive the third request, wherein any of the plurality of servers can be designated as the director; determining that the asset is not stored on an adaptable cache of the director by accessing a director'"'"'s state table stored on the director, wherein the director'"'"'s state table includes parametric information for each server in the plurality of servers, and wherein the parametric information comprises adaptable cache contents information for each server in the plurality of servers; and under the direction of the director, determining a set of servers from among said plurality of servers that have the asset stored in their respective adaptable caches by examining the state table on the director; determining a load factor for each of the set of servers; and selecting a second server from among the set of servers based on the load factor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 25)
-
-
16. A computer-readable medium comprising computer-executable instructions for performing a method comprising:
-
generating, at an adaptable cache of a first server, a list of pairs of requests for an asset and determining a pair of requests having the shortest interval between start times, wherein the pair of requests comprise a first request and a second request; responsive to the first request, streaming the asset from a storage system of the first server and storing the asset on the adaptable cache of the first server as it is being streamed from the storage system of the first server; responsive to the second request, streaming the asset from the adaptable cache of the first server; updating a first state table on the first server with information about the asset stored on the adaptable cache of the first server, wherein the first server communicates the information about the asset stored on the adaptable cache of the first server to each server in the plurality of servers, and wherein each server in the plurality of servers updates each state table of each server in the plurality of servers with the information about the asset stored on the adaptable cache of the first server; designating a director from the plurality of servers to receive a third request, wherein any of the plurality of servers can be designated as the director; determining that the asset is not stored on an adaptable cache of the director by accessing a state table stored on the director, wherein the state table includes parametric information for each server in the plurality of servers, and wherein the parametric information comprises adaptable cache contents information for each server in the plurality of servers; and under the direction of the director, determining a set of servers from among said plurality of servers that have the asset stored in their respective adaptable caches by examining the state table on the director; determining a load factor for each of the set of servers; and
,selecting a second server from among the set of servers based on the load factor. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 26, 27)
-
-
28. A system for servicing a request for an asset, comprising:
-
an adaptable cache of a first server configured to generate a list of pairs of requests for the asset and determine a pair of requests having the shortest interval between start times, wherein the pair of requests comprise a first request and a second request; a storage system of the first server configured to stream the asset responsive to the first request; the adaptable cache of the first server further configured to store the asset as the asset is streamed from the storage system of the first server; the adaptable cache of the first server configured to stream the asset responsive to the second request; the first server configured to update a first state table with information about the asset stored on the adaptable cache of the first server; the first server further configured to communicate the information about the asset stored on the adaptable cache of the first server to each server in the plurality of servers; each server in the plurality of servers configured to update their respective state tables with the information about the asset stored on the adaptable cache of the first server; a business management system configured to designate a director from the plurality of servers to receive the third request, wherein any of the plurality of servers can be designated as the director; the director configured to determine that the asset is not stored on an adaptable cache of the director by accessing a director'"'"'s state table, wherein the director'"'"'s state table includes parametric information for each server in the plurality of servers, and wherein the parametric information comprises adaptable cache contents information for each server in the plurality of servers; and the director further configured to; determine a set of servers from among said plurality of servers that have the asset stored in their respective adaptable caches by examining the director'"'"'s state table, determine a load factor for each of the set of servers; and select a second server from among the set of servers based on the load factor. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
-
-
36. A system for servicing a request for an asset, comprising:
-
an adaptable cache means of a first server for generating a list of pairs of requests for the asset and determining a pair of requests having the shortest interval between start times, wherein the pair of requests comprise a first request and a second request; means for streaming, responsive to the first request, the asset from a storage system of the first server and storing the asset on the adaptable cache means of the first server as it is being streamed from the storage system of the first server; means for streaming the asset from the adaptable cache means of the first server responsive to the second request; means for updating a first state table on the first server with information about the asset stored on the adaptable cache means of the first server; means for communicating the information about the asset stored on the adaptable cache means of the first server to each server in the plurality of servers; means for updating state tables of each of the other servers in the plurality of servers with the information about the asset stored on the adaptable cache means of the first server; means for designating a director from the plurality of servers to receive the third request, wherein any of the plurality of servers can be designated as the director; means for determining that the asset is not stored on an adaptable cache of the director by accessing a director'"'"'s state table stored on the director, wherein the director'"'"'s state table includes parametric information for each server in the plurality of servers, and wherein the parametric information comprises adaptable cache contents information for each server in the plurality of servers; and means under the direction of the director for; determining a set of servers from among said plurality of servers that have the asset stored in their respective adaptable caches by examining the state table on the director; determining a load factor for each of the set of servers; and selecting a second server from among the set of servers based on the load factor.
-
Specification