System And Method For Highly-Scalable Real-Time And Time-Based Data Delivery Using Server Clusters
First Claim
1. A method for scaling a video-on-demand system having a plurality of servers providing time-based streaming of at least one media asset, said method comprising:
- configuring a server system including a first initial plurality of networked servers to store an initial multiplicity of media assets including a particular media asset;
dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies;
(i) perform the balancing before a particular media asset stream is requested by a user,(ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and(iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user;
the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time; and
continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides loosely-coupled cluster systems comprising a plurality of servers based on storage attached to the plurality of servers. Videos, or other assets, are automatically replicated within the server system to increase the number of concurrent play requests serviceable. The server systems can detect spikes in demand that may exceed the guaranteed number of concurrent play requests serviceable and dynamically transfer the high-in-demand or ‘hot’ asset to servers in the cluster that do not have the video. Alternatively, instead of transferring the entire asset, varying length prefixes of the asset may be transferred depending on the availability of resources. The remainder of the asset is transferred in some embodiments on demand with sufficient buffering or other storage to guarantee playback to the user or subscriber according to the required quality of service (QOS).
-
Citations
20 Claims
-
1. A method for scaling a video-on-demand system having a plurality of servers providing time-based streaming of at least one media asset, said method comprising:
-
configuring a server system including a first initial plurality of networked servers to store an initial multiplicity of media assets including a particular media asset; dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies; (i) perform the balancing before a particular media asset stream is requested by a user, (ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and (iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user; the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time; and continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A scalable video-on-demand system having a plurality of servers providing time-based streaming of at least one media asset, said system comprising:
-
a server system including a first initial plurality of networked servers to store an initial multiplicity of media assets including a particular media asset; means for dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies; (i) perform the balancing before a particular media asset stream is requested by a user, (ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and (iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user; the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time. continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers; - View Dependent Claims (7, 8, 9)
-
-
10. A business model for operating a time-base accurate asset streaming business, said business model comprising:
-
configuring a server system including a first initial plurality of networked servers to store a multiplicity of media assets including a particular media asset; dynamically balancing the initial placement of the media assets and a subsequent replication of at least one of the multiplicity of media assets including the particular media asset among the plurality of servers according to the following policies; (i) perform the balancing before a particular media asset stream is requested by a user, (ii) perform the balancing at the point at which the particular media asset stream is requested by the user, and (iii) never perform the balancing for a particular media asset after a session for streaming the particular media asset has been requested by the user; the dynamic balancing including dynamic content replication to increase the number of copies of the media asset content placed on the servers without dynamic session migration between the servers after the particular media asset streaming to the user has been initiated, and identifying a least loaded server among the plurality of servers and initiating a new media asset streaming from the identified least loaded server at the time; and continuing the session including continuing the streaming of the particular media asset to the user from the same server from which the streaming was initiated without switching or migrating the streaming to a different one of the plurality of servers; operating server system to receive and service requests for a media asset at a first server, said first server (i) receiving a request for a media asset, (ii) determining if said first server has said asset available for time-base accurately streaming and has sufficient resources to time-base accurately stream said asset, and (iii) time-base accurately streaming said media asset if it is determined that said first server has said asset available for time-base accurately streaming and has sufficient resources to time-base accurately stream said asset; and if said determining indicates that said first server does not have said asset available for time-base accurately streaming or does not have sufficient resources to time-base accurately stream said asset, then;
(i) identifying a second server having said asset available for time-base accurately streaming and sufficient resources to time-base accurately stream said asset, and (ii) forwarding said request to said identified second server for servicing by said second server. - View Dependent Claims (11)
-
-
12. A method for time-based streaming of assets, said method comprising:
-
receiving a request for an asset at a first server; determining if said first server has said asset; determining if said first server has sufficient resources to stream said asset; if said first server does not have said asset or said first server does not have sufficient resources to stream said asset, forwarding said request to a second server having said asset and sufficient resources to stream said asset; if said first server has said asset and sufficient resources to stream said asset, determining if said first server has a load level less than a load threshold value; if said first server has a first server load level less than a load threshold value, streaming said asset and maintaining a time-base for said streamed asset; and if said first server has a load level greater than a load threshold level, attempting to find a second server having said asset, sufficient resources to stream said asset, and a second server load level less than said first server load level; forwarding said request if said second server is located; and streaming said asset and maintaining a time-base for said streamed asset if said second server is not located.
-
-
13. A method according to claim 23, further comprising:
-
determining if said asset is hot; and copying information associated with said asset to a second server if said asset is hot. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification